ComponentsGeneral
Sidebar
Feature-rich collapsible sidebar with provider, menus, groups, and sub-navigation.
Default
A sidebar with grouped navigation items wrapping a main content area.
Installation
npx visor add sidebarThis copies two files into your project:
components/ui/sidebar/sidebar.tsx— the componentcomponents/ui/sidebar/sidebar.module.css— the styles
Usage
import {
SidebarProvider, Sidebar, SidebarHeader, SidebarContent,
SidebarGroup, SidebarGroupLabel, SidebarGroupContent,
SidebarMenu, SidebarMenuItem, SidebarMenuButton,
SidebarFooter, SidebarInset,
} from '@/components/ui/sidebar/sidebar';
<SidebarProvider>
<Sidebar>
<SidebarHeader>
<h2>My App</h2>
</SidebarHeader>
<SidebarContent>
<SidebarGroup>
<SidebarGroupLabel>Navigation</SidebarGroupLabel>
<SidebarGroupContent>
<SidebarMenu>
<SidebarMenuItem>
<SidebarMenuButton isActive>Dashboard</SidebarMenuButton>
</SidebarMenuItem>
</SidebarMenu>
</SidebarGroupContent>
</SidebarGroup>
</SidebarContent>
</Sidebar>
<SidebarInset>
<main>Page content</main>
</SidebarInset>
</SidebarProvider>API Reference
SidebarProps
No props data available for “sidebar”.
Sub-components
| Component | Element | Purpose |
|---|---|---|
SidebarProvider | <div> | Context provider managing state, mobile detection, and keyboard shortcuts. |
Sidebar | <div> | The sidebar container with side, variant, and collapsible props. |
SidebarTrigger | <button> | Button that toggles sidebar open/closed. |
SidebarRail | <button> | Clickable rail at the sidebar edge for toggling. |
SidebarInset | <main> | Main content area companion to the sidebar. |
SidebarHeader | <div> | Top section for branding or user info. |
SidebarFooter | <div> | Bottom section for settings or user actions. |
SidebarContent | <div> | Scrollable content area between header and footer. |
SidebarGroup | <div> | Visual grouping of related menu items. |
SidebarGroupLabel | <div> | Heading label for a group. |
SidebarGroupAction | <button> | Action button in a group header. |
SidebarGroupContent | <div> | Content container within a group. |
SidebarMenu | <ul> | List container for menu items. |
SidebarMenuItem | <li> | Individual menu list item. |
SidebarMenuButton | <button> | Interactive button with active state and tooltip support. |
SidebarMenuAction | <button> | Secondary action (e.g., more options) on a menu item. |
SidebarMenuBadge | <div> | Badge indicator (e.g., notification count). |
SidebarMenuSub | <ul> | Nested sub-menu list. |
SidebarMenuSubItem | <li> | Sub-menu list item. |
SidebarMenuSubButton | <a> | Interactive link/button within a sub-menu item. |
SidebarSeparator | <hr> | Horizontal divider between sections. |
Accessibility
- Toggle keyboard shortcut:
Cmd+B(macOS) /Ctrl+B(Windows/Linux). - Menu items use semantic
<ul>/<li>structure. SidebarMenuButtonsupportsisActiveforaria-currentindication.- Collapsible modes (offcanvas, icon-only) preserve accessible labels via tooltips.
Button
A versatile button component with multiple variants and sizes. Built with CVA and CSS Modules — copy it into your project and own it completely.
ThemeSwitcher
Fixed-position pill switcher for theme and dark/light mode, with an extras slot for hosting devtools chrome. Built with CSS Modules — copy it into your project and own it completely.