What problem does it solve? Sonner toasts often fail in confusing ways: they never appear, render twice, ignore Tailwind classes, hide behind modals, or ignore dark mode. This Skill provides authoritative guidance from the library's author for wiring up, styling, and debugging Sonner correctly the first time. ## Core Features & Use Cases - Setup and call selection: Mount a single <Toaster /> at the root and pick the right toast() variant — typed toasts, toast.promise, toast.loading, action buttons, or headless toast.custom. - Styling escalation ladder: Progress from richColors and inline styles through classNames with !important to fully headless custom JSX, plus icon and theme configuration. - Troubleshooting table: Diagnose duplicate toasts, lost styles in Astro or Shadow DOM, stacking-context issues, stuck toast.promise calls, and dark-mode mismatches. - Use Case: A developer's success toast renders gray instead of green and appears twice on form submit; the Skill identifies the missing richColors prop and the double-mounted Toaster causing both issues. ## Quick Start Ask how to set up Sonner in a Next.js app or why your toast is not appearing, and get an answer grounded in the library author's own guidance.