Sonarist project

Sonarist / Design system

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

Design system contents

Foundations

Color and semantic roles

Use the native zinc and violet palette with labeled status feedback; keep identity colors separate from operational state.

On this page

Source model

app/globals.css defines background and foreground for each theme. Most surfaces, borders, text, actions and states come from Tailwind v4 utility classes in the components. The exported role mapping makes that implementation understandable without pretending the source already contains a semantic token package.

Role mapping

Role mapping
RoleLightDarkUsage
Canvas#fafafa / zinc-50#09090b / zinc-950App body and work area
Surfacewhitezinc-900Cards, fields, dialogs and menus
Strong textzinc-900 / zinc-950zinc-100 / whiteTitles and primary information
Secondary textzinc-500zinc-400Descriptions and message metadata
Primary actionviolet-600 + whiteviolet-600 + whiteNew message, submit and selected icon tiles
Accent textviolet-700violet-300Selected supporting controls
Borderzinc-200zinc-700 / zinc-800Control and grouping boundaries
Queue selectionzinc-950 + whitewhite + zinc-950Current queue and workspace scope

Status versus identity

Status versus identity
FamilyMeaningRule
AmberWaiting / follow-up / action neededInclude explicit text and time context.
EmeraldCustomer / active / ready / deliveredDo not interpret fixture green as verified integration.
RedJunk action / failed / blockedPair with explanation and a recovery action when supported.
BlueProspect / sentA sent message is not proof of delivery.
Company/product/avatar colorsIdentity and groupingKeep name and initials; color is not a permission or urgency signal.

Composition rules

  • Keep theme-specific text and surface classes together.
  • Preserve dark alpha surfaces such as violet-500/15; a flat replacement changes the source treatment.
  • Do not use the portfolio’s palette inside native specimens or introduce Sonarist colors into portfolio navigation.
  • Review muted zinc-400 labels carefully: some light-mode text falls below normal-text contrast requirements.

Source references

Source references
FileResponsibility
app/globals.cssNative variables and dark selector
components/ui/primitives.tsxAction, badge, avatar and field classes

Source palette

--background
#fafafa
--foreground
#18181b
--surface
#ffffff
--surface-subtle
oklch(98.5% 0 none)
--text
oklch(21% 0.006 285.885)
--text-secondary
oklch(55.2% 0.016 285.938)
--border
oklch(92% 0.004 286.32)
--accent
oklch(54.1% 0.281 293.009)
--accent-text
oklch(49.1% 0.27 292.581)
--accent-surface
oklch(96.9% 0.016 293.756)
--on-accent
#ffffff

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.

Actions · Component detail · Light · Desktop · 1792 × 152 px
Badges · Component detail · Light · Desktop · 1792 × 120 px

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