Overview
Use EmptyState when a region has no content to show, a search returns no results, or access and system conditions prevent the expected outcome.
First-use project state
The message explains why the region is empty and offers a direct next step.
No projects yet
Anatomy
A useful empty state pairs a recognizable visual with a concise outcome, supporting guidance, and proportionate actions.
Create a project to coordinate work.
- 1Visual
Reinforces the state without carrying meaning alone.
- 2Title
Names the outcome in a short, direct phrase.
- 3Description
Explains why it happened or what to do next.
- 4Actions
Offer one primary path and an optional alternative.
- 5Context
Adds low-emphasis detail only when it supports a decision.
When to use
Use EmptyState for a meaningful absence that benefits from explanation or recovery guidance.
Recommended
- Introduce an unused area
Help people understand the value of creating their first item.
- Resolve a zero-result search
Confirm that filtering completed and suggest a way to broaden it.
- Explain blocked outcomes
Describe permission or system conditions and provide a safe next step.
When not to use
Do not use EmptyState when absence is expected, temporary, or too small to justify a full message.
Avoid
- Do not replace loading feedback
Use Spinner or Skeleton while data is still being resolved.
- Do not interrupt brief gaps
Leave intentionally optional or self-explanatory regions quiet.
- Do not report transient operations
Use Toast for short-lived success or failure feedback.
Variants
Container emphasis and semantic status adapt EmptyState to page-level, bounded, and elevated regions.
Plain
Integrates into a region whose boundary is already clear.
Bordered
Defines an otherwise ambiguous empty region.
Raised
Supports a contained state on an elevated workspace surface.
Semantic status
Empty, search, error, permission, and success select a relevant visual.
States
The component communicates stable outcomes; asynchronous transitions remain owned by the surrounding workflow.
| State | Trigger | Visual response | Interaction |
|---|---|---|---|
| First use | No records exist | Neutral visual and creation guidance | Primary creation action |
| No results | Filters match nothing | Search visual and query guidance | Clear or edit filters |
| Error | Content cannot be retrieved | Error treatment and explanation | Retry or get help |
| Permission | Access is restricted | Lock treatment and policy context | Request access when allowed |
| Success | A completion replaces content | Success treatment and outcome | Continue to next task |
Behavior
EmptyState structures content and visual hierarchy while applications own conditions, actions, analytics, and navigation.
Action priority
Render one primary action before a lower-emphasis alternative.
Responsive centering
Content remains centered while actions wrap on narrow surfaces.
Visual override
Product illustrations can replace the status icon without changing structure.
Bounded scale
Three sizes provide predictable minimum height and spacing.
Accessibility
EmptyState is a semantic section whose heading names the region; action components retain their native keyboard behavior.
- Connect the section to a visible heading when the surrounding page does not already provide one.
- Treat decorative icons and illustrations as hidden from assistive technology.
- Include meaningful alternative text only when a custom visual contributes unique information.
- Do not rely on status color or iconography to communicate the outcome.
- Use descriptive action labels such as “Clear filters” instead of “Click here”.
- Move focus only when the surrounding workflow requires a newly important announcement.
Content guidelines
Write for the next decision: confirm the outcome, add only useful context, and label the best available action.
State the outcome
Use a direct title without blame or alarm.
No matching projects
Explain the next step
Keep supporting text to one or two short sentences.
Try removing a filter.
Use specific actions
Name the action and its object.
Create project
Avoid dead ends
When no action is possible, explain when or how the state can change.
Ask a workspace admin for access.
Examples
Status and size can create a compact zero-result message without changing the action model.
Search with no results
A compact search state points directly to filter recovery.
No matching projects
Props / API
EmptyState extends section attributes and composes design-system actions without owning their behavior.
Props