Toastify

March 9, 2026 ยท View on GitHub

Toastify is a super simple, fast, and easy-to-use toast notification library for modern web apps. It displays clean, customizable notifications with zero dependencies and supports ESM, CJS, and UMD builds for maximum compatibility.


Logo

Demo

You can try this library live:

๐Ÿ‘‰ Interactive Demo on StackBlitz

๐ŸŒ UMD Build Test on GitHub Pages


TypeScript GitHub contributors GitHub License GitHub Actions Workflow Status GitHub package.json version Known Vulnerabilities

ESLint Prettier Jest Maintenance codecov

NPM Downloads

GitHub Repo stars

Key Features

  • No Dependencies โ€“ No external libraries required
  • Modern & Flexible โ€“ ESM, CJS, and UMD builds for all environments
  • Fully Customizable โ€“ Position, duration, icons, themes, stacking, and more
  • Theming โ€“ Light/dark, custom classes, and icon support
  • Tiny & Fast โ€“ Minimal footprint, instant rendering

Installation

# npm
npm install @andreasnicolaou/toastify

# yarn
yarn add @andreasnicolaou/toastify

# pnpm
pnpm add @andreasnicolaou/toastify

CDN / Direct Usage

<!-- unpkg CDN (latest version, unminified) -->
<script src="https://unpkg.com/@andreasnicolaou/toastify/dist/index.umd.js"></script>

<!-- unpkg CDN (latest version, minified) -->
<script src="https://unpkg.com/@andreasnicolaou/toastify/dist/index.umd.min.js"></script>

<!-- jsDelivr CDN (un-minified) -->
<script src="https://cdn.jsdelivr.net/npm/@andreasnicolaou/toastify/dist/index.umd.js"></script>

<!-- jsDelivr/unpkg CDN (minified) -->
<script src="https://cdn.jsdelivr.net/npm/@andreasnicolaou/toastify/dist/index.umd.min.js"></script>

<!-- jsDelivr Styles (minified) -->
<link rel="stylesheet" href="https://unpkg.com/@andreasnicolaou/toastify/dist/styles.css" />
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@andreasnicolaou/toastify/dist/styles.css" />

UMD (for <script> tags, global toastify variable):

<link rel="stylesheet" href="https://unpkg.com/@andreasnicolaou/toastify/dist/styles.css" />
<script src="https://unpkg.com/@andreasnicolaou/toastify/dist/index.umd.min.js"></script>
<script>
  const manager = new toastify.ToastifyManager('top-right', { closeButton: true });
  manager.success('Hello!', 'Toastify loaded from CDN!');
</script>

ESM (modern bundlers):

import { ToastifyManager } from '@andreasnicolaou/toastify';
import '@andreasnicolaou/toastify/dist/styles.css';

const manager = new ToastifyManager('top-right', { closeButton: true });
manager.success('Success!', 'Toastify ESM import works!');

CJS (Node/CommonJS):

const { ToastifyManager } = require('@andreasnicolaou/toastify');
require('@andreasnicolaou/toastify/dist/styles.css');

const manager = new ToastifyManager('top-right', { closeButton: true });
manager.info('Info', 'Toastify CJS import works!');

Quick Usage Example

import { ToastifyManager } from '@andreasnicolaou/toastify';
import '@andreasnicolaou/toastify/dist/styles.css';

const toast = new ToastifyManager('top-right', {
  closeButton: true,
  withProgressBar: true,
  newestOnTop: true,
});

toast.success('Success!', 'Your operation was completed successfully.');
toast.error('Error!', 'Something went wrong, please try again.');
toast.info('Heads Up!', 'You have new updates available.', { closeButton: false });

Styling

  • Default: Import or link dist/styles.css for ready-to-use styles.
  • Custom: Pass a customClasses option to ToastifyManager to add your own classes and override styles as needed.

API

Toast Methods

FunctionDescriptionOptions (per toast, overrides manager)
default(title, message, options?)Displays a default toast.duration, isHtml, withProgressBar, progressBarDuration, closeButton, direction, showIcons, animationType, tapToDismiss, progressBarDirection
light(title, message, options?)Displays a light toast.duration, isHtml, withProgressBar, progressBarDuration, closeButton, direction, showIcons, animationType, tapToDismiss, progressBarDirection
error(title, message, options?)Displays an error toast.duration, isHtml, withProgressBar, progressBarDuration, closeButton, direction, showIcons, animationType, tapToDismiss, progressBarDirection
success(title, message, options?)Displays a success toast.duration, isHtml, withProgressBar, progressBarDuration, closeButton, direction, showIcons, animationType, tapToDismiss, progressBarDirection
warning(title, message, options?)Displays a warning toast.duration, isHtml, withProgressBar, progressBarDuration, closeButton, direction, showIcons, animationType, tapToDismiss, progressBarDirection
info(title, message, options?)Displays an info toast.duration, isHtml, withProgressBar, progressBarDuration, closeButton, direction, showIcons, animationType, tapToDismiss, progressBarDirection

All options can be set globally on the manager or per-toast (per call).

Options

OptionDescriptionDefault Value
durationTime in milliseconds for the toast to remain visible. Setting this to 0 will stick the toast forever.3000
isHtmlWhether the message should support HTML.false
withProgressBarShow a progress bar for the toast.false
progressBarDurationDuration of the progress bar (milliseconds).100
closeButtonShow a close button on the toast.false
showIconsShow icons for each toast type (error, success, etc.).true
directionDirection of the text (ltr or rtl).ltr
customClassesCustom CSS classes to add to the toast container.""
maxToastsThe maximum number of toasts that can be displayed at once.5
animationTypeAnimation style: fade, slide, zoom, bounce, flip, none.fade
tapToDismissDismiss toast on click/tap.false
newestOnTopStack newest toasts on top (true) or bottom (false).false
progressBarDirectionProgress Bar direction either increase or decrease.decrease

Theming & Customization

  • Use the customClasses option to add your own classes for custom themes.
  • Use the built-in light type for a light toast theme: toast.light('Title', 'Message').

Contributing

Contributions are welcome! If you encounter issues or have ideas to enhance the library, feel free to submit an issue or pull request.