Saltar al contenido principal

Core · Avisos y estado

Aviso emergente

Confirma un resultado pequeño, como «Borrador guardado», sin interrumpir la lectura.

Esta traducción la ha escrito una IA y todavía no la ha revisado ninguna persona. Leer esta página en inglés

Ejemplo

Un aviso emergente que confirma una exportación, mostrado como ejemplo estático.

Success
File exported.

A static specimen: LUZ draws the toast, and you place it, show it and hide it.

Problemas conocidos

LUZ solo proporciona el aspecto visual. Tú debes crear la región dinámica, la ubicación, el tiempo que se muestra y el comportamiento del botón de cierre, además de garantizar su accesibilidad.

Código

Copiar el marcado

Mantén una región dinámica vacía en la página e introduce en ella el aviso cuando se produzca el resultado.

HTML
<div role="status">
  <div class="luz-toast">
    <div class="luz-toast__content">
      <div class="luz-toast__kind">Saved</div>
      <div class="luz-toast__msg">Draft saved.</div>
    </div>
    <button class="luz-toast__close" type="button" aria-label="Dismiss notification">×</button>
  </div>
</div>

Variantes y opciones

No hay modificadores.

ClaseQué hace
.luz-toast
Una caja elevada sobre la superficie intensa, de hasta 320 px de ancho y nunca más ancha que su contenedor
.luz-toast__kind
Una etiqueta pequeña en fuente mono encima del mensaje
.luz-toast__msg
El mensaje
.luz-toast__close
El botón ×, de al menos 28 px

Cómo funciona

Un bloque con estilo de components/toast.css. LUZ no incluye ningún script para avisos emergentes.

  • Colócalo con tu propio CSS, por ejemplo, fijado en la parte inferior de la pantalla, por encima de la página con --luz-z-toast.
  • Si se oculta automáticamente, déjalo en pantalla al menos 5 segundos y mantenlo mientras tenga el foco o el puntero esté encima.
  • Tu script debe eliminar el aviso al pulsar el botón de cierre.

Sin JavaScript

Un aviso emergente solo aparece como respuesta a algo que ha hecho tu script, así que no existe sin JavaScript. Muestra el mismo resultado en la página, por ejemplo, en una alerta después de enviar un formulario.

Teclado y ARIA

Mostrar un aviso emergente no desplaza el foco.

  • Insértalo en una región dinámica educada (role="status") que ya esté en la página, para que lo anuncien los lectores de pantalla.
  • Se puede llegar al botón de cierre con Tab y su nombre es «Descartar notificación».

Contraste y foco están en la pestaña Diseño.

Diseño

Cuándo usarlo

Usa un aviso emergente para confirmar un resultado pequeño que no requiera respuesta: «Borrador guardado», «Enlace copiado».

Cuándo no usarlo

No uses un aviso emergente para nada que la persona deba atender o no deba perderse: desaparece.

  • Para un error, usa una alerta junto a lo que ha fallado.
  • Para tomar una decisión, usa un diálogo modal.
  • No incluyas enlaces ni botones, salvo el botón de cierre.

Qué hacer y qué no

Sí Una confirmación breve que la persona puede perderse sin consecuencias: «Archivo exportado».
No Un pago fallido en un aviso emergente: desaparece antes de que la persona pueda actuar. Usa una alerta junto a lo que ha fallado.

Cómo escribir el contenido

Una frase breve en pasado: «Archivo exportado».

  • La etiqueta del tipo es una palabra: «Guardado», «Correcto».
  • No repitas lo que ya muestra la página.

Contraste y foco

El aviso emergente usa la superficie intensa y el texto principal, así que destaca de la página en todos los modos.

ParteColor sobre el fondoClaroOscuroAlto contrasteNecesita
Etiqueta del tipo
--luz-text-secondary on --luz-surface-strong
5.3:1
5.4:1
16.5:1
4.5:1
Mensaje
--luz-text-primary on --luz-surface-strong
13.5:1
10.9:1
18.0:1
4.5:1
Botón de cierre
--luz-text-secondary on --luz-surface-strong
5.3:1
5.4:1
16.5:1
4.5:1
Anillo de foco
--luz-focus-ring on --luz-surface-strong
4.8:1
5.6:1
18.0:1
3:1

Medido a partir de los valores de los tokens de cada modo, redondeado hacia abajo. «Necesita» indica el mínimo AA de WCAG 2.2: 4,5:1 para texto y 3:1 para anillos de foco, bordes e iconos.

  • Foco: el aviso no recibe el foco al aparecer. El botón de cierre tiene un contorno de --luz-focus-ring de 2 px, a 2 px por fuera.
  • No solo el color: el tipo se indica con una palabra («Correcto»), no con un color.
  • Área interactiva: el botón de cierre mide al menos 28 px cuadrados.

Tokens que usa

Los 18 tokens que lee components/toast.css, por familia. Cada familia enlaza a su página, con los valores de todos los modos. En Figma son variables con los mismos nombres: consulta Tokens en Figma.

Spacing and sizing
--luz-control-sm, --luz-space-3xs, --luz-space-md, --luz-space-sm, --luz-space-xs
Typography
--luz-font-mono, --luz-text-lg, --luz-text-sm, --luz-text-xs
Radius
--luz-radius-md, --luz-radius-sm
Shadows
--luz-shadow-md
Motion
--luz-duration-base

Teclado y ARIA están en la pestaña Código.