Card
The Card component is a flexible and extensible content container. It’s built upon the Surface component and can be composed of different parts like media, information, and actions.
<Card constraints={{ maxWidth: 850 }} info={{ title: "Masked Booby", body: "Apparatus causa nostrum minima defessus sol aro. Civitas ultra statim necessitatibus comminor tepesco. Volva aer termes cohors veritatis crux.", }} />
Features
With Media
The Card component can feature a media element, such as an Image or a DecorativeVideo.
<Card constraints={{ maxWidth: 850 }} media={ <Image src="https://picsum.photos/seed/jOLC4DY/3233/1477?blur=9" aspectRatio="16:9" /> } info={{ title: "Steller's Sea-Eagle", body: "Abundans aegrotatio depraedor suppellex doloribus dolorum. Voveo pecto celer nihil delego. Auxilium strenuus aro nostrum caveo molestias.", }} />
With Actions
You can add actions to a Card by passing them to the info prop. These can be a single Button or a ButtonGroup.
<Card constraints={{ maxWidth: 850 }} info={{ title: "Crescent-chested Warbler", body: "Decor tunc conqueror aegrotatio tabgo demulceo admiratio cumque. Tubineus repudiandae ad spectaculum coepi venia tonsor repellendus. Vinco pectus appositus adimpleo caelum deputo sit porro ab uredo.", actions: ( <ButtonGroup> <Button variant="primary" grow={1}> Flesh-footed Shearwater </Button> <Button variant="secondary" grow={1}> Fork-tailed Storm-Petrel </Button> </ButtonGroup> ), }} />
Interactive
A Card can be made interactive by providing an onClick handler. This will apply interaction styles and make the entire card clickable.
<Card constraints={{ maxWidth: 850 }} info={{ title: "Yellow-throated Vireo", body: "Provident concedo vitium umbra triumphus carus explicabo usitas. Nulla ulterius speculum voluptatum degero. Ustulo defluo amiculum acidus aurum tenetur absconditus fugit.", }} onClick={() => alert("Card clicked!")} />
As a Link
The Card component can be rendered as a link by using the as prop, for example with PlainLink from @codedazur/fusion-ui.
<Card as={PlainLink} constraints={{ maxWidth: 850 }} href="https://codedazur.com" target="_blank" info={{ title: "Yucatan Vireo", body: "Comminor collum debeo temptatio corroboro tandem. Accusator maiores delectatio. Comparo peior claudeo audax.", }} />
Anatomy
Himalayan Snowcock
Laboriosam quia voluptatem comedo statim versus cupressus voluptatibus autem modi. Odit decumbo tergeo voco id certe suscipit deprecator. Corrumpo deprecator perspiciatis.
Reference
Props
The Card component inherits all of the props from the Surface component and adds the following props.
| Name | Type | Default | Description |
|---|---|---|---|
media | ReactNode | - | The media element to display at the top of the card. |
info | InfoProps | - | The informational content of the card. |
disabled | boolean | false | Whether the card is disabled (only if onClick is set). |
See Info for more details on the info prop.
Events
The Card component supports the following events.
| Event | Description |
|---|---|
click | Fired when the card is clicked. |
Tokens
| Key | Default Value |
|---|---|
card.surface.base.borderWidth | 0 |
card.surface.base.borderStyle | solid |
card.surface.base.borderRadius | var(--gpqiqdw) |
card.surface.variants.interaction.static.backgroundColor | var(--_1i4ikbk10) |
card.surface.variants.interaction.static.borderColor | transparent |
card.surface.variants.interaction.static.boxShadow | var(--gpqiqe8) |
card.surface.variants.interaction.interactive.backgroundColor | var(--_1i4ikbk10) |
card.surface.variants.interaction.interactive.borderColor | transparent |
card.surface.variants.interaction.interactive.boxShadow | var(--gpqiqe8) |
card.surface.variants.interaction.interactive.:hover.backgroundColor | color-mix(in srgb, var(--_1i4ikbk10) 95%, var(--_1i4ikbkv) 5%) |
card.surface.variants.interaction.interactive.:hover.borderColor | transparent |
card.surface.variants.interaction.interactive.:hover.boxShadow | var(--gpqiqe8) |
card.surface.variants.interaction.interactive.:focus-visible.backgroundColor | color-mix(in srgb, var(--_1i4ikbk10) 95%, var(--_1i4ikbkv) 5%) |
card.surface.variants.interaction.interactive.:focus-visible.borderColor | transparent |
card.surface.variants.interaction.interactive.:focus-visible.boxShadow | var(--gpqiqe8) |
card.surface.variants.interaction.interactive.:focus-visible.outlineWidth | var(--_1i4ikbk2e) |
card.surface.variants.interaction.interactive.:focus-visible.outlineStyle | var(--_1i4ikbk2f) |
card.surface.variants.interaction.interactive.:focus-visible.outlineColor | var(--_1i4ikbk2g) |
card.surface.variants.interaction.interactive.:focus-visible.outlineOffset | var(--_1i4ikbk2h) |
card.surface.variants.interaction.interactive.:active.backgroundColor | color-mix(in srgb, var(--_1i4ikbk10) 95%, var(--_1i4ikbkv) 5%) |
card.surface.variants.interaction.interactive.:active.borderColor | transparent |
card.surface.variants.interaction.interactive.:active.boxShadow | var(--gpqiqe8) |
card.surface.variants.disabled.true.opacity | var(--_1i4ikbk2i) |
card.surface.variants.disabled.true.backgroundColor | var(--_1i4ikbk10) |
card.surface.variants.disabled.true.borderColor | transparent |
card.surface.variants.disabled.true.boxShadow | var(--gpqiqe8) |
card.content.base.paddingLeft | var(--gpqiqdd) |
card.content.base.paddingTop | var(--gpqiqdd) |
card.content.base.paddingRight | var(--gpqiqdd) |
card.content.base.paddingBottom | var(--gpqiqdd) |