Components
Overview
AlertApp SidebarAssistant PanelAvatarBadgeBreadcrumbButtonButton GroupCalendarCheckboxChipComboboxData TableDate PickerDividerDropdown MenuFABField / Field SetFormIcon ButtonIconsInputInput GroupItem / Item SetKeyboardLink ButtonLogoNavbarNotificationPage HeadingPopoverRadioScanner FieldSection HeadingSelectSheetSidebarText AreaTime PickerToggle ButtonTokensToolbarTooltip

Sidebar

Vertical nav rail with item/subItem/selected states. Full-height panel.

View in Figma

At/above the breakpoint (lg · 1024px) the rail stays docked. Switch to a narrower viewport, then use the navbar menu button (☰) to open the overlay drawer.

Viewport
Open full page ↗
const [open, setOpen] = useState(false);

<Navbar
  onMenuToggle={() => setOpen((o) => !o)}
  …
/>
<Sidebar
  responsive
  breakpoint="lg"
  backdrop="dim"
  open={open}
  onClose={() => setOpen(false)}
>
  <SidebarGroup label="Favorites">
    <SidebarMenuItem
      icon={faListCheck}
      label="Work List"
      selected
    />
    <SidebarMenuItem
      icon={faCalendar}
      label="Calendar"
    />
  </SidebarGroup>
  <SidebarGroup label="Workspace">
    <SidebarMenuItem
      icon={faWrench}
      label="Maintenance Requests"
    />
    <SidebarMenuItem
      icon={faBuilding}
      label="Buildings"
    />
  </SidebarGroup>
</Sidebar>
Props
Sidebar
header:ReactNode
Brand slot rendered at the top (Logo, wordmark).
footer:ReactNode
Footer slot rendered at the bottom.
children:ReactNode
Nav items — SidebarMenuItem elements.
responsive:boolean= false
Enable the drawer behavior (#23): docked at/above the breakpoint, a slide-in overlay below it.
breakpoint:"md" | "lg"= "lg"
Where the rail switches between docked and drawer. Only used when responsive.
open / onClose:boolean / () => void
Drawer open state (below breakpoint) and its dismiss handler (Escape, backdrop tap).
backdrop:"dim" | "transparent"= "dim"
Scrim behind the open drawer, or a transparent click-catcher.
SidebarMenuItem
type:"item" | "subItem"= "item"
item = icon + label row; subItem = indented label with vertical divider.
label:string
Display label (required).
icon:IconDefinition
Leading icon — only rendered for type=item.
selected:boolean= false
Applies primary/10 background and primary text/icon.
disabled:boolean= false
Non-interactive, muted.
badge:ReactNode
Trailing badge/notification slot.
Tokens
Engineer workflow → docs/kits.md