Sonarist project

Sonarist / Design system

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

Design system contents

Components

Conversation rows

Make a queue item understandable before opening its thread.

On this page

Purpose and composition

Make a queue item understandable before opening its thread.

Use within ConversationGroup; do not recreate its private helper as a second public component.

Anatomy

Anatomy
PartResponsibility
IdentityAvatar and person name
Subject/snippetPrimary issue and latest preview
ContextProduct/inbox and work type
AttentionWaiting age or compact activity
OwnershipAssignee avatar or Unassigned badge

Configuration and variants

Configuration and variants
Input / variantContract
conversationTyped record linked to fixture contact/inbox
unreadBold versus semibold subject
queueNeeds reply uses waiting age; other queues use activity
reviewAdds screening controls and changes row composition

States and feedback

States and feedback
StateVisible / behavioral result
Read/unreadSubject weight distinction
Assigned/unassignedAvatar or label
Hover/focusRow surface and inner focus ring
Long contentSubject/snippet truncate

Interaction and responsive behavior

  • The primary button opens the thread.
  • Review actions are separate controls outside that button.
  • Desktop rows align horizontally; review actions stack on phones.
  • Needs reply is sorted by numeric waiting age descending.

Accessibility contract

  • Native button is keyboard actionable.
  • Keep context in text; color alone cannot identify a product.

Known implementation limits

Compact time and waitingAge are fixture strings. Missing contacts may prevent a row from rendering; validate joined records before production use.

Composition example

<ConversationList scope={scope} conversations={records} queue="needs-reply" onSelect={open} onReviewSender={review} />

Source references

Source references
FileResponsibility
components/inbox/conversation-list.tsxInternal ConversationGroup

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.

Conversation Row · Component detail · Light · Desktop · 2044 × 190 px
Inbox · Screen · Light · Desktop · 2880 × 2000 px

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