Sonarist project

Sonarist / Design system

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

Design system contents

Components

Single email identity field

Choose a From identity or one known/custom address with an attached searchable popup.

On this page

Purpose and composition

Choose a From identity or one known/custom address with an attached searchable popup.

Use for a single identity; use MultiEmailAddressField for To/Cc/Bcc collections.

Anatomy

Anatomy
PartResponsibility
LabelFixed-width From/To category
InputCombobox with value preview or search query
OptionsName, address, description and selected state

Configuration and variants

Configuration and variants
Input / variantContract
value/options/onChangeControlled EmailAddressOption selection
allowCustomfalse default; simple email validation enables custom option
option fieldsid optional; name/email required; description/initials/color/isNew optional
placeholder/classNameOptional presentation

States and feedback

States and feedback
StateVisible / behavioral result
CollapsedName · email preview
SearchFiltered options
CustomUse address option when valid and not known
No matchEmpty message

Interaction and responsive behavior

  • ArrowDown/Up change active index; Enter chooses; Escape resets query.
  • Blur outside closes popup.
  • Typing can emit undefined selection until valid.
  • Known exact addresses are reused.

Accessibility contract

  • Combobox controls a listbox with aria-selected options.
  • Active option has no aria-activedescendant mapping.
  • The visible label is backed by explicit input aria-label.

Known implementation limits

Dropdown width and right anchoring must be checked in narrow hosts; preserve trigger and popup in the crop. Validation is a simple regex, not deliverability proof.

Composition example

<EmailAddressField label="From" value={from} options={identities} onChange={setFrom} />

Source references

Source references
FileResponsibility
components/ui/email-address-field.tsxEmailAddressField and EmailAddressOption

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.

Email · Component detail · Light · Desktop · 1792 × 832 px
Email · Component detail · Light · Desktop · Results · 988 × 278 px
Email · Component detail · Light · Desktop · Selected · 1792 × 832 px

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