@usevyre/react@usevyre/vue

Empty State

A consistent placeholder for empty lists, tables, and search results. Pick a variant for a preset icon, settitle/description, and compose the call-to-action as children. Use it for no data — not loading (reach for Skeleton there).


Default, search & error

variant="default" shows a box, "search" a magnifier, "error" a warning (tinted danger). Each takes an optional CTA via children.

No projects yetCreate your first project to get started.
No resultsTry a different search term.
Couldn't load dataSomething went wrong. Please try again.
import { EmptyState, Button } from "@usevyre/react";

<EmptyState
  title="No projects yet"
  description="Create your first project to get started."
>
  <Button variant="primary">New project</Button>
</EmptyState>

<EmptyState
  variant="search"
  size="sm"
  title="No results"
  description="Try a different search term."
>
  <Button variant="secondary">Clear filters</Button>
</EmptyState>

<EmptyState
  variant="error"
  title="Couldn't load data"
  description="Something went wrong. Please try again."
>
  <Button variant="secondary">Retry</Button>
</EmptyState>

Props

Props

PropTypeDefaultDescription
titlestringHeadline (required).
descriptionstringSupporting text under the title.
variant"default" | "search" | "error""default"Preset icon: box / magnifier / warning.
iconReactNodeCustom icon — overrides the variant preset (Vue: #icon slot).
size"sm" | "md" | "lg""md"sm for inline/in-Card, lg for full-page.
childrenReactNodeThe call-to-action (a Button, or buttons in a Stack).