Skip to Content

Sonner

A toast notification component that provides themed notifications with support for different types of messages.

Usage

import { Toaster, Button } from "@rhinolabs/ui" import { toast } from "sonner" export default function ToasterDemo() { return ( <div> <Button onClick={() => toast("Event has been created")}> Show Toast </Button> <Toaster /> </div> ) }

Examples

Basic Toast

Simple notification message.

<div className="flex gap-2"> <Button onClick={() => toast("Event has been created")}> Default Toast </Button> <Button onClick={() => toast.success("Profile updated successfully")}> Success Toast </Button> <Button onClick={() => toast.error("Failed to save changes")}> Error Toast </Button> </div>

With Description

Toast with additional description text.

<Button onClick={() => toast("Profile updated", { description: "Your changes have been saved successfully.", }) } > Show Toast with Description </Button>

With Action

Toast with action buttons.

<Button onClick={() => toast("Changes saved", { description: "Your document has been saved.", action: { label: "Undo", onClick: () => console.log("Undo"), }, cancel: { label: "Cancel", onClick: () => console.log("Cancel"), }, }) } > Show Toast with Actions </Button>

Props

The Toaster component extends all props from Sonner’s Toaster component.

PropTypeDefaultDescription
theme"light" | "dark" | "system""system"Theme for the toasts
position"top-left" | "top-right" | "bottom-left" | "bottom-right""bottom-right"Position of toasts
expandbooleanfalseWhether toasts expand to fill width
durationnumber4000Duration in milliseconds

Design Considerations

  • Choose appropriate position
  • Set suitable duration
  • Use clear messages
  • Consider mobile views
  • Maintain consistency

Accessibility

  • Supports keyboard navigation
  • Provides ARIA labels
  • Maintains focus management
  • Handles screen readers
  • Times out appropriately
Last updated on