Sonarist project

Sonarist / Design system

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

Design system contents

Components

Inputs, selects and checkboxes

Use native form controls with the existing surface and focus vocabulary.

On this page

Purpose and composition

Use native form controls with the existing surface and focus vocabulary.

Use for simple choice and text; searchable email identity uses the recipient field family.

Anatomy

Anatomy
PartResponsibility
Input44px control with border, text and placeholder
SelectNative option control
IconSelectHidden label, leading icon and trailing chevron
CheckboxNative state; violet accent

Configuration and variants

Configuration and variants
Input / variantContract
InputforwardRef; native input attributes and className
SelectNative select props and option children
IconSelectRequired icon/label; optional wrapperClassName; forwards select props
CheckboxParent supplies checked, disabled and onChange

States and feedback

States and feedback
StateVisible / behavioral result
FocusInput border + low-alpha violet ring
SelectedNative value remains visible
DisabledNative interaction disabled; source style may inherit
InheritedChecked + disabled with explicit Included/Inherited text

Interaction and responsive behavior

  • Wrap Input in a visible label.
  • Keep options as source value strings or stable IDs.
  • Use width utilities on Select; it is not full width by default.
  • At phone sizes multi-column field groups stack.

Accessibility contract

  • Use label association; IconSelect includes an accessible name.
  • Do not assume type=email blocks a callback outside a validated form submission.
  • Keep disabled explanations readable.

Known implementation limits

Shared Input has no integrated error/help description API. Parent must add aria-invalid, aria-describedby and validation copy.

Composition example

<label>Workspace name<Input value={name} onChange={e => setName(e.target.value)} /></label>

Source references

Source references
FileResponsibility
components/ui/primitives.tsxInput, Select and IconSelect
components/views/team-view.tsxNative checkbox hierarchy

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.

Fields · Component detail · Light · Desktop · 1792 × 720 px
Fields · Component detail · Light · Desktop · Focus · 1792 × 720 px

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