Live Docs

Navigation /

stable

Sidebar

Navigasi vertikal untuk dashboard/app shell, dengan mode collapsible dan item aktif.

import { Sidebar, SidebarSection, SidebarItem, SidebarSubmenu } from "@naraya/ui";

Examples

Basic sidebar

<Sidebar brand={<strong>Naraya</strong>}>
  <SidebarSection label="General" />
  <SidebarItem label="Overview" active />
</Sidebar>

Collapsible (controlled)

const [collapsed, setCollapsed] = useState(false);
<Sidebar collapsible collapsed={collapsed} onCollapsedChange={setCollapsed}>...</Sidebar>

Advanced submenu (auto-open on active child)

<SidebarSubmenu label="Projects" badge={<Badge size="sm">12</Badge>}>
  <SidebarItem label="All Projects" />
  <SidebarItem label="Active Projects" active />
  <SidebarItem label="Archived" />
</SidebarSubmenu>

Props

PropTypeDefaultDescription
brandReactNodeBrand/logo di header sidebar.
collapsiblebooleanfalseMenampilkan tombol collapse.
defaultCollapsedbooleanfalseState awal (uncontrolled).
collapsedbooleanState collapsed controlled.
onCollapsedChange(collapsed: boolean) => voidCallback saat toggle collapse.
footerReactNodeArea footer sidebar.
SidebarItem.activebooleanTandai item aktif.
SidebarItem.badgeReactNodeBadge count/status item.
SidebarSubmenu.defaultOpenbooleanfalseState awal submenu (uncontrolled).
SidebarSubmenu.openbooleanState submenu controlled.
SidebarSubmenu.onOpenChange(open: boolean) => voidCallback saat submenu di-toggle.
SidebarSubmenu.autoOpenOnActivebooleantrueAuto expand jika ada child item aktif.

Tokens Used

--bg-surface

Sidebar background

--border-subtle

Sidebar border/divider

--color-primary

Active item accent

--text-muted

Section label color

Accessibility

  • Sidebar menggunakan landmark aside + nav internal.
  • Tombol collapse punya aria-label yang berubah sesuai state.
  • Saat collapsed, title item tetap tersedia untuk membantu discoverability.