---
## EmptyState
Centered placeholder block for "no data yet" / "no results"
states. Pairs an optional icon with a heading, supporting text, and an
optional call-to-action slot.
**Import:** `import { EmptyState } from '@urbicon-ui/blocks';`
### Examples
```svelte
{#snippet cta()}
{/snippet}
```
### Variants
- density: compact, default (default: default)
### Api
| Prop | Type | Required | Default | Description |
| --- | --- | :---: | --- | --- |
| title | `string` | yes | | Title property for the EmptyState component |
| ...HTMLAttributes | `HTMLAttributes` | no | | HTML attributes (excluding: 'children' | 'title') |
| children | `Snippet` | no | | Optional richer content rendered below the description (and replacing it visually). |
| class | `string` | no | | Extra classes merged onto the wrapper. |
| cta | `Snippet` | no | | Action buttons rendered below the description. |
| density | `'compact' | 'default'` | no | 'default' | Visual density. `compact` is suitable for inline empty rows in tables or cards; `default` for full-page empty states. |
| description | `string` | no | | Supporting paragraph below the title. |
| icon | `Component` | no | | Icon component rendered above the title. Pass any icon from `@urbicon-ui/blocks/icons` (or a compatible stroke icon). |
| preset | `string` | no | | Apply a named preset registered via ``. Prefer this over `class` overrides when the same look should be reused across the project. |
| slotClasses | `Partial>` | no | | Per-slot class overrides. Slots: base | iconWrapper | title | description | children | cta |
| unstyled | `boolean` | no | | Remove all default tv classes. |
Inherited from:
- Omit, 'children' | 'title'> (omit-pattern)