Toast

Transient, non-blocking, dismissible. The left border carries the tone so the whole surface stays neutral — four brightly tinted cards stacking up in a corner is an alarm, not a notification system.

Tones

Batch reconciled42 invoices written. 1 retry.
Approaching budget84% of the monthly cap used.
New agent versionDataAgent v4 is staged for rollout.

Live stack

Push a few. They enter with the spring easing from the bottom-right and each one is individually dismissible.

Announcement politeness

Errors use role="alert" with aria-live="assertive"; everything else uses status and polite. An error should interrupt whatever a screen reader is currently saying. A success message should wait its turn.

Making every toast assertive is a common and genuinely hostile default — it means a “Saved” confirmation cuts off the sentence someone was in the middle of reading.