{ "$schema": "https://ui.shadcn.com/schema/registry-item.json", "name": "dashboard", "title": "Dashboard shell", "description": "An app shell with sidebar navigation, a search header, and KPI stat cards.", "registryDependencies": [ "button", "input", "badge", "card", "https://www.quilldesignsystem.com/r/icon.json" ], "files": [ { "path": "registry/blocks/dashboard.tsx", "content": "import { Icon, type IconName } from '@/components/ui/icon'\nimport { Button } from '@/components/ui/button'\nimport { Input } from '@/components/ui/input'\nimport { Badge } from '@/components/ui/badge'\nimport {\n Card,\n CardHeader,\n CardTitle,\n CardDescription,\n CardContent,\n} from '@/components/ui/card'\n\nconst nav: { label: string; icon: IconName; active?: boolean }[] = [\n { label: 'Overview', icon: 'dashboard', active: true },\n { label: 'Projects', icon: 'folder_open' },\n { label: 'Team', icon: 'group' },\n { label: 'Billing', icon: 'credit_card' },\n { label: 'Settings', icon: 'settings' },\n]\n\n/** An app shell with sidebar navigation, a search header, and KPI stat cards. */\nexport function Dashboard() {\n return (\n
\n \n
\n
\n
\n \n
\n \n
\n AL\n
\n
\n
\n
\n
\n

Overview

\n

Welcome back, Ada.

\n
\n \n
\n
\n {[\n { label: 'Revenue', value: '$48,120', delta: '+12%' },\n { label: 'Active users', value: '3,842', delta: '+4%' },\n { label: 'Conversion', value: '3.1%', delta: '+0.4%' },\n ].map((s) => (\n \n \n {s.label}\n {s.value}\n \n \n {s.delta}\n \n \n ))}\n
\n
\n
\n
\n )\n}\n", "type": "registry:component", "target": "components/quill/dashboard.tsx" } ], "meta": { "intent": [ "app-shell", "data-display" ], "use_when": "You need a full application home — sidebar, search header, and KPI cards." }, "docs": "An app shell with sidebar navigation, a search header, and KPI stat cards. Do: Give the current nav item a distinct active state (background + text color), not just a subtle underline. Don't: Leave every nav item looking identical — users lose track of where they are. Use sidebar-nav when you need the collapsible icon-sidebar variant with grouped menus, not this fixed-width text sidebar. Use stat-cards when you only need the KPI row, not the full shell around it.", "categories": [ "app-shell", "data-display" ], "type": "registry:block" }