Notificaciones push a tus visitantes con un toast, un mensaje de alerta liviano y fácilmente personalizable.
Los toast son notificaciones livianas diseñadas para imitar las notificaciones automáticas que se han popularizado en los sistemas operativos móviles y de escritorio. Están construidos con flexbox, por lo que son fáciles de alinear y colocar.
Cosas que debes saber al usar el complemento toast:
Los toast son opcionales por motivos de rendimiento, por lo que debes inicializarlos tú mismo.
Los toast se ocultarán automáticamente si no especificas autohide: false.
Ejemplos del componente Toast
Básico
Para fomentar toasts extensibles y predecibles, recomendamos un encabezado y un cuerpo. Los encabezados del sistema usan display: flex, lo que permite una fácil alineación del contenido gracias a nuestras utilidades de margen y flexbox.
Los toast son tan flexibles como necesites y requieren muy poco margen de beneficio. Como mínimo, requerimos un solo elemento que contenga su contenido y recomendamos encarecidamente un botón para descartar.
Ejemplo en vivo
Haz clic en el botón de abajo para mostrar un toast (ubicado con nuestras utilidades en la esquina inferior derecha) que ha estado oculto de forma predeterminada.
Utilizamos el siguiente JavaScript para activar nuestra demostración de toast en vivo:
Los toasts son ligeramente translúcidas para mezclarse con lo que hay debajo de ellos.
Apilar
Puedes apilar toasts envolviéndolos en un recipiente para toasts, lo que agregará algo de espacio verticalmente.
Contenido personalizado
Personaliza tus notificaciones eliminando subcomponentes, modificándolos con utilidades o agregando tu propio marcado. Aquí hemos creado un toast más simple eliminando el .toast-header predeterminado y agregando un ícono oculto personalizado de iconos de Bootstrap y usando algunas utilidades de flexbox para ajustar el diseño.
Alternativamente, también puedes agregar controles y componentes adicionales a los toast.
Esquemas de colores
A partir del ejemplo anterior, puedes crear diferentes combinaciones de colores de toasts con nuestras utilidades de color y fondo. Aquí agregamos .text-bg-primary a .toast y luego agregamos .btn-close-white a nuestro botón de cerrar. Para obtener un borde nítido, eliminamos el borde predeterminado con .border-0.
Ubicación del componente Toast
Coloca toast con CSS personalizado cuando los necesites. La parte superior derecha se utiliza a menudo para notificaciones, al igual que la parte superior central. Si solo vas a mostrar un toast a la vez, coloca los estilos de posicionamiento directamente en .toast.
Para los sistemas que generan más notificaciones, considera usar un elemento envolvente para que se puedan apilar fácilmente.
También puedes usar las utilidades de Flexbox para alinear las tostadas horizontal y/o verticalmente.
Accesibilidad del componente Toast
Los toast están destinados a ser pequeñas interrupciones para tus visitantes o usuarios, por lo que, para ayudar a aquellos con lectores de pantalla y tecnologías de asistencia similares, debes envolver tus toast en un aria-live (región). Los lectores de pantalla anuncian automáticamente los cambios en las regiones activas (como la inyección/actualización de un componente del sistema) sin necesidad de mover el enfoque del usuario ni interrumpirlo de otro modo. Además, incluye aria-atomic="true" para garantizar que todo el toast se anuncie siempre como una única unidad (atómica), en lugar de simplemente anunciar lo que se cambió (lo que podría generar problemas si solo actualizas parte del contenido del toast, o si se muestras el mismo contenido del toast en un momento posterior). Si la información necesaria es importante para el proceso, p.e. para obtener una lista de errores en un formulario, utiliza el componente de alerta en lugar de toast.
Ten en cuenta que la región en vivo debe estar presente en el marcado antes de que se genere o actualice el toast. Si generas dinámicamente ambos al mismo tiempo y los inyectas en la página, generalmente no serán anunciados por las tecnologías de asistencia.
También necesitas adaptar el nivel role y aria-live dependiendo del contenido. Si es un mensaje importante como un error, usa atributos role="alert" aria-live="assertive"; de lo contrario, usa role="status" aria-live="polite".
A medida que cambia el contenido que estás mostrando, asegúrate de actualizar el delay tiempo de espera para que los usuarios tengan tiempo suficiente para leer el toast.
Cuando uses autohide: false, debes agregar un botón de cierre para permitir a los usuarios descartar el toast.
Si bien técnicamente es posible agregar controles enfocables/accionables (como botones o enlaces adicionales) en tu notificación, debes evitar hacerlo para ocultar automáticamente las notificaciones. Incluso si le das al toast un delay tiempo de espera, a los usuarios de teclados y tecnologías de asistencia puede resultarles difícil llegar al toast a tiempo para tomar medidas ( ya que los toast no reciben foco cuando se muestran). Si es absolutamente necesario tener controles adicionales, le recomendamos utilizar un toast con autohide: false.
Personalización del CSS del componente
Variables Sass del componente
Agregado en v5.2.0
Como parte del enfoque de variables CSS en evolución de Bootstrap, los toast ahora usan variables CSS locales en .toast para una personalización mejorada en tiempo real. Los valores de las variables CSS se establecen a través de Sass, por lo que la personalización de Sass también es compatible.
El despido se puede lograr con el atributo data-bs-dismiss en un botón dentro del toast como se muestra a continuación:
o en un botón fuera del toast usando el data-bs-target adicional como se muestra a continuación:
Opciones
Como las opciones se pueden pasar a través de atributos de datos o JavaScript, puedes agregar un nombre de opción a data-bs-, como en data-bs-animation="{value}". Asegúrate de cambiar el tipo de caso del nombre de la opción de “camelCase” a “kebab-case” al pasar las opciones a través de atributos de datos. Por ejemplo, utiliza data-bs-custom-class="beautifier" en lugar de data-bs-customClass="beautifier".
A partir de Bootstrap 5.2.0, todos los componentes admiten un atributo de datos experimental reservado data-bs-config que puede albergar datos simples de configuración del componente como una cadena JSON. Cuando un elemento tiene los atributos data-bs-config='{"delay":0, "title":123}' y data-bs-title="456", el valor final de title será 456 y los atributos de datos separados sobrescribirán los valores proporcionados en data-bs-config. Además, los atributos de datos existentes pueden albergar valores JSON como data-bs-delay='{"show":0,"hide":150}'.
El objeto de configuración final es el resultado combinado de data-bs-config, data-bs- y js object donde el último valor-clave dado sobrescribe los demás.
Nombre
Tipo
Predeterminado
Descripción
animation
boolean
true
Aplica una transición de desvanecimiento CSS al toast.
autohide
boolean
true
Ocultar automáticamente el toast después del retraso.
delay
número
5000
Retraso en milisegundos antes de ocultar el toast.
Métodos
Método
Descripción
dispose
Oculta el toast de un elemento. Su toast permanecerá en el DOM pero ya no se mostrará.
getInstance
Static método que te permite obtener la instancia del toast asociada con un elemento DOM. Por ejemplo: const myToastEl = document.getElementById('myToastEl')const myToast = bootstrap.Toast.getInstance(myToastEl) Devuelve una instancia del sistema Bootstrap.
getOrCreateInstance
Static método que te permite obtener la instancia del toast asociada con un elemento DOM, o crear una nueva, en caso de que no haya sido inicializada. const myToastEl = document.getElementById('myToastEl')const myToast = bootstrap.Toast.getOrCreateInstance(myToastEl) Devuelve una instancia del sistema Bootstrap.
hide
Oculta el toast de un elemento. Vuelve al punto de la llamada antes de que el toast se haya ocultado (es decir, antes de que ocurra el evento hidden.bs.toast ). Tienes que llamar manualmente a este método si estableciste autohide en false.
isShown
Devuelve un valor booleano según el estado de visibilidad del toast.
show
Revela el toast de un elemento. Vuelve al punto de la llamada antes de que se haya mostrado el toast (es decir, antes de que ocurra el evento shown.bs.toast). Tienes que llamar manualmente a este método; en su lugar, tu toast no se mostrará.
Eventos
Evento
Descripción
hide.bs.toast
Este evento se activa inmediatamente cuando se llama al método de instancia hide.
hidden.bs.toast
Este evento se activa cuando el toast ha terminado de ocultarse al usuario.
show.bs.toast
Este evento se activa inmediatamente cuando se llama al método de instancia show.
shown.bs.toast
Este evento se activa cuando el toast se hace visible para el usuario.