When to use
A zero state is the first thing a new operator sees, and it sets whether they succeed or bounce. Treat emptiness as an opportunity, not an error: name the one action that unblocks them, show the path they are on, and offer help without demanding it. There is exactly one primary action — everything else is orientation. Try the button above; the steps and the empty state advance together.
Use it for any first-run screen, a freshly created workspace, or a filtered view that legitimately has no results. When the emptiness is a failure rather than a beginning, use an ErrorState instead.
Structure
[01]Empty state
A centered EmptyState with a drawn icon, a mono eyebrow, a sentence-case headline, orienting copy, and the single primary Button.
[02]Onboarding steps
A vertical Steps list makes the whole path visible so the first action never feels like a dead end.
[03]Help callout
An info-tone Callout offers documentation and a human, kept quiet so it never competes with the primary action.
[04]Reassurance
A closing Eyebrow promises the work is saved — lowering the cost of leaving raises the odds of returning.