Return to Sky UI homepage

Product Card - React

import { ProductCard } from '@sky-uk/ui-core';

Product Card is used to display product information and present potential product-based actions. It always has at least one action associated with it, and the option to show additional offers and pricing choices.

Examples

Standard

Multiple Options

With offer

Wrapper

ProductCard is the wrapping element, it supports a variety of "Blocks".

Props and System Props

For a full list of props see Card.

Highlight

Promotion

Props and System Props

For a full list of props see Highlight.

Image

Props and System Props

For a full list of props see Image.

Default Props

  • $aspectRatio: '4/3'
  • $borderTopRadius: 1
  • $objectFit: 'cover'

Product Title

Learn more

Props

cta

The cta prop supports an object which represents the link below the heading:

cta={{
href: 'URL',
onClick: someFunction(),
text: 'Add',
'aria-label': "Add PRODUCT to basket"
}}

heading

String representing the product name.

media

For a full list of props see Image.

Details

Full Markdown support to allow for text formatting and lists etc.
  • Item 1
  • Item 2
  • Item 3
Learn more

Props

content

For a full list of props see Markdown.

cta

The cta prop supports an object which represents the link below the heading:

cta={{
href: 'Link URL to new page if required',
onClick: someFunction(),
text: 'Link text to be displayed'
}}

Pricing

£X.XX a month
for 18 months

ProductCard.Pricing expects between 1 and 3 ProductCard.PricingItem elements as children. When more than 1 ProductCard.PricingItem is provided, each will be nested in a Card and displayed in a responsive grid.

ProductCard.PricingItem Props

Supports the Price component props along with:

cta

The cta prop supports an object which represent the specific Pricing CTA:

cta={{
href: 'Link URL to new page if required',
onClick: someFunction(),
text: 'Link text to be displayed'
}}

disclaimer

The disclaimer prop supports a string containing additional legal information.

Offer

Exclusive Offer

Alternative Product Name

£X.XX a month
for 18 months

ProductCard.Offer expects between 1 and 3 ProductCard.OfferItem elements as children. When more than 1 ProductCard.OfferItem is provided, each will be nested in a Card and displayed in a responsive grid.

ProductCard.Offer Props

cta

The cta prop supports an object which represents the link below the heading:

cta={{
href: 'Link URL to new page if required',
onClick: someFunction(),
text: 'Link text to be displayed'
}}

offerTitle

String representing offer heading (such as "Exclusive offer" etc).

heading

String representing the product name.

media

For a full list of props see Image.

ProductCard.OfferItem Props

Supports the Price component props along with:

cta

The cta prop supports an object which represent the specific Pricing CTA:

cta={{
href: 'Link URL to new page if required',
onClick: someFunction(),
text: 'Link text to be displayed'
}}

disclaimer

The disclaimer prop supports a string containing additional legal information.

Legals

Legal text goes here!

Props

Content

For a full list of props see Markdown.