Empty
A centred placeholder for a region with no content to show.
Empty fills a region that has nothing in it — no search results, an unstarted list, a cleared inbox — with a short title and an optional line of guidance. It explains the emptiness rather than leaving a blank space that reads as a bug.
Examples
Title and description
No results
Try adjusting your search or filters.
<Empty title="No results" description="Try adjusting your search or filters." />Empty centres itself in the full height of its container, so give it a parent with a defined height.
With icon and action
No projects yet
Projects you create or join show up here.
<Empty
icon={<InboxIcon />}
title="No projects yet"
description="Projects you create or join show up here."
action={<Button>New Project</Button>}
/>icon renders above the title in a tinted tile and is sized for you. action
takes one control that gets the reader started; a Button passed there is
styled as a small secondary button through context. Offer one action, not a
menu of choices.
When to use
Use Empty when a region has no content to show yet — no results, an unstarted list, a cleared inbox — to say why and what to do next.
Use something else when:
- The content is still loading. Use Skeleton or Spinner.
- Something failed. Explain the problem and how to recover in a Banner above the region.
Usage
Do
Say why the region is empty and what to do next — "Try adjusting your search" beats a bare "Nothing here".
Don't
Use it for errors or failed loads. Empty describes an expected absence of content, not a problem to recover from.
Props
| Prop | Type | Default |
|---|---|---|
actionOne action that gets the reader started, such as a `Button`. It is styled | TypeReactNode | Default— |
description | Typestring | Default— |
icon | TypeReactNode | Default— |
title | Typestring | Default— |
Accessibility
Empty renders a plain div with its title and description as ordinary text, so
they are read in document order. If it replaces content in response to a search
or filter, give its container role="status" so the change is announced.