Skip to content
BigBang

Popular

    ↑↓Navigate↵OpenEscClose
    TR

    Components

    Card

    Keeps related content and actions together on one surface.

    Storybook
    Storybook
    Source
    Source

    Card shows the information and actions of one topic together: a dashboard summary, a group of settings, a link to a record. Cards usually sit side by side in a grid and users scan across them.

    • For a whole page: the page is already a region; do not wrap all content in one card.
    • For a numeric summary: use StatCard for tiles with a value, change and trend.
    • For record rows: use Table or DataTable for many records to compare.
    • For the rows of a list: use ListItem for repeated rows; do not put each row in its own card.
    1. Root: surface, border or shadow and 16 px (radius-lg) corners. A <section> when it has a title.
    2. Header (Card.Header): title, description and action.
    3. Title (Card.Title): 16 px semibold heading; level h3 by default.
    4. Description (Card.Description): one or two lines under the title, in the subtle colour.
    5. Action (Card.Actions): at the end of the header row, optional.
    6. Body (Card.Body): the main content.
    7. Footer (Card.Footer): actions, or status and secondary information.
    • A Card is static by default: it does not change on hover or click and is not a tab stop.
    • An interactive card rises 2 px and its border darkens on hover; it settles while pressed. With reduced motion only the border changes.
    • An interactive card has one link (Card.Link) whose hit area covers the card. Other actions sit above the link and are tab stops of their own.
    • Content wraps to the card width; the card grows with its content. For equal heights in a grid, give the grid cell h-full.

    The title should cover everything in the card. Use two cards for two topics.

    Card title

    Card content goes here.
    DoTitle and content describe the same topic.

    Card title

    Card title

    Don'tA card inside a card: the hierarchy does not read.

    When the whole card is clickable, it opens one place. Other actions sit apart in Card.Actions or Card.Footer.

    DoThe card opens the detail; edit is a separate button.
    Don'tTwo separate links in one card: it is unclear which one opens.

    Keep at most one primary Button in the footer.

    Card title

    DoOne primary and one secondary action.

    Card title

    Don'tTwo primary actions compete.

    Show a card’s status with a Badge, not with the border colour.

    Card title

    Active
    DoThe status is in a Badge, as text.

    Card title

    Don'tOnly the border colour carries the status.
    • Write the title as a noun phrase in sentence case: “Card title”, “Notification settings”.
    • Keep the description to two lines at most; move longer text to the body.
    • Start footer Button labels with a verb: “Save”, “View details”.
    • The link text of an interactive card is the title itself; never “Click here” or “More”.
    • Desktop: cards sit in a 2-4 column grid; cards in one row use the same variant.
    • Mobile: at 390 px cards stack in one column. A full-bleed look without side borders is not built yet; the page margin stays.
    • Badge: shows the card’s status in the footer or next to the title.
    • Button: for the card’s actions.
    • Grid: lays cards out in a grid.
    • StatCard: a tile built on Card for numeric summaries.