Skip to content

Toast ​

Notificaciones temporales inspiradas en noice.nvim, con posicionamiento configurable y deduplicación.

Toast

Demo ​

vue
<script setup lang="ts">
import { ref } from 'vue'
import { ToastContainer } from '@dowardev/herdrate-vue'
const items = ref([])

function showAt(position: string) {
  items.value.push({ id: Date.now(), message: 'Hola', color: 'primary', position })
}
function dismiss(id: number) {
  items.value = items.value.filter(t => t.id !== id)
}
</script>

<template>
  <button @click="showAt('bottom-right')">bottom-right</button>
  <ToastContainer
    :toasts="items.filter(t => t.position === 'bottom-right')"
    :remove="dismiss"
    position="bottom-right"
  />
</template>

Demo con useToast() ​

Esta demo usa la composable useToast() real del paquete (singleton, estado compartido) — alineada con el flujo que copiarías a tu proyecto.

Tipos ​

ToastItem ​

CampoTipoRequeridoDescripción
idstring✅Identificador único
messagestring✅Mensaje a mostrar
colorColor✅Color semántico
iconstring✅Icono o emoji
timestampnumber✅Timestamp UNIX

API ​

Toast ​

PropTipoDefaultDescripción
messagestring—Contenido del toast
color'primary' | 'secondary' | 'tertiary' | 'success' | 'warning' | 'danger' | 'light' | 'medium' | 'dark''primary'Color semántico del toast
iconstring''Icono personalizado (default: ▼/✓/●/✖)

ToastContainer ​

PropTipoDefaultDescripción
toastsToastItem[]—Lista de toasts a mostrar
remove(id: string) => void—Función para cerrar toast
position'bottom-right' \| 'bottom-left' \| 'top-right' \| 'top-left' \| 'top-center' \| 'bottom-center''bottom-right'Posición en pantalla

useToast() ​

RetornoTipoDescripción
toastsRef<ToastItem[]>Lista reactiva de toasts activos
add(opts: AddOptions) => stringAgrega un toast, retorna ID
remove(id: string) => voidElimina un toast por ID

AddOptions ​

PropTipoDefaultDescripción
messagestring—Contenido del toast
color'primary' | 'secondary' | 'tertiary' | 'success' | 'warning' | 'danger' | 'light' | 'medium' | 'dark''primary'Color semántico
replacebooleanfalseReemplaza toast duplicado
filterstring—Clave para detectar duplicado

Tokens usados ​

--font-mono, --bg, --bg-elevated, --border, --text, --color-*