Skip to content
Feedback

EmptyState

What's missing and how to fill it, with one main action.

import { EmptyState } from "@flinbu/seed";

Page

No components yet

Import them from Figma, or ask Pluto to draft the first ones from your tokens.

import { Button, EmptyState } from "@flinbu/seed";
import { Component } from "lucide-react";

<div className="w-full max-w-md rounded-xl border border-secondary bg-primary">
  <EmptyState icon={<Component />} title="No components yet" description="Import them from Figma, or ask Pluto to draft the first ones from your tokens."
    actions={<><Button variant="secondary">Import from Figma</Button><Button>Draft with Pluto</Button></>} />
</div>

Small, in a panel

No results

Try fewer filters.

import { Button, EmptyState } from "@flinbu/seed";

<div className="w-full max-w-xs rounded-xl border border-secondary bg-primary">
  <EmptyState size="sm" title="No results" description="Try fewer filters." actions={<Button size="sm" variant="secondary">Clear filters</Button>} />
</div>

Use it for

  • Empty pages, tables and search results.

Props

PropTypeDefaultDescription
iconIconPropnoneDefaults to an inbox; false hides it. An element like <Search /> (works in server components) or, in client components, the component itself.
titleReactNodenoneWhat isn't here yet.
descriptionReactNodenoneHow to add it.
actionsReactNodenoneOne primary Button, optionally a secondary.
size'sm' | 'md''md'sm inside tables and narrow panels.

Accessibility

  • The title is a paragraph; wrap the region in a heading-level section if it needs one.