Toaster
A scoped, bounded notification queue with live announcements and paused visible-time expiry.@gemologic/sheen · overlaysPlayground
This example has no scalar controls. Its validated source remains interactive below.
<><Button onClick={() => { notices.show({ title: "Saved", tone: "success" }); }}>Save</Button><Toaster controller={notices} /></>Variant matrix
Scoped notifications
Anatomy
- Package
@gemologic/sheen- Source
packages/ui/src/primitives/Toaster.tsx- Tokens
--sheen-color-bg-raised--sheen-duration-fast--sheen-space-block-md
Accessibility
Role: regionKeyboard: Tab, Shift+Tab, Enter, Space, EscapeDo
- Create and mount a controller inside the appropriate theme scope.
- Keep essential information and actions available without a time limit.
Do not
- Do not treat dismissal as cancellation of an app-owned request.
- Do not mount multiple presenters for the same controller.
Generated props
| Name | Type | Default | Description |
|---|---|---|---|
controller * | ToastController | — | Owner-local notification controller. Mount one presenter for each controller. |
limit | number | 3 | Positive maximum number of visible or exiting cards; queued cards do not consume lifetime. |
label | string | — | Accessible region name; defaults to the scoped notifications message. |
class | string | — | Additional region classes. |