Powerful and customizable React notification components built for modern applications and websites. These notifications are built using Sonner and styled with Tailwind CSS.
Version 1.4.1 is now available
Includes the all new dashboard view. Pages and exports will now load faster.
Click to trigger a toast
Installation
You can add this notifications component using our CLI or manually:
npx untitledui add notifications
Notifications examples
Below are examples and variations of this notifications component:
Version 1.4.1 is now available
Includes the all new dashboard view. Pages and exports will now load faster.
Click to trigger a toast
We've just released a new feature
Check out the all new dashboard view. Pages and exports now load faster.
Click to trigger a toast
We've just released a new feature
Check out the all new dashboard view. Pages and exports now load faster.
Click to trigger a toast
This project has been unpublished
Removing all users has unpublished this project. Add users to republish.
Click to trigger a toast
This project has been unpublished
Removing all users has unpublished this project. Add users to republish.
Click to trigger a toast
Successfully updated profile
Your changes have been saved and your profile is live. Your team can make edits.
Click to trigger a toast
Uploading 'website-FINAL06.fig'
Please wait while we upload your file.
Click to trigger a toast
We've just released a new update!
Check out the all new dashboard view. Pages and exports now load faster.

Click to trigger a toast
Katherine Moss
2 mins agoI've finished adding my notes. Happy for us to review whenever you're ready!
Click to trigger a toast
API reference
AvatarNotification
Import AvatarNotification from @/components/application/notifications/notifications. Renders a <div> element.
IconNotification
Import IconNotification from @/components/application/notifications/notifications. Renders a <div> element.
ImageNotification
Import ImageNotification from @/components/application/notifications/notifications. Renders a <div> element.
FAQs
Please refer to our frequently asked questions page for more.
There are three: IconNotification (a featured icon with a title, description and actions), AvatarNotification (an avatar with a name, timestamp and message), and ImageNotification (a thumbnail beside the copy). All three are exported from the same notifications.tsx file.
These components render the toast body — Sonner shows it. Render <Toaster /> once near the root of your app — import { Toaster } from "@/components/application/notifications/toaster" — then call toast.custom((t) => <IconNotification ... onClose={() => toast.dismiss(t)} />) from sonner wherever you need it. Pass Sonner options such as duration or id as the second argument to toast.custom.
The color prop accepts "default", "brand", "gray", "error", "warning" and "success", and defaults to "default". The color also picks the icon automatically — InfoCircle for "default", "brand" and "gray", AlertCircle for "error" and "warning", and CheckCircle for "success" — and "default" renders the featured icon in the modern theme while the others use outline.
Yes. Pass any icon component to the icon prop of IconNotification and it overrides the icon that color would otherwise select, for example icon={UploadCloud02} from @untitledui/icons.
Pass a number to the progress prop of IconNotification. It renders a ProgressBar with a "{value}% uploaded..." label under the description. To animate it, keep the id returned by toast.custom and call toast.custom(..., { id }) again with the updated progress value.
Set confirmLabel with onConfirm for the primary link button and dismissLabel with onClose for the secondary one — dismissLabel defaults to "Dismiss". Pass hideDismissLabel to drop the text dismiss button; the close icon button in the top-right corner is always rendered and also calls onClose.
Toaster, ToastsOverlay and DEFAULT_TOAST_POSITION are all exported from @/components/application/notifications/toaster. Toaster renders Sonner at the DEFAULT_TOAST_POSITION constant, which is "bottom-right", and sets a --width of 400px (ImageNotification overrides it to 496px). Below the xs breakpoint the notification goes full width and stacks its content vertically. ToastsOverlay draws the background gradient and supports "top-right", "top-left", "bottom-right" and "bottom-left", so per-toast position options are handled too.