DRYL COMPONENTS
Color mode: System — switch to light
3.16.0
Surfaces

DrylToast

Service-driven glass notifications that arrive from where they belong: a toast that answers a click grows out of the button that was clicked (ToastOptions.Origin); a toast nobody clicked for comes out of the notification bell, and returns into the inbox if it expires unread. Each toast keeps its own hover-pausable countdown, neighbours glide into the space a leaving toast frees, and AI mode dominates the visual when the toast is communicating model activity in the background.

Variants

Four semantic flavors plus a neutral default — each keeps the dark glass surface with a colored left rail, icon chip and soft glow. Every toast here passes its button as ToastOptions.Origin (DrylButton.Element), so it grows out of that button's shape and morphs into the stack.

From the bell — when nobody clicked

A toast without an Origin — a finished background job, a server push — comes out of the bell of a service-driven DrylNotifications as a capsule that flies to its place and unfolds. If it expires unread it folds back, flies into the bell and becomes an unread inbox entry. KeepInInbox = false lets an announcement leave without filing it. With no bell on screen, the toast unfolds in place.

Title + message

Pass a title for emphasis; the body sits below in a quieter weight.

Custom content — buttons inside the toast

Use Show<TComponent> to drop any component into the body. It receives IDrylToastInstance to close its own toast — perfect for an Undo.

AI-aware toasts

Set ToastOptions.Ai and the AI aura takes over the visual; the variant accent survives only on the icon chip.

Duration & persistence

Default duration is 5 s. Duration = 0 keeps the toast open until dismissed. Hovering pauses the timer.

Stack — fire a bunch at once

Toasts stack vertically at the chosen anchor. Each keeps its own countdown, and when one leaves the others glide into its place.

An unhandled error has occurred. Reload x

Reconnecting to the server…

Attempt /

Next try in s