Acrylic
Components

Sidebar

The macOS 26 source-list sidebar — frosted vibrancy panel, three densities, neutral-pill selection, collapsible.

shadcn's Sidebar composition restyled to the Apple macOS 26 UI Kit. The panel is the kit's 240px frosted-vibrancy surface (--acr-surface + backdrop-blur), so the desktop shows softly through it. Row geometry is lifted from the kit's three sidebar densities — Small (24 / 11px), Medium (32 / 13px), Large (40 / 15px) — and the selected row is the macOS neutral pill (a gray fill, monochrome label — the source-list keeps selection monochrome, no System Blue tint). The full shadcn API is intact: a SidebarProvider with cookie-persisted open state and the ⌘B keyboard toggle, off-canvas / icon / none collapse modes, a mobile Sheet, groups, menu + sub-menu, badges, a rail, and an inset content area.

Installation

npx shadcn add https://acrylic-ui.vercel.app/r/sidebar.json

This also pulls the pieces it composes from — Button, Input, Separator, Sheet, Tooltip, Skeleton — and the use-mobile hook.

Usage

Wrap your app in SidebarProvider, then place a Sidebar next to a SidebarInset (your main content).

Acrylic Mail
Mailboxes
  • 24
Folders

Collapsible

The collapsible preview uses intentionally long workspace, navigation, and sub-menu labels so truncation can be checked in both the expanded sidebar and the collapsed hover-card flyout.

Design SystemHome dashboard with an extremely long primary navigation label

Densities

The three kit sidebar sizes map onto the SidebarMenuButton size prop — sm / default / lg give the Small / Medium / Large row height + font.

Small · 24 / 11px
Medium · 32 / 13px
Large · 40 / 15px

Anatomy

partrole
SidebarProviderholds open/collapsed state (cookie-persisted), ⌘B toggle, mobile detection
Sidebarthe frosted panel plus app-navigation layout adapter; side, variant (sidebar / floating / inset), collapsible (offcanvas / icon / none)
SidebarTrigger / SidebarRailtoggle controls (button / draggable edge rail)
SidebarInsetthe main content area beside the sidebar
SidebarHeader / SidebarFooterpinned top / bottom regions
SidebarContentthe scrolling middle (add scrollbar-mac for the thin macOS scrollbar)
SidebarGroup / SidebarGroupLabel / SidebarGroupContenta labelled section
SidebarMenu / SidebarMenuItem / SidebarMenuButtonthe rows; isActive paints the accent pill, size sets density, tooltip shows a label when collapsed to icons
SidebarMenuBadge / SidebarMenuActiona trailing count / hover action on a row
SidebarMenuSub / SidebarMenuSubItem / SidebarMenuSubButtona nested, indented list
SidebarSeparatora hairline divider between groups

Notes

  • The panel uses the frosted vibrancy material (--acr-surface + backdrop-blur-xl). On desktop the real macOS sidebar shows the wallpaper through it — overlay it on content (not a flat page) to read as glass.
  • Selected rows are the neutral pill (--acr-chip, a gray fill with a monochrome label — no --primary/System Blue tint). Unselected rows show no hover fill; only the selected row is highlighted, matching the macOS source list where hovering an item shows nothing (a mouse-down active: press is still fed back).
  • collapsible="icon" shrinks the sidebar to a 3rem icon rail; pass tooltip on each SidebarMenuButton so the label appears on hover in that mode. Use collapsible="none" for a static, always-open panel (as in the previews above).
  • Inside Shell, do not set the source-list width only with a Sidebar className. Put the width on Shell (sidebarWidth, sidebarCollapsedWidth) so Sidebar's internal gap and visible rail stay aligned.
  • State is restored across reloads via the sidebar_state cookie.

On this page