Notifications
Toasts that stack, cap themselves, and dismiss on a timer.
The smallest notification#
win:Notify({ Text = "Saved." })Building it up#
win:Notify({
Title = "Configuration",
Text = "Your settings were saved.",
Icon = "check",
Duration = 4,
})| Option | Type | Default | What it does |
|---|---|---|---|
Textreq | string | — | The body of the toast. |
Title | string | — | A bolder first line. |
Icon | string | — | An icon shown alongside. |
IconColor | Color3 | — | Overrides the icon's colour — useful for errors. |
Duration | number | — | Seconds on screen before it dismisses itself. |
Signalling failure#
There is no separate error type; colour the icon:
win:Notify({
Title = "Failed",
Text = "Could not reach the server.",
Icon = "triangle-alert",
IconColor = Color3.fromRGB(232, 93, 93),
Duration = 6,
})Give failures a longer duration than successes. A confirmation can flash past; an error the user missed is an error they will hit again.
Spamming them is safe#
Toasts stack, and the stack is capped — five by default. When a sixth arrives, the oldest is dismissed with its normal exit animation rather than being destroyed outright, so a burst looks like a queue moving rather than the UI glitching.
Each toast also scales in as it arrives, which is what stops six simultaneous notifications reading as one solid block appearing.
Change the cap with Ember.Configure:
Ember.Configure({ Effects = { MaxToasts = 3 } })They follow the theme#
Notifications are painted from the same palette as everything else, including their burn-in gradient and spark particles. Switching theme repaints toasts already on screen.
Notification or Status?
A notification interrupts: something happened, look now. A Status sits still: this is how things are. Reaching for a toast to show a live counter means the user gets a stack of toasts they have to watch.