# Dashboard Layout
Build admin interfaces with resizable sidebars, multi-panel layouts, and toolbars.
## Component tree
```
UApp
└── NuxtLayout (dashboard)
└── UDashboardGroup
├── UDashboardSidebar
│ ├── #header (logo, search button)
│ ├── #default (navigation) — receives { collapsed } slot prop
│ └── #footer (user menu)
└── NuxtPage
└── UDashboardPanel
├── #header → UDashboardNavbar + UDashboardToolbar
├── #body (scrollable content)
└── #footer (optional)
```
## Layout
```vue [layouts/dashboard.vue]
```
## Page
```vue [pages/dashboard/index.vue]
```
## Key components
### DashboardGroup
Root layout wrapper. Manages sidebar state and persistence.
| Prop | Default | Description |
|---|---|---|
| `storage` | `'cookie'` | State persistence: `'cookie'`, `'localStorage'`, `false` |
| `storage-key` | `'dashboard'` | Storage key name |
| `unit` | `'percentages'` | Size unit: `'percentages'` or `'pixels'` |
### DashboardSidebar
Resizable, collapsible sidebar. Must be inside `DashboardGroup`.
| Prop | Default | Description |
|---|---|---|
| `resizable` | `false` | Enable resize by dragging |
| `collapsible` | `false` | Enable collapse when dragged to edge |
| `side` | `'left'` | `'left'` or `'right'` |
| `mode` | `'slideover'` | Mobile menu mode: `'modal'`, `'slideover'`, `'drawer'` |
Slots receive `{ collapsed }` prop. Control state: `v-model:collapsed`, `v-model:open` (mobile).
### DashboardPanel
Content panel with `#header`, `#body` (scrollable), `#footer`, and `#default` (raw) slots.
| Prop | Default | Description |
|---|---|---|
| `id` | `—` | Unique ID (required for multi-panel) |
| `resizable` | `false` | Enable resize by dragging |
### DashboardNavbar / DashboardToolbar
Navbar has `#left`, `#default`, `#right` slots and a `title` prop. Toolbar has the same slots for filters/actions below the navbar.
## Multi-panel (list-detail)
```vue [pages/dashboard/inbox.vue]
```
## With toolbar
```vue
```
## With search
```vue [layouts/dashboard.vue]
```
## Right sidebar
```vue
```