skip to the page
superthread
componentssidebar
system
superthread
version
2.0.0-next.1
date
25.10.26

sidebar

a ship's own nav, on its deep ground. the ground keeps the page's mode, and whatever prints on it reads in the dark palette in both.

bunx --bun shadcn@latest add @mk/sidebar

on the ground

orbit’s nav: its pages with the board current, then its latest runs. the current page is boxed in the house ink with its 8 px square, the way this site’s own nav marks it.

the ground is a dark grey in light and close to black in dark. glyphs, badges, rules and rows on it take the dark palette in both, so a status keeps the same ink whatever mode the page is in.

light

orbit

  • 3
runs

dark

orbit

  • 3
runs

states

a row lightens on hover and takes the 2 px ring outside it on keyboard focus. the current row is boxed; a disabled one prints at half.

light

dark

parts

the names and props are shadcn’s, from base-nova. a sidebar inside a page passes className="min-h-0" to its provider, which otherwise holds a full viewport’s height.

SidebarProvider
holds whether the sidebar is open, and toggles it on ctrl b or cmd b.
Sidebar
the column. by default it slides off the canvas when closed and opens as a sheet on a phone; collapsible="none" keeps it in place, as here.
SidebarHeader
the top, above SidebarContent, which scrolls, and SidebarFooter at the foot.
SidebarGroup
a run of rows, with an optional SidebarGroupLabel.
SidebarMenuButton
a row, inside SidebarMenu and SidebarMenuItem. isActive boxes the current one; render={<a href="/board" />} makes it a link.
SidebarMenuBadge
a count at the end of a row.
SidebarSeparator
a rule on the ground.
SidebarTrigger
the button that opens and closes it, for the page beside it in SidebarInset.