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 '@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
idstringIdentificador único
messagestringMensaje a mostrar
colorColorColor semántico
iconstringIcono o emoji
timestampnumberTimestamp UNIX

API

Toast

PropTipoDefaultDescripción
messagestringContenido 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) => voidFunció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
messagestringContenido del toast
color'primary' | 'secondary' | 'tertiary' | 'success' | 'warning' | 'danger' | 'light' | 'medium' | 'dark''primary'Color semántico
replacebooleanfalseReemplaza toast duplicado
filterstringClave para detectar duplicado

Tokens usados

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