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

Interface examples

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