# React Toastify — Customizable Toast Notifications for React > A feature-rich toast notification library for React with support for themes, positioning, progress bars, and promise-based toasts. ## Install Save in your project root: # React Toastify — Customizable Toast Notifications for React ## Quick Use ```bash npm install react-toastify ``` ```jsx import { ToastContainer, toast } from 'react-toastify'; import 'react-toastify/dist/ReactToastify.css'; function App() { const notify = () => toast('Operation completed'); return (
); } ``` ## Introduction React Toastify provides a straightforward way to add toast notifications to React applications. It ships with sensible defaults for positioning, auto-dismiss timing, and animations while exposing a flexible API for customization. The library handles stacking, pausing on hover, and accessibility without extra configuration. ## What React Toastify Does - Displays success, error, warning, and info toast notifications - Supports promise-based toasts that update on resolve or reject - Stacks multiple notifications with configurable position and limit - Provides built-in light, dark, and colored themes - Pauses auto-dismiss timer on hover or window blur ## Architecture Overview React Toastify uses a singleton event emitter to decouple the toast() call from the ToastContainer component. When toast() is called from anywhere in the app, it dispatches an event with the content and options. The ToastContainer listens for these events and manages an internal queue of active toasts. Each toast is rendered as a positioned element with CSS transitions for enter and exit animations. A per-toast timer handles auto-dismissal, pausing when the mouse hovers over the container. ## Installation & Configuration - Install via npm: `npm install react-toastify` - Import the CSS file or use a custom stylesheet - Place a single ToastContainer component at the root of your app - Call toast() from any component or utility function to trigger a notification - Configure position, autoClose duration, theme, and transition via props or per-toast options ## Key Features - Six positions: top-left, top-center, top-right, bottom-left, bottom-center, bottom-right - Built-in promise toast that shows pending, success, and error states - Custom component rendering inside toasts with full React support - Drag-to-dismiss gesture for closing toasts manually - Limit the number of visible toasts with a queue system ## Comparison with Similar Tools - **Sonner** — minimal API with opinionated styling; fewer customization hooks - **react-hot-toast** — lightweight alternative with a simpler feature set - **notistack** — Material UI focused; tightly coupled with MUI theming - **Chakra UI toast** — built into Chakra; requires the full Chakra dependency - **Mantine notifications** — part of Mantine; requires the Mantine ecosystem ## FAQ **Q: Can I show a toast outside of a React component?** A: Yes. The toast() function can be called from any JavaScript module as long as a ToastContainer is mounted somewhere in the React tree. **Q: How do I use promise-based toasts?** A: Call toast.promise(myPromise, { pending: 'Loading', success: 'Done', error: 'Failed' }). The toast updates automatically when the promise resolves or rejects. **Q: Can I customize the toast appearance?** A: Yes. Pass a React component as the first argument to toast(), or use the className and style props for CSS-level customization. **Q: Does it support SSR with Next.js?** A: Yes. The ToastContainer renders on the client side. Wrap it in a client component when using the App Router. ## Sources - https://github.com/fkhadra/react-toastify - https://fkhadra.github.io/react-toastify --- Source: https://tokrepo.com/en/workflows/asset-bf6201b2 Author: AI Open Source