Skip to Content
ComponentsSidebarMenu

SidebarMenu

A collapsible sidebar navigation component with support for sections, submenus, icons, and light/dark themes.

Import

import { SidebarMenu, SidebarMenuSection, SidebarMenuItem, SidebarMenuSub, SidebarMenuSubItem } from "@raydenui/ui";

Usage

Basic

<SidebarMenu> <SidebarMenuItem icon={<HomeIcon />} href="/"> Dashboard </SidebarMenuItem> <SidebarMenuItem icon={<UsersIcon />} href="/users"> Users </SidebarMenuItem> <SidebarMenuItem icon={<CogIcon />} href="/settings"> Settings </SidebarMenuItem> </SidebarMenu>

With Sections

<SidebarMenu> <SidebarMenuSection title="Main"> <SidebarMenuItem icon={<HomeIcon />} href="/"> Dashboard </SidebarMenuItem> <SidebarMenuItem icon={<ChartBarIcon />} href="/analytics"> Analytics </SidebarMenuItem> </SidebarMenuSection> <SidebarMenuSection title="Management"> <SidebarMenuItem icon={<UsersIcon />} href="/users"> Users </SidebarMenuItem> <SidebarMenuItem icon={<FolderIcon />} href="/projects"> Projects </SidebarMenuItem> </SidebarMenuSection> </SidebarMenu>

With Submenus

<SidebarMenu> <SidebarMenuItem icon={<HomeIcon />} href="/"> Dashboard </SidebarMenuItem> <SidebarMenuSub icon={<CogIcon />} label="Settings"> <SidebarMenuSubItem href="/settings/profile">Profile</SidebarMenuSubItem> <SidebarMenuSubItem href="/settings/security">Security</SidebarMenuSubItem> <SidebarMenuSubItem href="/settings/notifications">Notifications</SidebarMenuSubItem> </SidebarMenuSub> </SidebarMenu>

With Badges

<SidebarMenu> <SidebarMenuItem icon={<InboxIcon />} badge={5} href="/inbox"> Inbox </SidebarMenuItem> <SidebarMenuItem icon={<BellIcon />} badge="New" href="/notifications"> Notifications </SidebarMenuItem> </SidebarMenu>

Collapsible

const [collapsed, setCollapsed] = useState(false); <SidebarMenu collapsed={collapsed}> <SidebarMenuItem icon={<HomeIcon />} href="/"> Dashboard </SidebarMenuItem> {/* Icons only shown when collapsed */} </SidebarMenu> <button onClick={() => setCollapsed(!collapsed)}> Toggle Sidebar </button>

Themes

// Light theme (default) <SidebarMenu theme="light"> {/* ... */} </SidebarMenu> // Dark theme <SidebarMenu theme="dark"> {/* ... */} </SidebarMenu>

Props

SidebarMenu

PropTypeDefaultDescription
collapsedbooleanfalseCollapsed state
theme"light" | "dark""light"Color theme
classNamestring—Additional CSS classes

SidebarMenuSection

PropTypeDefaultDescription
titlestring—Section title
classNamestring—Additional CSS classes

SidebarMenuItem

PropTypeDefaultDescription
iconReactNode—Leading icon
hrefstring—Link URL
activebooleanfalseActive state
badgenumber | string—Badge content
onClick() => void—Click handler
classNamestring—Additional CSS classes

SidebarMenuSub

PropTypeDefaultDescription
iconReactNode—Leading icon
labelstring—Submenu label (required)
defaultOpenbooleanfalseInitially expanded
classNamestring—Additional CSS classes

Accessibility

  • Uses semantic <nav> element
  • Keyboard navigation support
  • Expandable sections with proper ARIA
  • Active items properly indicated
Last updated on