Display and feedback · stable · MIT

Empty

A structured zero-state with media, title, description, and actions.

Install editable source

Add Empty

Base UI / canonicalnpx shadcn@latest add https://gummyui.dev/r/gummy-empty.json

No package dependency beyond React. Shared Gummy material is resolved automatically.

Behavior contract

Semantics before surface

Semantics

Passive content structure; actions remain explicit native controls.

Keyboard

Only nested actions are focusable.

System support

Light and dark themes, logical RTL layout, reduced motion, responsive content, and forwarded public refs.

Source-derived reference

Anatomy and public API

Exported anatomy

These public React parts are read directly from the canonical source during the documentation build.

  • GummyEmpty
  • GummyEmptyActions
  • GummyEmptyDescription
  • GummyEmptyMedia
  • GummyEmptyTitle

Prop contracts

Each exported part accepts the underlying native, Base UI, or documented Radix prop contract. Inspect the selected source below for exact generic types.

Troubleshooting

Check behavior before surface.

Implementation decisions

When to use Empty

Use an empty state to explain why expected content is absent and what a customer can realistically do next. Distinguish a new workspace, filtered zero results, removed access, provider failure, and a product with no available records; those situations need different language and actions. Avoid celebratory illustration that masks an error. Test whether the proposed action is authorized, reachable, and still useful on a narrow screen.

Live product source

Inspect the canonical states

The Component Lab exercises real source across default, focus, disabled, responsive, dark, reduced-motion, and RTL contexts.

Open the live Component Lab

Interactive inspection

Try Empty in context

Load the real component preview when you are ready to interact with its responsive, theme, and direction controls.

Editable source

Read before you install

Canonical Base UI or native source

The registry payload stays off the initial page request.