All UI feedback in one package. Apple-style glass.
Toasts, confirm / alert / prompt dialogs, bottom sheets, and loading overlays. One identical API across plain JS, React, Next.js, Vue, Nuxt, Angular, Svelte, and React Native.
Every platform. One identical API.
Switch from React to Svelte, Next.js to React Native, or Vanilla JS to Vue without rewriting options, parameters, or themes.
import { Toaster, toast, ui } from 'toastory/react';
import 'toastory/themes/ios-glass.css';
export default function App() {
return (
<>
<Toaster position="top-right" theme="ios-glass" />
<button onClick={() => toast.success('Saved to cloud!')}>Notify</button>
<button onClick={() => ui.confirm({ title: 'Logout?' })}>Sign Out</button>
</>
);
}Toasts: Types, Promises, Actions & Stacking
Polite live regions, actionable Undo buttons, 4-direction swipe dismissal, and automatic deduplication windows.
Rich icons, titles, secondary descriptions, and auto-dismiss timing.
Inline actionable buttons with visible keyboard focus rings.
Tracks Promise resolution with loading spinner and automatic unwrapping.
Smooth progress tracks and rings with pausable hover/focus states.
Dialogs: Confirm, Prompts, OTP & Steps
SweetAlert2 replacement with Apple glass styling. Built-in focus trap, 16 input types, type-to-confirm guards, and drawer bottom sheets.
Modal confirmation with default focus lock on Cancel button to protect accidental deletions.
Disables the confirmation button until the user exactly types the specified confirmation string.
Auto-advances between numeric inputs, clipboard paste parsing, and live resend timer countdown.
Real-time ticking seconds display with animated timer track and pause/resume hooks.
Sequential wizard dialog with back/forward history and aggregated results.
Swipeable gesture drawer with configurable snap points and drag handles.
Live Design Token Customiser
Adjust CSS variables live. Watch the toast restyle instantly and export the ready CSS token overrides.
/* Generated Theme Overrides */
[data-gk-theme="custom"] {
--gk-accent: #3b82f6;
--gk-radius: 20px;
--gk-blur: 22px;
}Accessibility & Live Regions
Standard toasts announce politely with `role="status"` and `aria-live="polite"`. Error notices escalate to `role="alert"` and `aria-live="assertive"`. Active dialogs trap keyboard focus and restore focus on dismiss.
Ultra-lightweight Size Budget
Honest, Verifiable Feature Comparison
Measured via automated build tests and repository analysis. Facts are checked against official documentation.
| Feature & Specification | toastory | Sonner | React-Toastify | react-hot-toast | Notyf | SweetAlert2 |
|---|---|---|---|---|---|---|
| Zero Runtime Dependencies | Yes (0 B) | No | No | No | Yes | Yes |
| Measured Gzip Size (Core + Toast) | 5.2 KB | ~4.5 KB | ~14.0 KB | ~5.2 KB | ~3.8 KB | ~15.0 KB |
| Frameworks Supported | JS, React, Next, Vue, Nuxt, Angular, Svelte, RN | React only | React only | React only | Vanilla only | Vanilla / Wrappers |
| Dialog Toolkit (Confirm, Prompt, Alert) | ✓ | — | — | — | — | ✓ |
| Mobile Bottom Sheet & Action Sheet | ✓ | — | — | — | — | — |
| Multi-Step Wizard Dialogs | ✓ | — | — | — | — | Basic |
| 6-Box Discrete Numeric OTP Input | ✓ | — | — | — | — | — |
| Type-to-Confirm Deletion Guard | ✓ | — | — | — | — | — |
| Real-time Session Countdown Timer | ✓ | — | — | — | — | Timer only |
| Apple-Style Frosted Glass Tokens | 21 Themes | Flat minimal | Flat card | Minimal card | Flat banner | Flat / Skewed |
| Gesture Swipe Physics (4-Direction) | ✓ | 1-Direction | 2-Direction | Basic | — | — |
| WCAG 2.2 AA Verified (0 axe-core errors) | Yes (96 runs) | not verified | not verified | not verified | not verified | not verified |
| License | MIT | MIT | MIT | MIT | MIT | MIT |
Migrating from Sonner, SweetAlert2 or React-Toastify?
toastory provides drop-in compatibility patterns with detailed side-by-side option maps so you can replace legacy dependencies in minutes.
Upgrade your UI feedback today.
Zero runtime dependencies. Apple-style frosted glass. Built for accessibility and multi-framework workflows.