Gift
It displays an additional item to purchase as a gift.
The Gift component is a compound of the following:
Gift: renders a<div>as wrapper with anIcon,GiftImage, andGiftContent.GiftImage: renders a<div>as wrapper with anImage.GiftContent: renders a<div>as wrapper with the gift information as children.
Overview
Import
Import the component from @faststore/ui
import { Gift, GiftImage, GiftContent } from '@faststore/ui'Import Styles
import '@faststore/ui/src/components/molecules/Gift/styles.scss'Usage
Props
All gift-related components support all attributes also supported by the <div> tag.
Besides those attributes, the following props are also supported:
Gift
| Name | Type | Description | Default |
|---|---|---|---|
| testId | string | ID to find this component in testing tools (e.g.: cypress, testing-library, and jest). | fs-gift |
| icon | string | number | false | true | ReactElement<any, string | JSXElementConstructor<any>> | ReactFragment | ReactPortal | A React component that will be rendered as an icon. |
GiftContent
| Name | Type | Description | Default |
|---|---|---|---|
| testId | string | ID to find this component in testing tools (e.g.: cypress, testing library, and jest). | fs-gift-content |
| productName* | string | Specifies the product's name. | |
| price* | PriceDefinition | Specifies product's prices. | |
| badgeLabel | string | Badge's label | Free |
| titleMessage | string | Additional message in the title | Get a |
Price Definition
| Name | Type | Description | Default |
|---|---|---|---|
| value | number | The raw price value. | |
| listPrice | number | Product's list price | |
| formatter | PriceFormatter | (price: number, variant: PriceVariant) => ReactNode |
GiftImage
| Name | Type | Description | Default |
|---|---|---|---|
| testId | string | ID to find this component in testing tools (e.g.: cypress, testing library, and jest). | fs-gift-image |
Design Tokens
| Local token | Default value/Global token linked |
|---|---|
--fs-gift-height | var(--fs-spacing-12) |
--fs-gift-bkg-color | var(--fs-control-bkg) |
--fs-gift-border-width | var(--fs-border-width) |
--fs-gift-border-color | var(--fs-border-color-light) |
--fs-gift-border-radius | var(--fs-border-radius) |
Nested Elements
Content
| Local token | Default value/Global token linked |
|---|---|
--fs-gift-content-padding | var(--fs-gift-gap) var(--fs-gift-gap) var(--fs-gift-gap) 0 |
--fs-gift-content-row-gap | var(--fs-spacing-0) |
Title
| Local token | Default value/Global token linked |
|---|---|
--fs-gift-title-line-height | 1.25 |
--fs-gift-title-size | var(--fs-text-size-body) |
--fs-gift-title-color | var(--fs-color-text) |
Icon
| Local token | Default value/Global token linked |
|---|---|
--fs-gift-icon-size | 1.75rem |
--fs-gift-icon-padding | var(--fs-spacing-0) |
--fs-gift-icon-color | var(--fs-gift-title-color) |
--fs-gift-icon-bkg-color | var(--fs-color-body-bkg) |
Price
| Local token | Default value/Global token linked |
|---|---|
--fs-gift-price-size | var(--fs-text-size-legend) |
Customization
For further customization, you can use the following data attributes:
data-fs-gift
data-fs-gift-icon
data-fs-gift-wrapper
data-fs-gift-image
data-fs-gift-content
data-fs-gift-product-title
data-fs-gift-product-summary