Skip to Content
Referencefusion-uiComponentsDisplayCard

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!")}
/>

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.

1.SurfaceThe root `Surface` component that forms the card's container.
2.MediaThe area at the top of the card for content like an `Image` or `DecorativeVideo`.
3.ContentAn area that provides padding and spacing for the card's content.
4.TitleA short title for the card, provided through the `Info` component.
5.BodyThe main text content of the card, provided through the `Info` component.
6.ActionsA slot within the `Info` component for `Button`s or a `ButtonGroup`.

Reference

Props

The Card component inherits all of the props from the Surface component and adds the following props.

NameTypeDefaultDescription
mediaReactNode-The media element to display at the top of the card.
infoInfoProps-The informational content of the card.
disabledbooleanfalseWhether 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.

EventDescription
clickFired when the card is clicked.

Tokens

KeyDefault Value
card.surface.base.borderWidth0
card.surface.base.borderStylesolid
card.surface.base.borderRadiusvar(--gpqiqdw)
card.surface.variants.interaction.static.backgroundColorvar(--_1i4ikbk10)
card.surface.variants.interaction.static.borderColortransparent
card.surface.variants.interaction.static.boxShadowvar(--gpqiqe8)
card.surface.variants.interaction.interactive.backgroundColorvar(--_1i4ikbk10)
card.surface.variants.interaction.interactive.borderColortransparent
card.surface.variants.interaction.interactive.boxShadowvar(--gpqiqe8)
card.surface.variants.interaction.interactive.:hover.backgroundColorcolor-mix(in srgb, var(--_1i4ikbk10) 95%, var(--_1i4ikbkv) 5%)
card.surface.variants.interaction.interactive.:hover.borderColortransparent
card.surface.variants.interaction.interactive.:hover.boxShadowvar(--gpqiqe8)
card.surface.variants.interaction.interactive.:focus-visible.backgroundColorcolor-mix(in srgb, var(--_1i4ikbk10) 95%, var(--_1i4ikbkv) 5%)
card.surface.variants.interaction.interactive.:focus-visible.borderColortransparent
card.surface.variants.interaction.interactive.:focus-visible.boxShadowvar(--gpqiqe8)
card.surface.variants.interaction.interactive.:focus-visible.outlineWidthvar(--_1i4ikbk2e)
card.surface.variants.interaction.interactive.:focus-visible.outlineStylevar(--_1i4ikbk2f)
card.surface.variants.interaction.interactive.:focus-visible.outlineColorvar(--_1i4ikbk2g)
card.surface.variants.interaction.interactive.:focus-visible.outlineOffsetvar(--_1i4ikbk2h)
card.surface.variants.interaction.interactive.:active.backgroundColorcolor-mix(in srgb, var(--_1i4ikbk10) 95%, var(--_1i4ikbkv) 5%)
card.surface.variants.interaction.interactive.:active.borderColortransparent
card.surface.variants.interaction.interactive.:active.boxShadowvar(--gpqiqe8)
card.surface.variants.disabled.true.opacityvar(--_1i4ikbk2i)
card.surface.variants.disabled.true.backgroundColorvar(--_1i4ikbk10)
card.surface.variants.disabled.true.borderColortransparent
card.surface.variants.disabled.true.boxShadowvar(--gpqiqe8)
card.content.base.paddingLeftvar(--gpqiqdd)
card.content.base.paddingTopvar(--gpqiqdd)
card.content.base.paddingRightvar(--gpqiqdd)
card.content.base.paddingBottomvar(--gpqiqdd)
Last updated on