Sonarist project

Sonarist / Design system

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

Design system contents

Foundations

Motion and feedback timing

Keep transitions subordinate to conversation work and expose timing boundaries honestly.

On this page

Native behavior

Native behavior
EffectSource
Hover/focus colorstransition-colors on buttons and controls
Participant hoverSmall upward translate with transition-transform
Draft feedback500ms saving/saved fingerprint timer
AI demoHelpdeskApp resolves a canned draft after 850ms
ToastDismisses after 3200ms
Dialog backdropAnimation explicitly disabled in globals.css

Reduced motion

The screenshots use prefers-reduced-motion: reduce to remove unstable animation timing during capture. The source has no global prefers-reduced-motion override in globals.css, so this setting does not establish complete reduced-motion compliance. Native transition behavior needs separate review.

Team guidance

  • Do not make a transient toast the only record of a consequential action.
  • Do not interpret a timer as a backend acknowledgement.
  • Capture stable selected/error states after their rendering settles.
  • When adding motion, provide an equivalent reduced-motion path and preserve focus.

Source references

Source references
FileResponsibility
app/globals.cssBackdrop policy
components/inbox/thread-participants.tsxHover movement
components/inbox/composer.tsxDraft timer
components/helpdesk-app.tsxAI sample and toast timers

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.

Composer · Component detail · Light · Desktop · 1792 × 758 px
Composer · Component detail · Light · Desktop · Draft With Attachment · 1792 × 1030 px
Composer Error · Component detail · Light · Desktop · 1792 × 758 px
Composer Error · Component detail · Light · Desktop · Error · 1792 × 844 px

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