# 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 ```