registry:component
Sonner
v1.0.0ga
Theme-aware toast notifications powered by sonner.
Registry Endpoint
Open JSONhttps://registry.aavya.com/r/ui-sonner.json
npx shadcn@latest add https://registry.aavya.com/r/ui-sonner.json
Live Preview
Dependencies
sonnernext-themes
Usage Snippet
import Sonner from '@/components/ui/sonner.tsx'
export default function Example() {
return (
<div className="p-6">
<Sonner />
</div>
)
}
Source Preview
'use client'
import { CircleCheckIcon, InfoIcon, Loader2Icon, OctagonXIcon, TriangleAlertIcon } from 'lucide-react'
import { useTheme } from 'next-themes'
import { Toaster as Sonner, type ToasterProps } from 'sonner'
const Toaster = ({ ...props }: ToasterProps) => {
const { theme = 'system' } = useTheme()
return (
<Sonner
theme={theme as ToasterProps['theme']}
className='toaster group'
icons={{
success: <CircleCheckIcon className='size-4' />,
info: <InfoIcon className='size-4' />,
warning: <TriangleAlertIcon className='size-4' />,
error: <OctagonXIcon className='size-4' />,
loading: <Loader2Icon className='size-4 animate-spin' />
}}
style={
{
'--normal-bg': 'var(--popover)',
'--normal-text': 'var(--popover-foreground)',
'--normal-border': 'var(--border)',
'--border-radius': 'var(--radius)'
} as React.CSSProperties
}
{...props}
/>
)
}
export { Toaster }