System

Lockup / The stack that stands in for content: empty, error, and success states.

Anatomy

Four parts, all optional but the title: LockupMedia LockupTitleLockupDescription LockupActions. The root carries the size and the alignment; every part reads its scale off that, so nothing inside is hand-sized.

Media, title, description, and actions

No matching invoices

Nothing came back for that search in the last 90 days. Try a shorter phrase, or widen the date range.

Size

Pick the size from the container, not from how important the message is: sm inside a card, a table body, or a small panel; md (default) in a modal, a side panel, or a page section; lg on a full page.

sm, md, lg

Your inbox is clear

Nothing needs your attention right now.

Your inbox is clear

Nothing needs your attention right now.

Your inbox is clear

Nothing needs your attention right now.

Alignment

align="center" (default) for full pages and modals, where the block owns the whole space. align="start" inside a card or a side panel, where the text should line up with everything else in the column.

align="start"

No shared files

Files people share with you land here.

align="center"

No shared files

Files people share with you land here.

Media tone

Tone colors the media chip and nothing else: the box, the type, and the layout never move. variant="bare" drops the chip and bumps the glyph a step, which is what an avatar or an image wants.

neutral, accent, success, destructive

Nothing here yet

Neutral reads as a resting state, not a problem.

No results

Accent is the default: an ordinary, expected outcome.

Import finished

Success confirms work that just completed.

Connection lost

Destructive is for a failure the reader has to act on.

Full page

At lg the title takes the display size, so set level={1}: a whole page given over to one message is that page's heading.

A page-level failure state

The run failed

The run was stopped, usually because the dev server restarted. Your transcript is saved.

Props

Every prop each part accepts.

PartPropTypeDefaultNotes
Lockupsizesm · md · lgmdMatch it to the container, not to the weight of the message
Lockupaligncenter · startcenterCenter on full pages and modals, start inside cards and side panels
LockupMediatoneneutral · accent · success · destructiveaccentColour only; never changes the box, the type, or the layout
LockupMediavarianttinted · baretintedBare drops the chip and bumps the glyph a step; use it for an avatar or an image
LockupTitlelevel1 – 62Heading rank only; the size comes from the root, not from this
LockupDescriptionPlain paragraph; capped near 55 characters a line so centred copy holds together
LockupActionsOne primary button, optionally a secondary beside it; wraps rather than overflows