Components
Empty
BetaBeta — the props contract is close to final, but small breaking changes can still land.Empty-state layout for blank lists, zero results, and new workspaces.
Composition
Anatomy
- <Empty>
- <EmptyHeader>
- <EmptyMedia />
- <EmptyTitle />
- <EmptyDescription />
- <EmptyContent>
- <Button />
- <EmptyHeader>
Installation
The Control UI source installs this primitive from src/registry/sources/control-ui/ui/empty.tsx.
Raw code
Primary installed source
Knobs
Typed custom properties the recipe paints with. Set one on the root — style, a utility class, or a skin — and every slot inherits it.
--cui-empty-* · 21 knobsHow the cascade resolves--cui-empty-radius<length-percentage>var(--radius-lg)--cui-empty-background<color>transparent--cui-empty-border-color<color>transparent--cui-empty-border-width<length>var(--control-rim-width)--cui-empty-border-style*solid--cui-empty-media-radius<length-percentage>var(--radius-lg)--cui-empty-media-background<color>var(--muted)--cui-empty-shadow*none--cui-empty-foreground<color>var(--foreground)--cui-empty-description-foreground<color>var(--muted-foreground)--cui-empty-media-foreground<color>var(--muted-foreground)--cui-empty-padding<length-percentage>calc(var(--spacing) * 6)--cui-empty-gap<length-percentage>calc(var(--spacing) * 6)--cui-empty-header-gap<length-percentage>calc(var(--spacing) * 2)--cui-empty-content-gap<length-percentage>calc(var(--spacing) * 2)--cui-empty-content-size<length-percentage>24rem--cui-empty-media-size<length-percentage>calc(var(--spacing) * 10)--cui-empty-media-icon-size<length-percentage>calc(var(--spacing) * 5)--cui-empty-font-size<length-percentage>var(--text-body)--cui-empty-title-font-weight<number>var(--font-weight-medium)--cui-empty-media-background-image*none