Sonner
An opinionated toast component for React.
Made by emilkowalski_For new implementations, prefer Toast. Sonner remains supported for existing usage and RedpandaProvider integrations.
Installation
Requires React and React DOM 19.3 or newer. Toaster uses React's browser() API to keep its portal client-only, with an internal Suspense boundary. Callers do not need to add a boundary.
When to use
Sonner provides toast notifications for user feedback. Use this decision tree:
Usage
import { toast } from "sonner"toast("Event has been created.")toast.success("Success", {
description: "Profile updated successfully",
})toast.error("Terrible, terrible damage", {
description: "Failed to update profile",
}) Promise Toast
toast.promise(saveSettings(), {
loading: 'Saving settings...',
success: (data) => `${data.name} saved`,
error: (error) => `Failed to save: ${error.message}`,
});Severity Variants
Toast with Action
Custom Data Payload
Deduplicated by ID
Mounting Inside a Scoped Container
Toaster renders into document.body via createPortal, so it stays anchored to the viewport even when an ancestor applies overflow: hidden, a CSS transform, or otherwise creates a new containing block. This makes it safe to mount RedpandaProvider (which provides the global Toaster) inside federated or micro-frontend hosts where the React tree is not the document root.
Credits
- We use Sonner for the sonner (toast) component.
- We take our inspiration from Shadcn UI for the sonner (toast) style.
Recent changes
- v1.2.0Pin shipped dependency floors to the version we develop against. Registry items now declare ranges like `^5.1.9` (the actual installed version) instead of collapsing to `^5.0.0`, so consumers start on the known-tested baseline while caret semantics still allow any compatible release within the same major.#133
- v1.1.0Theme docs refresh, readability pass on semantic foregrounds, and consumer-facing Base UI regression fixes.#121
- v1.0.0Post-Base-UI polish. Public API unchanged.#116
- v1.0.0Migrate every Radix-based primitive to `@base-ui/react@^1.4.0` (Base UI).#114
- v0.3.0Add theme-provider component to the registry with documentation and tests. Includes playground type improvements (export RegistryItem, remove as-const boilerplate) and docs site dark mode border color fix.#109