🧬 Fully modular with zero dependencies
Granularly include only the features you need
✅ Beautiful, ready-made notifications included
Themes, icons, progress bar, and native RTL support
🧩 Headless API
Use your own components while Notivue handles the rest
💊 Drop-in components to enhance notifications
NotivueSwipe, NotivueKeyboard, all optional and customizable
🌀 Dynamic Notifications
Update pending notifications with a breeze
🎢 Slick transitions and animations
Customize animations with CSS classes
♿️ Fully accessible
Built-in announcements, reduced-motion and keyboard support
💫 Nuxt and Astro modules
Built-in Nuxt and Astro ad-hoc modules
pnpm add notivue
# npm i notivue
# yarn add notivue
# bun i notivue
:bulb: See ↓ below for Nuxt
main.js/ts
import { createApp } from 'vue'
import { createNotivue } from 'notivue'
import App from './App.vue'
import 'notivue/notification.css' // Only needed if using built-in <Notification />
import 'notivue/animations.css' // Only needed if using default animations
const notivue = createNotivue(/* Options */)
const app = createApp(App)
app.use(notivue)
app.mount('#app')
App.vue
<script setup>
import { Notivue, Notification, push } from 'notivue'
</script>
<template>
<button @click="push.success('Hi! I am your first notification!')">Push</button>
<Notivue v-slot="item">
<Notification :item="item" />
</Notivue>
<!-- RouterView, etc. -->
</template>
{{ item.message }}
nuxt.config.ts
export default defineNuxtConfig({
modules: ['notivue/nuxt'],
css: [
'notivue/notification.css', // Only needed if using built-in <Notification />
'notivue/animations.css' // Only needed if using default animations
],
notivue: {
// Options
}
})
app.vue
<template>
<button @click="push.success('Hi! I am your first notification!')">Push</button>
<Notivue v-slot="item">
<Notification :item="item" />
</Notivue>
<!-- NuxtLayout, NuxtPage, etc. -->
</template>
MIT