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 on wiring up the Toaster, choosing the right toast() call, styling, and diagnosing every common failure mode. ## Core Features & Use Cases - Setup and call selection: Mount a single <Toaster /> at the root and pick the right API — typed toasts, toast.promise, toast.loading, action buttons, or headless toast.custom. - Styling and theming: A four-rung escalation ladder from defaults and richColors through inline styles and !important classNames to fully headless custom JSX, plus icon swapping and dark-mode theming. - Troubleshooting table: Symptom-to-fix mappings for duplicate toasts, lost styles, stacking-context issues, stuck promise toasts, swipe directions, and multi-toaster targeting. - Use Case: A developer's success toast renders gray instead of green and appears twice; the Skill identifies the missing richColors prop and the duplicate Toaster mounted in both layout and page. ## Quick Start Ask how to fix a Sonner toast that is not appearing or how to show a loading toast that turns into a success message when a promise resolves.