Patterns
Dashboard Layout
App shell with collapsible sidebar navigation, top navbar, and content area with cards and tabs.
Preview
Overview
Dashboard
A live snapshot of your workspace — metrics, activity, and anything else worth a glance.
Total revenue
$48,120
+12.4%vs last monthup vs last month
Active users
2,847
+3.1%vs last monthup vs last month
Conversion rate
4.82%
-0.4%vs last monthdown vs last month
Churn
1.2%
0.0%vs last monthflat vs last month
Recent activity
View all- New subscriptionJane Cooper
Acme Corp upgraded to the Team plan.
- User invitedWade Warren
dev@initech.example was invited to the workspace.
- Payment receivedSystem
$1,240.00 from Stark Industries.
- Report exportedEsther Howard
Q1 revenue report exported as CSV.
When to Use
- Admin dashboards and internal tools
- Multi-section apps with persistent navigation
- Content-heavy layouts needing sidebar + main area structure
Components Used
Structure
<SidebarProvider>
<Sidebar>
<SidebarHeader>
<h2>App Name</h2>
</SidebarHeader>
<SidebarContent>
<SidebarGroup>
<SidebarGroupLabel>Main</SidebarGroupLabel>
<SidebarMenu>
<SidebarMenuItem>
<SidebarMenuButton asChild>
<a href="/dashboard">Dashboard</a>
</SidebarMenuButton>
</SidebarMenuItem>
<SidebarMenuItem>
<SidebarMenuButton asChild>
<a href="/settings">Settings</a>
</SidebarMenuButton>
</SidebarMenuItem>
</SidebarMenu>
</SidebarGroup>
</SidebarContent>
</Sidebar>
<main>
<Navbar>
<SidebarTrigger />
<Separator orientation="vertical" />
<span>Dashboard</span>
</Navbar>
<ScrollArea>
<Tabs defaultValue="overview">
<TabsList>
<TabsTrigger value="overview">Overview</TabsTrigger>
<TabsTrigger value="analytics">Analytics</TabsTrigger>
</TabsList>
<TabsContent value="overview">
<div style={{ display: "grid", gap: "var(--spacing-4)", gridTemplateColumns: "repeat(3, 1fr)" }}>
<Card>
<CardHeader><CardTitle>Revenue</CardTitle></CardHeader>
<CardContent>$12,345</CardContent>
</Card>
<Card>
<CardHeader><CardTitle>Users</CardTitle></CardHeader>
<CardContent>1,234</CardContent>
</Card>
<Card>
<CardHeader><CardTitle>Orders</CardTitle></CardHeader>
<CardContent>567</CardContent>
</Card>
</div>
</TabsContent>
</Tabs>
</ScrollArea>
</main>
</SidebarProvider>Notes
- SidebarProvider manages the collapsed/expanded state and provides context to child components.
- SidebarTrigger in the Navbar toggles the sidebar on mobile and desktop.
- Use ScrollArea for the main content area to get consistent styled scrollbars.
- Cards in a CSS Grid layout adapt to the content area width.
- Tabs organize different dashboard views without page navigation.