Toast
Organism
A transient notification card. Render a <Toast> directly, or drive them imperatively: mount a <ToastProvider> near your app root and call toast(...) from the useToast() hook to enqueue auto-dismissing toasts that stack over the app.
Playground
Every control sets a real prop of ToastProps. The JSX below updates as you go.
Web
iOS
Android
JSX · ToastProps
Variants
6 examples from src/organisms/toast/toast.md, each rendered live from its own JSX.
Anatomy
1
Toast
2
Icon
3
Message
4
Description
5
Action
Dimmed parts appear only in some states or variants.
Props
12 props on ToastProps, grouped as they are declared in source. Required props are marked *.
Accessibility and keyboard
Keyboard
Tab
Reaches the toast action
Escape
Dismisses the focused toast
Semantics
Roles
button
status
ARIA on web
aria-live
Platform skins
The playground's props on each platform: same tree, native shapes, type and touch sizes.
Usage
Toast is usually driven imperatively: mount a <ToastProvider> near your app root, then call the toast(...) handle from useToast() to enqueue an auto-dismissing card that floats over the app. Press the button to fire one. (AppScreen is just this demo's stand-in for your app root, so the toast has a screen to float over.)
On the web and iOS the toast is a floating card: the overlay panel at the card corner, up to 380px wide, with the intent glyph in its status color (the accent's sparkle on a neutral toast), a medium message over a muted description, and the action in the accent. A brief toast hugs its one line. Android keeps the Material 3 snackbar on the inverse fill.
For a single brief notification, use <ToastProvider single brief safeArea duration={2800} bottomInset={28} horizontalInset={20}>. New messages replace the current toast and restart its lifetime. safeArea includes the device safe area. brief retains a single line without the dismiss control; Android retains its snackbar skin.
Tokens
Read from the playground render. Values follow the scheme and the ion hue.
--bf
--fd
--ft
--gl
--ion-tx
--ln2
--sh-lg
--tx2