finds.dev← search

// the find

smastrom/notivue

★ 866 · TypeScript · MIT · updated Jun 2026

Zero-dependency, powerful, and truly customizable toast notification system for Vue

Notivue is a toast notification library for Vue 3 and Nuxt with zero runtime dependencies. It covers the full feature surface — queuing, promise-based toasts, swipe-to-dismiss, keyboard navigation, and ARIA live regions — while also exposing a headless API for custom components. Aimed at Vue 3 teams who want something more complete than vue-toastification without writing their own stack.

Accessibility is taken seriously: ARIA roles, live regions, reduced-motion support, and a dedicated NotivueKeyboard component for focus trapping are all built in, not bolted on. The headless API is genuinely headless — you slot in your own component and Notivue handles positioning, queuing, and timing without imposing any styles. Test coverage is unusually thorough for a UI utility: Cypress component tests cover transitions, swipe debounce, keyboard flow, enqueue limits, and pause-on-hover. The modular CSS split (notification.css vs animations.css) means tree-shaking isn't blocked by styles you didn't ask for.

866 stars and only 14 forks after what appears to be several years of active development — low community momentum, which matters for longevity bets. The built-in theme options are limited; anyone deviating from the defaults will be in headless mode immediately, at which point they're owning all the styling work themselves. No React adapter and no plans indicated — if your app is mixed-framework, this is dead weight outside the Vue island. The Nuxt module ships pre-built CJS/MJS in the repo (`module.cjs`, `module.mjs`) rather than building from source, which makes auditing what you're actually installing harder.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →