ui
Sidebar
A composable, themeable and customizable sidebar component.
1. Import
Import the sidebar components from the design system.
import {
Sidebar,
SidebarContent,
SidebarFooter,
SidebarGroup,
SidebarGroupContent,
SidebarGroupLabel,
SidebarHeader,
SidebarInset,
SidebarMenu,
SidebarMenuButton,
SidebarMenuItem,
SidebarProvider,
SidebarRail,
SidebarTrigger,
} from "@/design-system/components/ui/sidebar";2. Props
Sidebar component props.
| Prop | Type | Default |
|---|---|---|
| className | string | -- |
| variant | "sidebar" | "floating" | "inset" | "sidebar" |
| side | "left" | "right" | "left" |
| collapsible | "offcanvas" | "icon" | "none" | "offcanvas" |
3. Usages
Common sidebar patterns and configurations.
Floating sidebar variant for documentation-style navigation with nested sub-items.
import { AppSidebar } from "./app-sidebar"
import {
Breadcrumb, BreadcrumbItem, BreadcrumbLink,
BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator,
} from "@/design-system/components/ui/breadcrumb"
import { Separator } from "@/design-system/components/ui/separator"
import {
SidebarInset, SidebarProvider, SidebarTrigger,
} from "@/design-system/components/ui/sidebar"
export default function Page() {
return (
<SidebarProvider style={{ "--sidebar-width": "19rem" } as React.CSSProperties}>
<AppSidebar />
<SidebarInset>
<header className="flex h-16 items-center gap-2 px-4">
<SidebarTrigger className="-ml-1" />
<Separator orientation="vertical" className="mr-2 data-vertical:h-4" />
<Breadcrumb>
<BreadcrumbList>
<BreadcrumbItem className="hidden md:block">
<BreadcrumbLink href="#">Build Your Application</BreadcrumbLink>
</BreadcrumbItem>
<BreadcrumbSeparator className="hidden md:block" />
<BreadcrumbItem>
<BreadcrumbPage>Data Fetching</BreadcrumbPage>
</BreadcrumbItem>
</BreadcrumbList>
</Breadcrumb>
</header>
<div className="flex flex-1 flex-col gap-4 p-4 pt-0">
{/* page content */}
</div>
</SidebarInset>
</SidebarProvider>
)
}