Sonarist project

Sonarist / Design system

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

Design system contents

Components

Badges and status labels

Show compact categorical context without turning every state into an action.

On this page

Purpose and composition

Show compact categorical context without turning every state into an action.

Use with explicit explanatory text where a badge alone cannot explain readiness.

Anatomy

Anatomy
PartResponsibility
PillMinimum 28px line box and rounded-full shape
LabelExplicit status or relationship name

Configuration and variants

Configuration and variants
Input / variantContract
toneneutral / primary / amber / green / red / blue; neutral default
childrenReadable status text
classNameSource uses size overrides for compact counts

States and feedback

States and feedback
StateVisible / behavioral result
NeutralUnassigned or supporting category
PrimaryOwner or selected supporting context
AmberWaiting or invited
GreenCustomer, active, delivered
RedFailed or blocked
BlueProspect or sent

Interaction and responsive behavior

  • Badge is a span, not a button.
  • Allow groups to wrap; avoid squeezing labels.
  • Keep identity dots separate from status meanings.

Accessibility contract

  • Never rely only on tone.
  • Status changes need an announcement strategy outside this passive span.

Known implementation limits

Dark badge backgrounds use translucent color utilities; contrast depends on the parent surface and must be measured there.

Composition example

<Badge tone="amber">Waiting</Badge>

Source references

Source references
FileResponsibility
components/ui/primitives.tsxBadge

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.

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

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