Basic application sidebar
Full navigation sidebar with workspace header and user profile footer.
Organisms
Collapsible application side navigation bar and panel container.
pnpm add @quinkit/uiimport { Sidebar } from "@quinkit/ui";Live previews · code · themes · viewport · dark mode
Full navigation sidebar with workspace header and user profile footer.
Toggle between full 264px navigation mode and compact 64px icon rail mode.
Click the collapse toggle button or the sidebar header button to switch between full 264px navigation mode and compact 64px icon rail mode.
Expanded Mode (264px)
Compact icon rail for dense monitoring suites and IDE layouts.
Minimalist 64px vertical icon navigation rail designed for dense monitoring suites and IDE layouts.
Multi-section hierarchy with section labels and badge counters.
Responsive mobile navigation drawer powered by Sheet.
Click hamburger button to trigger Sheet drawer.
Sidebar with team member badges and governance section.
Complete responsive SaaS shell with top bar, mobile fallback drawer, and content grid.
Total Revenue
$128,450.00
+18.4% this quarterActive Subscriptions
4,892
99.99% SLA UptimeSystem Load
24.8%
Optimal capacityThis composed layout demonstrates a complete production shell containing a collapsible desktop sidebar, a mobile Sheet navigation drawer fallback, header search and actions, and a responsive main analytics region.
Visual active-item pill styling and unread notification counts.
Sidebar is a collapsible, responsive application navigation shell. It supports workspace switcher headers with brand logos, multi-section menu groups, Lucide item icons, active route indicators, notification badge counts, collapsible rail animation (w-64 to w-16), and bottom user profile footer cards.
### Basic Application Sidebar
import { Sidebar } from "@quinkit/ui";
import { LayoutDashboard, BarChart3, Users, Settings, Sparkles } from "lucide-react";
export function SidebarDemo() {
return (
<Sidebar
brandTitle="Quinkit Admin"
brandSubtitle="Enterprise Cloud Suite"
brandIcon={Sparkles}
sections={[
{
label: "Main Platform",
items: [
{ label: "Dashboard", href: "#", active: true, icon: LayoutDashboard },
{ label: "Analytics", href: "#", icon: BarChart3, badge: "Live" },
{ label: "Team Members", href: "#", icon: Users }
]
},
{
label: "Administration",
items: [
{ label: "Workspace Settings", href: "#", icon: Settings }
]
}
]}
user={{
name: "Elena Rostova",
email: "elena@quinkit.ui",
role: "Admin",
avatarFallback: "ER"
}}
/>
);
}### Collapsible Rail Variant
import { useState } from "react";
import { Sidebar } from "@quinkit/ui";
import { LayoutDashboard, FolderKanban, Settings } from "lucide-react";
export function CollapsibleSidebarDemo() {
const [collapsed, setCollapsed] = useState(false);
return (
<Sidebar
collapsed={collapsed}
onCollapseChange={setCollapsed}
brandTitle="Acme Engineering"
sections={[
{
label: "Workspace Overview",
items: [
{ label: "Dashboard", href: "#", active: true, icon: LayoutDashboard },
{ label: "Pipelines", href: "#", icon: FolderKanban, badge: "4" },
{ label: "Settings", href: "#", icon: Settings }
]
}
]}
/>
);
}| Prop | Type | Default | Description |
|---|---|---|---|
sections | SidebarSection[] | **Required** | Navigation section groups containing items with optional icons, badges, and active states. |
collapsed | boolean | undefined | Controlled rail collapse state. |
defaultCollapsed | boolean | false | Initial rail collapse state for uncontrolled usage. |
onCollapseChange | (collapsed: boolean) => void | undefined | Callback fired when collapse state toggles. |
brandTitle | string | "Quinkit Workspace" | Main workspace header title. |
brandSubtitle | string | "Enterprise Tier" | Subtitle or tier text shown below brand title. |
brandIcon | ComponentType | undefined | Lucide or SVG icon for header logo. |
user | SidebarUser | undefined | User profile object { name, email, avatarUrl, avatarFallback, role } rendered in footer. |
hideToggle | boolean | false | Hide header collapse button. |
className | string | undefined | Additional container class names. |
<aside> and <nav> elements.aria-current="page" to screen readers.aria-label ("Expand sidebar" / "Collapse sidebar").Sidebar adheres to WAI-ARIA design patterns for accessible web components.
Keyboard Navigation
Tab / Shift + Tab — Focuses control and moves between interactive elements.Space / Enter — Triggers action or toggles selection.Escape — Closes open popovers, overlays, or dropdown menus.ARIA Standards
aria-* attributes.ring-ring) visible in both light & dark mode.Add a shadcn-compatible bridge file to your project that re-exports from @quinkit/ui.
npx shadcn@latest add https://quinkit-ui.vercel.app/r/sidebar.json