# Communication — Design System

## Tokens

Defined in `frontend/modules/communication/design-system/tokens.ts` and CSS variables in `frontend/styles/globals.css`:

| Token | Light | Purpose |
| --- | --- | --- |
| `--communication-accent` | `#6366f1` | Primary indigo |
| `--communication-accent-soft` | rgba indigo 12% | Backgrounds |
| `--communication-success` | `#059669` | Delivered / healthy |
| `--communication-warning` | `#d97706` | Queued / deferred |
| `--communication-danger` | `#dc2626` | Failed / circuit open |

Dark mode variants in `.dark` block.

## Principles

- **RTL first** — `dir="rtl"` on portal shell
- **Mobile first** — collapsible sidebar, responsive grids
- **Dark mode ready** — ColorModeProvider toggle in header
- **Accessible** — aria labels on nav, semantic tables
- **Omnichannel ready** — channel badges from `/capabilities`

## Reuse policy

Use `frontend/shared/` and `@/src/shared/ui` — do not fork Button/Input/Dialog. Module-specific styling via `--communication-*` tokens only.

## Status vocabulary

`messageStatusLabels` / `messageStatusTone` in tokens.ts map backend statuses (queued, sent, delivered, failed, …) to Badge tones.

## Locked module UI

Feature lock pages use gradient hero, capability checklist, integration badges, and placeholder preview panel — consistent premium finish without functional actions.
