Empty

What a place looks like before it has anything in it, and how to fill it.

No documents yet
Write specs, meeting notes, and decisions in one place. Documents you create or that teammates share with you will show up here.

Tip: pressโŒ˜Nfrom anywhere to start a document.

Fig. 1 An empty documents list that says what will appear here and how to add the first one.

When to use it

Use Empty when a list, table, or search has nothing to show. Say what will appear here and offer the action that fills it.

For a search with no results, suggest a change to the search instead of an action.

Alert

Stays on the page.

Changes saved
Your project is up to date and ready to share.

Warnings and errors about this page.

Toast

Comes and goes.

Confirmations that need no reply.

Badge

Labels a status.

PublishedTrialCurrentInternal

Published, Draft, and Beta.

EmptyThis page

Nothing here yet.

No documents yet
Write specs, meeting notes, and decisions in one place. Documents you create or that teammates share with you will show up here.

Tip: pressโŒ˜Nfrom anywhere to start a document.

First runs and empty searches.

Fig. 2 Four ways to tell people something. Pick by how long it should stay and how much it matters.

How it behaves

Compose Empty with EmptyHeader, EmptyMedia, EmptyTitle, EmptyDescription, and EmptyContent for actions. The column centers in its container while text and actions stay left-aligned.

EmptyMedia shows an illustration by default: pass an icon from your set and it renders at 64px in the muted color with thinned strokes. variant="icon" places a small icon in a control-filled tile instead.

EmptyDescription uses 16px muted body text; separate paragraphs stack with a small gap, and inline Kbd or icons sit on the text line. Say what belongs here and how to add it.

Lead with one primary action and keep secondary actions quieter, such as the secondary Button. Add border for a dashed panel inside a larger surface. For a list that is empty only because of a filter, say so and offer to clear it.

Build it

Add it with the shadcn CLI:

Terminal

A complete example. Change the values to fit your product:

empty-example.tsx

The full source is yours to edit once installed:

empty.tsx