Stack Card
A single card with 1–3 decorative layers peeking out behind it, fanning slightly wider on hover — a static illusion of depth for one piece of content, not a browsing widget.
View the Stack Card componentLive example
Try the interaction before reading the recipe.
real component · keyboard-safe
Design system audit
3 more saved searches behind this one.
Purpose
A single card with 1–3 decorative layers peeking out behind it, fanning slightly wider on hover — a static illusion of depth for one piece of content, not a browsing widget.
Good for
- a single piece of content that should visually imply there's more behind it — a saved-searches tile, a folder, a "3 more like this" card
Avoid for
- an actual stack of many distinct cards a user pages through — that's
DraggableCardStackorCardStackBrowseinpackages/systems, real browsing widgets with drag/paging behavior this component deliberately doesn't have. Reach for those when there's a stack of *content* to get through; reach for this one when a single piece of content just wants to look like it has some behind it.
Recommended defaults
depth={2} reads as "a few more of these" without the layers becoming distracting; depth={3} is the most pronounced version and starts competing with the face card's own content if used often on one page.
Accessibility
- Same focus-visible rule as Basic Card once
onClick/hrefis present. - The decorative layers are
aria-hidden— they carry no content of their own, so there's nothing for assistive tech to announce.
Performance
The fan-out on hover is motion-safe:-scoped; under prefers-reduced-motion: reduce the layers stay at their rest offset rather than animating outward.
Composition
The family's shared shape lives in docs/card-api-conventions.md — read that once, not per card.
Source: packages/skills/components/stack-card.md