Saltar al contenido principal

Catálogo · Todo el sitio

Anuncio

Comunica una sola cosa breve a todas las personas que visitan el sitio, en la parte superior de la página, como una oferta, un evento o un mantenimiento previsto.

Encaja mejor en: cualquier sitio — un aviso breve para todas las personas que visitan el sitio, como una oferta o un mantenimiento previsto

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

Dos anuncios: una invitación a una jornada de puertas abiertas y un aviso de mantenimiento previsto.

Open day. Visit the winery on Saturday 25 October, from 11:00 to 18:00. Book a visit

Planned maintenance. The shop will be closed on Monday 3 November from 07:00 to 09:00. See what still works

On a site the announcement goes above the header, as wide as the window, and its text starts where the header’s row starts. Here it is as wide as the example.

Problemas conocidos

No se puede cerrar: un botón de cierre necesita un script, y para recordar una elección entre páginas hace falta almacenamiento. Mantén el anuncio breve y elimínalo del marcado cuando ya no haga falta.

En los navegadores sin posicionamiento de anclas CSS (anteriores a Chrome y Edge 125, Safari 26 y Firefox 147), el menú de la cabecera, a 768 px o menos, se abre en la parte superior de la ventana; antes de desplazarse por la página, cubre parte de la cabecera bajo el anuncio. Se cierra con Escape o al hacer clic fuera.

Código

Copiar el marcado

Bundler
import "@luz-ds/catalog/components/announcement.css";
HTML
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@luz-ds/catalog@0.3.0/dist/components/announcement.min.css" integrity="sha384-q0dIp3JUb6xhG3u2VrEi+FU6Pgte4vL+70kh9fakM9rl9ARR/E8M/OilkMZiaNbC" crossorigin="anonymous">

Un <luz-announcement> alrededor de un <section>, cuyo nombre indican sus primeras palabras. Va después del enlace para saltar al contenido y del consentimiento de cookies, y antes de la cabecera de la página (la cabecera del sitio o la cabecera de periódico, por ejemplo).

HTML
<a class="luz-skip-link" href="#main">Skip to main content</a>
<luz-announcement>
  <section aria-labelledby="announcement-label">
    <p><strong id="announcement-label">Open day.</strong> Visit the winery on Saturday 25 October,
      from 11:00 to 18:00. <a href="/visits/">Book a visit</a></p>
  </section>
</luz-announcement>
<header>…</header>

Variantes y opciones

Etiqueta o atributoEfecto
<luz-announcement>
Envuelve un solo <section>, que se convierte en una franja del ancho de su contenedor, con una superficie atenuada y una línea inferior, en texto sans pequeño. El texto empieza donde empieza la fila de la cabecera. Una etiqueta que ningún script define: no tiene clase ni rol propios.
tone="warning"
En la etiqueta, el único tono: los colores de aviso, para algo que impide a quien visita la página hacer lo que venía a hacer, como un mantenimiento. Exprésalo también con palabras: «Mantenimiento previsto». Cualquier otro valor deja la franja sencilla.

Cómo funciona

CSS de @luz-ds/catalog. Sin JavaScript: <luz-announcement> es una etiqueta que ningún script define.

  • Es una franja de la página, dentro del flujo: se desplaza con la página y una cabecera .o-sticky permanece fija arriba, debajo. No cubre la página.
  • Su relleno en línea alinea el texto con la fila de la cabecera, hasta un ancho de --luz-content-max, en ambas direcciones de escritura.
  • No tiene botón de cierre. Para cerrarlo de forma permanente se necesita un script y un valor almacenado en el navegador; nunca se muestra un botón que no hace nada sin un script. Un anuncio dura poco: elimina su marcado cuando termina el evento.
  • No hay un tono de éxito o error: un anuncio no responde a algo que haya hecho quien visita la página. Para eso, usa una alerta en la página.

Sin JavaScript

No cambia nada: no hay ningún script.

Teclado y ARIA

  • Orden: su enlace va después del enlace para saltar al contenido y antes de la cabecera.
  • Región: no es la región banner, que es el <header> de la página; por eso se llama anuncio. Un <section> con nombre es una región, así que el lector de pantalla la incluye entre las regiones de la página; asígnale un nombre con aria-labelledby que apunte a sus primeras palabras. Si solo contiene esa frase, basta un <div> sin nombre.
  • No es una región dinámica: aparece al cargar la página, así que no necesita role="status" ni role="alert"; el lector de pantalla lo lee junto con el resto de la página.

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

Diseño

Cuándo usarlo

Úsalo para comunicar durante unos días y en todas las páginas una sola cosa breve y oportuna que deba saber quien visita el sitio: una oferta, un evento, un mantenimiento previsto o un cambio de horario.

Cuándo no usarlo

No lo uses para algo que corresponda a una sola página o a una persona: inclúyelo en la página o responde con una alerta o un aviso emergente.

  • No muestres dos anuncios a la vez ni dejes uno durante meses: si una franja nunca cambia, la gente deja de leerla.
  • No lo uses para pedir consentimiento para las cookies: usa el banner de consentimiento de cookies.
  • No incluyas un formulario ni más de un enlace.

Sustituye las barras de anuncios que cada sitio crea con su propio CSS. No elimina nada de LUZ.

Qué hacer y qué no

Sí Empieza con el tema en negrita, indica cuándo y termina con un único enlace que explique adónde lleva.
No Confíes solo en el amarillo para indicar que es un aviso, no escribas todo en mayúsculas ni omitas la fecha: el mensaje debe entenderse solo con las palabras y «pronto» deja de ser correcto al día siguiente.

Cómo escribir el contenido

Una frase, dos como máximo. Empieza indicando el tema en negrita y termina con un punto: «Jornada de puertas abiertas.» o «Mantenimiento previsto.».

  • Indica la fecha y la hora, incluido el día de la semana, para que la información siga siendo válida aunque se lea más tarde.
  • Termina con un enlace que explique adónde lleva: «Reserva una visita», no «Más información».
  • Escribe con mayúscula inicial y sin signos de exclamación.

Contraste y foco

El texto y el enlace aparecen sobre la superficie de la franja.

ParteColor sobre el fondoClaroOscuroAlto contrasteMínimo
Texto
--luz-text-primary on --luz-surface-muted
15.8:1
15.1:1
20.1:1
4.5:1
Enlace
--luz-brand-primary on --luz-surface-muted
5.6:1
7.7:1
13.5:1
4.5:1
Texto, aviso
--luz-text-primary on --luz-color-warning-bg over --luz-surface-page
16.0:1
11.5:1
20.0:1
4.5:1
Enlace, aviso
--luz-brand-primary on --luz-color-warning-bg over --luz-surface-page
5.7:1
5.9:1
13.5:1
4.5:1
Anillo de foco en el enlace
--luz-focus-ring on --luz-surface-muted
5.6:1
7.7:1
20.1:1
3:1
Anillo de foco en el enlace, aviso
--luz-focus-ring on --luz-color-warning-bg over --luz-surface-page
5.7:1
5.9:1
20.0:1
3:1

Medido a partir de los valores de los tokens de cada modo y redondeado hacia abajo. El mínimo AA de WCAG 2.2 es: 4,5:1 para texto y 3:1 para anillos de foco.

  • Foco: contorno de 2 px de core con --luz-focus-ring alrededor del enlace.
  • El enlace está subrayado, como todos los enlaces dentro del texto: no se distingue solo por el color.
  • El amarillo del aviso nunca es la única señal: las primeras palabras explican de qué se trata.

Tokens que usa

Los 11 tokens que leen las reglas de components/announcement.css del catálogo, agrupados por familia. Cada familia enlaza a su página, donde están los valores de todos los modos. En Figma son variables con los mismos nombres: consulta Tokens en Figma.

Spacing and sizing
--luz-space-xs, --luz-space-md, --luz-space-xl
Typography
--luz-font-sans, --luz-text-sm
Layout and breakpoints
--luz-content-max

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