Sonarist project

Sonarist / Design system

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

Design system contents

Components

Dialogs and right-side sheets

Contain editing and contextual details using native modal dialog behavior.

On this page

Purpose and composition

Contain editing and contextual details using native modal dialog behavior.

Use a sheet for context while retaining draft state; use centered editors for decisions.

Anatomy

Anatomy
PartResponsibility
HeaderTitle, description and close action
BodyCaller-supplied content
FooterCaller-supplied actions
BackdropDark translucent blur

Configuration and variants

Configuration and variants
Input / variantContract
open/onCloseControlled boolean and close callback
title/descriptionHeader text; description optional
sheetRight-aligned full-height 460px maximum
classNameSource editors use max-w-2xl overrides

States and feedback

States and feedback
StateVisible / behavioral result
OpenshowModal in effect
Closeddialog.close in effect
EscapeonCancel calls parent onClose
OverflowMax-height shell, parent body scroller

Interaction and responsive behavior

  • Use a single open dialog per task.
  • Preserve a scrollable middle and visible actions.
  • Reset draft values by remounting keyed editors where the source does so.
  • Native dialog provides modal focus containment; verify return focus per entry point.

Accessibility contract

  • The source does not link title/description with aria-labelledby/aria-describedby.
  • Native modal behavior is present, but dialog naming remains a documented gap.
  • Close button is labeled Close dialog.

Known implementation limits

No backdrop-click close handler exists. Tall forms can overflow the hidden outer dialog and auto-scroll away from header/footer. Full-content crops increase only the viewport height and are labeled; the source layout is not modified. Full focus-return and screen-reader announcement require additional verification.

Composition example

<Dialog open={open} onClose={close} title="Edit person"><EditorBody /><EditorFooter /></Dialog>

Source references

Source references
FileResponsibility
components/ui/dialog.tsxDialog wrapper

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.

Follow Up · Component detail · Light · Desktop · 1152 × 868 px
Follow Up · Component detail · Light · Desktop · Date Selected · 1152 × 868 px
Conversation Details · Component detail · Light · Desktop · 1152 × 2000 px
Contact Drawer · Component detail · Light · Desktop · 1152 × 2000 px

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