Sonarist project

Sonarist / Design system

Documentation v1.0.0 · Work in progress · UI prototype with separate server foundations

Design system contents

Components

Settings section selector

Reuse a centered disclosure of navigation links for account configuration.

On this page

Purpose and composition

Reuse a centered disclosure of navigation links for account configuration.

Use for settings navigation, not form value selection.

Anatomy

Anatomy
PartResponsibility
TriggerActive section icon and label
PopupLinks with current-page state
ContentSelected settings section

Configuration and variants

Configuration and variants
Input / variantContract
itemsid, label, icon and href
activeIdFalls back to first item
labelNavigation accessible name
sectionsAppearance, Billing, Signatures, Companies, Products, Email domains, Inboxes, Integrations

States and feedback

States and feedback
StateVisible / behavioral result
OpenAnchored max-width 288px popup
SelectedContrasting link and check icon
Empty itemsNo selector

Interaction and responsive behavior

  • Outside pointer/Escape close.
  • Link selection closes menu and uses scroll=false.
  • Reuses queue visual language without queue counts.

Accessibility contract

  • Nav label names section links.
  • Active link has aria-current page.

Known implementation limits

No roving menu keyboard model or explicit Escape focus restoration.

Composition example

<CenteredSubnav items={sections} activeId="appearance" label="Settings sections" />

Source references

Source references
FileResponsibility
components/ui/centered-subnav.tsxCenteredSubnav
components/views/settings-view.tsxSettings composition

Examples from the app

Actual Sonarist components with fictional conversations, people, example.com addresses and simulated operational states. Captured at 2× resolution or higher. Select an image to inspect it full size.

Settings Appearance · Screen · Light · Desktop · 2880 × 2000 px
Settings Subnav · Component detail · Light · Desktop · Open · 616 × 876 px

Source audit: 2026-10-08 · Revision 10f45d1377b5 · Documentation v1.0.0