Skip to content

Empty state ​

An illustrated placeholder for a list with nothing in it.

Open in demo
Open in demo

Usage ​

title is the only required prop. description says what to do next, and actionLabel with actionHandler puts a button under it.

The illustrations are inline SVG components, drawn in muted-foreground at 60% so they read as a placeholder rather than as content. Nothing is fetched.

DataTable renders this component for its own empty state, with the no-data variant. See DataTable.

Examples ​

Variants ​

variant is no-data, search, empty-inbox, error or success. Each has its own illustration, and the words are yours.

Title only ​

API ​

Source: src/shared/components/feedback/EmptyState.vue

Props ​

PropTypeDefaultDescription
variant'search' | 'no-data' | 'error' | 'empty-inbox' | 'success''no-data'Picks the illustration.
titlestringrequiredThe heading.
descriptionstring—One or two lines under it, capped at a readable width.
actionLabelstring—The button's text. No label, no button.
actionHandler() => void—Called on press.

Emits ​

None.

Slots ​

None.

Accessibility ​

  • The title is an <h3>, so the state takes its place in the page's outline rather than being a loose line of text.
  • The illustration carries no text and adds nothing a screen reader needs, and the title beside it says what the state is.
  • The description is capped at a readable measure rather than running the full width of a wide table.