adn-ui
Components

Sidebar

A high-quality, styled React sidebar component for application navigation and layout.

The Sidebar component provides an accessible, collapsible layout structure for application navigation.

Usage

import { Sidebar } from "@/components/ui/sidebar";

export function ExampleSidebar() {
  return (
    <Sidebar.Provider>
      <Sidebar.Root>
        <Sidebar.Header>
          <span>App Header</span>
          <Sidebar.Trigger />
        </Sidebar.Header>
        <Sidebar.Content>
          <Sidebar.Group>
            <Sidebar.GroupLabel>Navigation</Sidebar.GroupLabel>
            <Sidebar.GroupContent>
              <Sidebar.Menu>
                <Sidebar.MenuItem>
                  <Sidebar.MenuButton isActive>Dashboard</Sidebar.MenuButton>
                </Sidebar.MenuItem>
                <Sidebar.MenuItem>
                  <Sidebar.MenuButton>Settings</Sidebar.MenuButton>
                </Sidebar.MenuItem>
              </Sidebar.Menu>
            </Sidebar.GroupContent>
          </Sidebar.Group>
        </Sidebar.Content>
      </Sidebar.Root>
    </Sidebar.Provider>
  );
}

Preview

Custom Styling

Apply custom background colors, borders, or active state highlights via className:

<Sidebar.MenuButton isActive className="bg-gradient-to-r from-indigo-500/10 to-purple-500/10 text-indigo-600 dark:text-indigo-400 font-semibold">
  Dashboard
</Sidebar.MenuButton>

Styling & Class Names

Target internal sidebar CSS slots for custom overrides:

Class NameElement / SlotDescription
.sidebarRoot sidebar panelMain sidebar drawer/panel container.
.sidebar__headerHeader rowHeader area containing brand and trigger button.
.sidebar__contentContent wrapperMain scrollable menu items wrapper.
.sidebar__groupNavigation groupCategorized group section wrapper.
.sidebar__group-labelGroup headingSmall muted uppercase group title label.
.sidebar__menuMenu listUnordered list for sidebar buttons.
.sidebar__menu-buttonInteractive buttonClickable item button with active/hover states.

Anatomy

<Sidebar.Provider>
  <Sidebar.Root>
    <Sidebar.Header>
      <Sidebar.Trigger />
    </Sidebar.Header>
    <Sidebar.Content>
      <Sidebar.Group>
        <Sidebar.GroupLabel />
        <Sidebar.GroupContent>
          <Sidebar.Menu>
            <Sidebar.MenuItem>
              <Sidebar.MenuButton />
            </Sidebar.MenuItem>
          </Sidebar.Menu>
        </Sidebar.GroupContent>
      </Sidebar.Group>
    </Sidebar.Content>
    <Sidebar.Footer />
  </Sidebar.Root>
</Sidebar.Provider>

API Reference

Sidebar.Provider Props

PropTypeDefaultDescription
defaultOpenbooleantrueInitial uncontrolled open state.
openboolean-Controlled open state.
onOpenChange(open: boolean) => void-Callback fired when open state changes.

On this page