Column with a surface's worth of sensible defaults — not a new visual vocabulary, just
spacing/border/radius/background values a caller would otherwise repeat on every card. Every
default is a plain JS default parameter, not a class the caller's own prop has to out-cascade.
tsx
Card titleSupporting copy for this card.
<Card>
...
</Card>Examples
Since every default is just a Column prop's default value, override any of them the same way you
would on a plain Column — no separate "card variant" API to learn:
tsx
Plan
Everything you need to get started.<Card gap="8">
<Heading as="h3" displaySize="xs">Plan</Heading>
<Text color="medium">Everything you need to get started.</Text>
</Card>href makes the whole card a real link, same as Button — the prev/next cards at the bottom of
this page are exactly this. Pass your router's own link component via as to get client-side
navigation instead of a full page load:
tsx
<Card as={Link} href="/get-started" gap="4">
<Text fontSize="xs" color="medium">Next</Text>
<Text weight="medium">Get started</Text>
</Card>Props
| Prop | Type | Default | Description |
|---|---|---|---|
| href | text | — | Shorthand for `as="a"` — see system/ElementType.tsx. |