A modern, customizable Vue 3 toaster library built with TypeScript and TailwindCSS.
- 📦 Tiny & tree-shakable
- 🌈 Pre-styled with TailwindCSS
- 🧠 Promise-based toasts
- 🎯 Full TypeScript support
- 📱 Responsive design
- 🔧 Easy to configure
- 🚀 Zero dependencies (except Vue 3 and TailwindCSS)
npm install vue-toastbar
# or using yarn
yarn add vue-toastbar
# or using pnpm
pnpm add vue-toastbar
🧩 This package uses TailwindCSS — you must configure that in your app.
If your app doesn't already use Tailwind:
npm install tailwindcss @tailwindcss/vite
Update your vite.config.ts
:
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import tailwindcss from '@tailwindcss/vite'
export default defineConfig({
plugins: [
vue(),
tailwindcss()
],
})
Add in your global CSS:
@import "tailwindcss";
- Import and mount the Toaster component
In App.vue
or your root layout:
<script setup lang="ts">
import { Toaster } from 'vue-toastbar'
import 'vue-toastbar/dist/vue-toaster.css'
</script>
<template>
<Toaster />
<router-view />
</template>
- Trigger a toast
import { toast } from 'vue-toastbar'
// Success toast
toast.success('Operation completed successfully!')
// Error toast
toast.error('Something went wrong!')
// Info toast
toast.info('Did you know?')
// Warning toast
toast.warning('Please be careful!')
- Async Toasts (For API Calling)
// Promise-based toast
const promise = async () => {
// Your async operation
}
await APIToast(
promise,
'API Data Loaded Successfully!',
{ progress: 'Loading Data' }
);
- Optional: If any module declaration error occurs
Add in your vite-env.d.ts
:
declare module 'vue-toastbar'
Option | Type | Default | Description |
---|---|---|---|
duration | number | 4000 | Toast duration in milliseconds |
Option | Type | Default | Description |
---|---|---|---|
duration | number | 4000 | Toast duration in milliseconds |
progress | string | Loading | Loading message while api calling |
error | string | An error occurred | error message to display if any error occurs |
Option | Type | Default | Description |
---|---|---|---|
position | string | bottom-right | Toaster position in application |
enableActions | boolean | true | Enabled or disabled the toaster close button |
toast.success(message, options?)
toast.error(message, options?)
toast.info(message, options?)
toast.warning(message, options?)
APIToast(promise, messages, options?)
You can customize the toaster by disabling actions or change the toaster position or even add styling using TailwindCSS classes:
<Toaster
:position="top"
:enableActions=false
/>
MIT License - see the LICENSE file for details