Convert Figma logo to code with AI

timolins logoreact-hot-toast

Smoking Hot React Notifications 🔥

10,630
348
10,630
122

Top Related Projects

React notification made easy 🚀 !

A beautiful replacement for JavaScript's "alert"

Highly customizable notification snackbars (toasts) that can be stacked on top of each other

🍞 A toast notification system for react

Delightful and highly customisable React Component to notify your users

Quick Overview

React Hot Toast is a lightweight, customizable toast notification library for React applications. It provides an easy way to add and manage toast notifications with smooth animations and a modern look.

Pros

  • Simple and intuitive API for adding and managing toasts
  • Highly customizable with built-in themes and custom styling options
  • Lightweight with zero dependencies
  • Supports accessibility features out of the box

Cons

  • Limited built-in animation options compared to some other toast libraries
  • Lacks some advanced features like progress bars or interactive toasts
  • May require additional setup for server-side rendering

Code Examples

Adding a basic toast notification:

import toast from 'react-hot-toast';

const notify = () => toast('Hello World!');

function App() {
  return (
    <div>
      <button onClick={notify}>Make me a toast</button>
    </div>
  );
}

Using different toast types:

import toast from 'react-hot-toast';

toast.success('Successfully created!');
toast.error('This is an error!');
toast.loading('Waiting...');

Custom styling and positioning:

import toast, { Toaster } from 'react-hot-toast';

function App() {
  return (
    <div>
      <Toaster
        position="bottom-center"
        toastOptions={{
          style: {
            background: '#333',
            color: '#fff',
          },
        }}
      />
      {/* Your app content */}
    </div>
  );
}

Getting Started

  1. Install the package:

    npm install react-hot-toast
    
  2. Import and use in your React component:

    import toast, { Toaster } from 'react-hot-toast';
    
    function App() {
      const notify = () => toast('Here is your toast.');
    
      return (
        <div>
          <Toaster />
          <button onClick={notify}>Create a toast</button>
        </div>
      );
    }
    
  3. Customize as needed using the Toaster component props and toast options.

Competitor Comparisons

React notification made easy 🚀 !

Pros of react-toastify

  • More comprehensive feature set, including progress bars and update functionality
  • Greater customization options for toast appearance and behavior
  • Larger community and more frequent updates

Cons of react-toastify

  • Larger bundle size due to more features
  • Steeper learning curve for advanced customizations
  • More complex API compared to react-hot-toast's simplicity

Code Comparison

react-toastify:

import { ToastContainer, toast } from 'react-toastify';
import 'react-toastify/dist/ReactToastify.css';

toast.success('Success!', {
  position: "top-right",
  autoClose: 5000,
});

react-hot-toast:

import toast from 'react-hot-toast';

toast.success('Success!');

react-toastify offers more configuration options out of the box, while react-hot-toast provides a simpler API for basic use cases. react-toastify requires importing CSS separately, whereas react-hot-toast handles styling internally.

Both libraries are popular choices for adding toast notifications to React applications. react-toastify is more feature-rich and customizable, making it suitable for complex projects with specific requirements. react-hot-toast, on the other hand, focuses on simplicity and ease of use, making it a great choice for smaller projects or when quick implementation is needed.

A beautiful replacement for JavaScript's "alert"

Pros of SweetAlert

  • More customizable alert designs with a wider range of options
  • Supports promise-based usage for handling user interactions
  • Includes built-in input types (text, email, password, etc.)

Cons of SweetAlert

  • Larger bundle size, which may impact page load times
  • Less focused on React-specific implementation
  • Steeper learning curve due to more complex API

Code Comparison

SweetAlert:

Swal.fire({
  title: 'Are you sure?',
  text: "You won't be able to revert this!",
  icon: 'warning',
  showCancelButton: true,
  confirmButtonText: 'Yes, delete it!'
}).then((result) => {
  if (result.isConfirmed) {
    // Handle confirmation
  }
})

React Hot Toast:

import toast from 'react-hot-toast';

toast((t) => (
  <span>
    Are you sure? 
    <button onClick={() => toast.dismiss(t.id)}>Dismiss</button>
    <button onClick={() => handleDelete(t.id)}>Delete</button>
  </span>
));

While SweetAlert offers more built-in options and a promise-based approach, React Hot Toast provides a more React-centric and lightweight solution. SweetAlert is better suited for complex alert scenarios, while React Hot Toast excels in simplicity and ease of use within React applications.

Highly customizable notification snackbars (toasts) that can be stacked on top of each other

Pros of notistack

  • Seamless integration with Material-UI components and themes
  • Built-in support for stacking multiple notifications
  • Offers more customization options for notification appearance and behavior

Cons of notistack

  • Heavier dependency due to Material-UI integration
  • Steeper learning curve for developers not familiar with Material-UI
  • Less suitable for projects not using Material-UI or requiring a lightweight solution

Code Comparison

notistack:

import { useSnackbar } from 'notistack';

const { enqueueSnackbar } = useSnackbar();
enqueueSnackbar('This is a success message!', { variant: 'success' });

react-hot-toast:

import toast from 'react-hot-toast';

toast.success('This is a success message!');

notistack requires more setup and configuration, especially when used with Material-UI, while react-hot-toast offers a simpler API for quick implementation. react-hot-toast is more lightweight and easier to integrate into various React projects, whereas notistack provides deeper customization options and better fits Material-UI-based applications. The choice between the two depends on the project's specific requirements, design system, and desired level of customization.

🍞 A toast notification system for react

Pros of react-toast-notifications

  • More customizable appearance and behavior options
  • Supports custom render functions for toast content
  • Better TypeScript support with comprehensive type definitions

Cons of react-toast-notifications

  • Less active maintenance and updates compared to react-hot-toast
  • Slightly more complex API and setup process
  • Larger bundle size due to additional features and dependencies

Code Comparison

react-toast-notifications:

import { useToasts } from 'react-toast-notifications'

const { addToast } = useToasts()
addToast('Hello World', { appearance: 'success', autoDismiss: true })

react-hot-toast:

import toast from 'react-hot-toast'

toast.success('Hello World')

Both libraries offer similar functionality for displaying toast notifications in React applications. react-toast-notifications provides more customization options and flexibility, while react-hot-toast focuses on simplicity and ease of use. The choice between the two depends on the specific requirements of your project, such as the need for advanced customization or a more lightweight solution.

Delightful and highly customisable React Component to notify your users

Pros of react-notifications-component

  • More customizable with a wider range of notification types and styles
  • Supports animations and custom containers
  • Offers more advanced features like pause on hover and dismiss on click

Cons of react-notifications-component

  • Larger bundle size due to more features
  • Steeper learning curve with more configuration options
  • Less frequently updated compared to react-hot-toast

Code Comparison

react-notifications-component:

import { store } from 'react-notifications-component';

store.addNotification({
  title: "Success!",
  message: "Your action was completed",
  type: "success",
  insert: "top",
  container: "top-right",
  animationIn: ["animate__animated", "animate__fadeIn"],
  animationOut: ["animate__animated", "animate__fadeOut"],
  dismiss: { duration: 5000 }
});

react-hot-toast:

import toast from 'react-hot-toast';

toast.success('Your action was completed', {
  duration: 5000,
  position: 'top-right',
});

The code comparison shows that react-notifications-component requires more configuration but offers more customization options, while react-hot-toast provides a simpler API for basic use cases. react-hot-toast's approach is more concise and easier to implement for common notification scenarios, but may lack some advanced features available in react-notifications-component.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

react-hot-toast - Try it out

NPM Version minzipped size Build Status

Smoking hot Notifications for React.
Lightweight, customizable and beautiful by default.


Cooked by Timo Lins 👨‍🍳

Features

  • 🔥 Hot by default
  • 🔩 Easily Customizable
  • ⏳ Promise API - Automatic loader from a promise
  • 🕊 Lightweight - less than 5kb including styles
  • ✅ Accessible
  • 🤯 Headless Hooks - Create your own with useToaster()

Installation

With pnpm

pnpm add react-hot-toast

With NPM

npm install react-hot-toast

Getting Started

Add the Toaster to your app first. It will take care of rendering all notifications emitted. Now you can trigger toast() from anywhere!

import toast, { Toaster } from 'react-hot-toast';

const notify = () => toast('Here is your toast.');

const App = () => {
  return (
    <div>
      <button onClick={notify}>Make me a toast</button>
      <Toaster />
    </div>
  );
};

Documentation

Find the full API reference on official documentation.

NPM DownloadsLast 30 Days