Inline callout for conditions — info, success, warning, error — on the tinted state surfaces.
Anatomy
┌────────────────────────────────┐ │ NOTE Title [Action] │ ← tone word + title (tone ink) │ supporting line │ ← children (fg-muted) └────────────────────────────────┘ ← tinted state surface, rounded-card
Props
| Prop | Type | Default | Notes | |||
|---|---|---|---|---|---|---|
tone | "info" | "success" \ | "warning" \ | "error"` | "info" | Picks surface tint + ink + tone word. |
title | string | — | Required — the condition, stated plainly. | |||
children | ReactNode | — | Optional supporting line(s). | |||
action | ReactNode | — | Right-aligned affordance (small Button). | |||
className | string | — | cn-merged. |
Motion
None. Alerts appear with their content; a condition arriving *after*
render is usually a Toast's job first, then an Alert if it persists.
A11y
role="alert" (assertive) only for tone="error"; the rest use
role="status" (polite) so screen readers aren't interrupted for
notes. The tone word doubles as a non-color state cue. Keep title
meaningful without the body — it's what gets announced first.