Card
A content surface, used three ways: a stat card (a single metric, a big number and a delta), a section card (a labeled surface with an optional header and divider), and the generic card that brings its own structure.
A card with content is padded by default, and a padded surface also spaces its flat children (the card owns the vertical rhythm, so a stack of Typography lines needs no layout wrapper); pass flush to opt out of both, the inset and the spacing, for edge-to-edge content (a table, a nav bar) or when you compose the self-padding CardHeader/CardContent.
The section props (title / description / icon / actions / footer) render self-padding sections, so a sectioned card needs no padded. They compose with a string body OR with raw children, so a panel can carry a titled header above a table or a form; children win when both are passed. For a cover image, CardMedia is the full-bleed top slot: it spans the card edge to edge, its top corners follow the card's corner, and its bottom edge stays flat; compose it with flush and let CardContent pad the text below.
Density: pass compact or comfortable to tighten or relax the card's own padding and the gap between flat children (compact takes precedence, and a density prop pads the surface on its own). grow fills the height a parent Row or Column hands the card (the body takes the slack, so a footer stays on its floor); inside a Grid cell it is implied, so the tiles of one row are equal-height without being asked.
Active identities
12,348
+142 today
iOS
Active identities
12,348
+142 today
Android
Active identities
12,348
+142 today
Web
tsx
Default
Generic
Flat children
Flat
Raised
Density
Section
Section with children
Icon and footer
Media
Actions
Pressable
Selectable
Props
Card
CardSection
CardText
CardMedia
Do & Don’t
stat
Don’t
Prose where the number should be: the eye has nothing big to land on, so the card stops being a stat.
Do
Active identities
12,348
+142 today
U
One big number, a short label, a small delta. The metric is scannable in a glance.
section
Don’t
Without the divider the header floats and stops reading as a header.
Do
Recent activity
Two events today.
Keep the divider between header and body; it anchors the title.
generic
Don’t
Nesting one card surface inside another stacks border on border and shadow on shadow; the inner block looks dropped in.
Do
Anything goes here
The card surface gives you the border, radius, and shadow. You bring the content.
Use the surface once and layout the content with plain spacing inside it.