childrenRequired | React.ReactNode | Not set | Sidebar content (use Sidebar.Header, Sidebar.Nav, Sidebar.Section, etc.) |
collapsed | boolean | undefined | Not set | Desktop: the rail is collapsed (controlled). Ignored inside a Sidebar.Provider or AppShell. |
CollapseToggle.aria-label | string | undefined | Not set | Accessible label. Defaults to "Collapse sidebar" or "Expand sidebar". |
collapsible | SidebarCollapsible | undefinednoneiconoffcanvas | "icon" | How the rail collapses: to its glyphs (icon), off the canvas (offcanvas), or never (none) |
defaultCollapsed | boolean | undefined | false | Initial collapsed state (uncontrolled) |
defaultOpen | boolean | undefined | false | Initial open state (uncontrolled) |
enableKeyboardShortcut | boolean | undefined | true | Toggle with Cmd/Ctrl+B |
Footer.childrenRequired | React.ReactNode | Not set | — |
Header.childrenRequired | React.ReactNode | Not set | — |
Header.collapsedContent | React.ReactNode | Not set | Shown instead of `children` while the rail is collapsed (a compact application glyph). |
Item.active | boolean | undefined | Not set | The current page: wash and ring, `aria-current="page"`. |
Item.badge | React.ReactNode | Not set | A trailing count or status. Plain content becomes a neutral Badge. |
Item.childrenRequired | React.ReactNode | Not set | — |
Item.defaultExpanded | boolean | undefined | Not set | The submenu starts open (uncontrolled). |
Item.disabled | boolean | undefined | Not set | The row cannot be used. |
Item.expanded | boolean | undefined | Not set | The submenu is open (controlled). |
Item.hasSubmenu | boolean | undefined | Not set | The row opens a `Sidebar.Submenu` placed after it. |
Item.href | string | undefined | Not set | Renders a link. |
Item.icon | React.ReactNode | Not set | The leading glyph. A collapsed rail shows only this. |
Item.onClick | React.MouseEventHandler<HTMLElement> | undefined | Not set | Click handler. |
Item.onExpandedChange | ((expanded: boolean) => void) | undefined | Not set | Called when the submenu opens or closes. |
Item.render | useRender.RenderProp<Record<string, unknown>> | undefined | Not set | Replace the rendered element, e.g. a router link:
`render={<RouterLink to="/settings" />}`. The look and props move onto it. |
Item.working | boolean | undefined | Not set | An agent is working in this row (the working wash and sweep, `aria-busy`). |
MenuSkeleton.count | number | undefined | Not set | Rows to draw. |
MenuSkeleton.showIcon | boolean | undefined | Not set | Draw a glyph box in each row. |
Nav.aria-label | string | undefined | Not set | Accessible label for the navigation landmark. |
Nav.childrenRequired | React.ReactNode | Not set | — |
onCollapsedChange | ((collapsed: boolean) => void) | undefined | Not set | Called when collapsed state changes |
onOpenChange | ((open: boolean) => void) | undefined | Not set | Called when open state changes |
open | boolean | undefined | Not set | Mobile: the panel is open (controlled) |
Provider.childrenRequired | React.ReactNode | Not set | — |
Provider.collapsed | boolean | undefined | Not set | Desktop: the rail is collapsed (controlled). |
Provider.collapsible | SidebarCollapsible | undefinednoneiconoffcanvas | Not set | How the rail collapses: to its glyphs (`icon`), off the canvas (`offcanvas`), or never. |
Provider.defaultCollapsed | boolean | undefined | Not set | Desktop: the rail starts collapsed (uncontrolled). |
Provider.defaultOpen | boolean | undefined | Not set | Mobile: the panel starts open (uncontrolled). |
Provider.enableKeyboardShortcut | boolean | undefined | Not set | Toggle with Cmd/Ctrl+B. |
Provider.onCollapsedChange | ((collapsed: boolean) => void) | undefined | Not set | Called when the rail collapses or expands. |
Provider.onOpenChange | ((open: boolean) => void) | undefined | Not set | Called when the mobile panel opens or closes. |
Provider.open | boolean | undefined | Not set | Mobile: the panel is open (controlled). |
Section.action | React.ReactNode | Not set | One control beside the label, usually a `Sidebar.SectionAction`. |
Section.childrenRequired | React.ReactNode | Not set | — |
Section.collapsible | boolean | undefined | Not set | The label opens and closes the group. |
Section.defaultOpen | boolean | undefined | Not set | A collapsible group starts open. |
Section.label | string | undefined | Not set | The group name above the rows. |
SectionAction.aria-labelRequired | string | Not set | Required: the action is a glyph. |
SectionAction.childrenRequired | React.ReactNode | Not set | — |
SubItem.active | boolean | undefined | Not set | The current page. |
SubItem.childrenRequired | React.ReactNode | Not set | — |
SubItem.disabled | boolean | undefined | Not set | The row cannot be used. |
SubItem.href | string | undefined | Not set | Renders a link. |
SubItem.onClick | React.MouseEventHandler<HTMLElement> | undefined | Not set | Click handler. |
SubItem.render | useRender.RenderProp<Record<string, unknown>> | undefined | Not set | Replace the rendered element, e.g. a router link. |
Submenu.childrenRequired | React.ReactNode | Not set | — |
aria-label | string | undefined | Sidebar navigation | Accessible label for the rail and the mobile panel |