Sidebar

Project sidebar navigation: a fixed-width vertical column with a project header, section labels, and .sidebar-item links. Use .sidebar-group (<details name="sidebar">) for collapsible sections with zero-JS exclusive-accordion behavior.

Root: .sidebar on <aside>

Example

Example
<aside class="sidebar"><div class="sidebar-header"><span class="avatar avatar-sm avatar-square">P</span><div><div class="sidebar-title">Project</div><div class="sidebar-subtitle">Software project</div></div></div><details class="sidebar-group" name="sidebar" open><summary class="sidebar-section">Planning</summary><a class="sidebar-item active" href="#">Board</a><a class="sidebar-item" href="#">Backlog</a></details></aside>

Contract

Structure

SelectorRequiredDescription
.sidebar-headeroptionalProject identity row: square avatar plus a min-width:0 wrapper holding .sidebar-title and .sidebar-subtitle (both truncate).
.sidebar-itemoptionalNavigation links; mark the current view with .active (selected background).
.sidebar-sectionoptionalUppercase section label — either a plain div, or the <summary> of a .sidebar-group.

Accessibility

OnAttributeLevelWhen
.sidebar-item.activearia-currentrecommendedRecommended on the active item so assistive tech announces the current view (aria-current="page").

Wrap link runs in <nav> or use <aside> + labelled nav for landmark navigation. In .sidebar-group the <summary> is the toggle and is keyboard-operable for free; keep .sidebar-section on the summary so the disclosure triangle renders. Pair .active with aria-current="page".

Nesting

Allowed in:

  • app shell, alongside the main content area, below the navbar

Never inside (or containing):

  • .sidebar

Subcomponents