Saltar al contenido principal

Catálogo · Navegación

Cabecera de portada

Abre la portada y las secciones de un periódico con la fecha, una búsqueda, el nombre de la publicación en letra grande y sus secciones, en tres filas que se desplazan con la página.

Encaja mejor en: blog — la portada y las secciones de un periódico, donde el nombre y la fecha marcan el tono

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

La cabecera de portada de un periódico: la fecha y un botón, el nombre y las secciones.

The Vejer Review

At 768 px of window width and below the sections collapse into a menu, the catalog's navbar.

The masthead is not sticky: three rows stuck to the top would take a third of a phone's screen. For one row that stays at the top, use the site header with --publication.

Problemas conocidos

El problema propio de la cabecera de portada y los de las piezas de las que se compone.

  • El menú de la cabecera de portada sin posicionamiento de anclas. En los navegadores sin posicionamiento de anclas CSS, el menú de secciones se abre cerca de la parte superior de la ventana y, mientras está abierto, cubre el nombre de la publicación y el botón de menú. Pulsa Escape o haz clic fuera del menú para cerrarlo y volver a la página.
  • El panel del menú. Si sigues pulsando Tab después del último enlace del menú abierto, el foco avanza por la página y el menú permanece abierto encima; Escape lo cierra. Consulta los problemas conocidos de la barra de navegación.

Código

Copiar el marcado

Bundler
import "@luz-ds/catalog/components/masthead.css";
HTML
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@luz-ds/catalog@0.3.0/dist/components/masthead.min.css" integrity="sha384-Z8LZh/hdX8e75aVw/+7wsEa/DGjmU5P5Jr3gDfMgW5yUXZw0JBlB1bEZt8nUX9nx" crossorigin="anonymous">

Con la búsqueda de catalog en la fila superior:

HTML
<header class="luz-masthead">
  <div class="o-container o-container--inline o-stack">
    <div class="o-row luz-masthead__top">
      <p class="luz-masthead__date"><time datetime="2026-10-14">Wednesday, 14 October 2026</time></p>
      <div class="o-row luz-masthead__actions">
        <luz-search>…</luz-search>
      </div>
    </div>
    <a class="luz-masthead__brand" href="/">The Vejer Review</a>
    <div class="o-row luz-masthead__sections">
      <button class="luz-nav-toggle" type="button" popovertarget="masthead-nav" aria-label="Sections">…</button>
      <nav class="luz-navbar" id="masthead-nav" aria-label="Sections" popover>…</nav>
    </div>
  </div>
</header>

Variantes y opciones

Ningún modificador. La cabecera de portada es una clase de catalog aplicada a un <header> nativo, maquetada con los objetos de core en el marcado.

ClaseEfecto
.luz-masthead
En <header>: la cabecera de portada del periódico. La superficie de la página, tres filas en un .o-stack, 16 px arriba y abajo, no fija
.luz-masthead__top
En un .o-row: la fecha al inicio y las acciones al final, en una sola fila
.luz-masthead__date
La fecha de hoy en un <time datetime>, pequeña y secundaria; se ajusta para dejar su espacio a las acciones
.luz-masthead__actions
En un .o-row: la búsqueda de catalog y después su selector de idioma
.luz-masthead__brand
El nombre de la publicación como enlace a la página de inicio, con la fuente de los títulos, grande y centrado, seminegrita y subrayado solo al pasar el cursor. Un <img> de logotipo dentro mide 88 px de alto
.luz-masthead__sections
En un .o-row: el botón de menú y la barra de navegación entre dos líneas, centrados a partir de 769 px; su panel se abre debajo de esta fila
.o-container.o-container--inline.o-stack (core)
El ancho y los márgenes laterales de la página, para que la cabecera de portada empiece donde empieza el contenido, y sus tres filas
.luz-nav-toggle, .luz-navbar (catalog)
El botón de menú y las secciones: consulta la barra de navegación

Cómo funciona

CSS de components/masthead.css de @luz-ds/catalog aplicado a los objetos de core y a la barra de navegación de catalog. Sin JavaScript.

  • La cabecera de portada solo aporta la apariencia: la superficie de la página, la marca, las líneas de la fila de secciones y la fecha. Core se ocupa del resto: .o-container--inline los márgenes laterales, .o-row y .o-stack las filas, y la barra de navegación los enlaces y su panel.
  • La cabecera de portada no es fija: tres filas pegadas arriba ocuparían un tercio de la pantalla del móvil. La marca mide 49 px a partir de 1024 px, 39 px por debajo y 31 px a 640 px o menos (--luz-text-4xl, -3xl y -2xl, los escalones del hero).
  • La cabecera de portada, y la fila de secciones dentro de ella, se identifican como el ancla --luz-bar, dentro de su propio ámbito. En los navegadores compatibles con el posicionamiento de anclas CSS, el panel de la barra de navegación se abre debajo de la fila de secciones. En los demás se abre a --luz-bar-h de la parte superior de la ventana (consulta Problemas conocidos).
  • Con @luz-ds/catalog, la lista de su <luz-lang-switch> se abre debajo de la cabecera de portada. Sin él, no cambia nada: las reglas que amplían los elementos del catálogo no coinciden con ninguno.

Sin JavaScript

No cambia nada: el menú es una ventana emergente que abre popovertarget del botón, sin scripts; los enlaces son enlaces normales y la búsqueda del catálogo muestra un enlace al índice alfabético.

Teclado y ARIA

  • Orden: el del código fuente: acciones de la fila superior, marca, botón de menú y secciones.
  • Teclas: Enter o Espacio en el botón de menú abre y cierra el panel; Escape lo cierra y devuelve el foco al botón. El panel no es modal: al pulsar Tab después del último enlace se continúa por la página.
  • Nombres: tanto <nav> como el botón de menú se llaman «Secciones»; el navegador expone el estado expandido del botón. La sección del artículo lleva aria-current="true" y el índice de la propia sección, aria-current="page"; ambos aparecen subrayados.
  • Marca: un enlace, nunca un encabezado: el título del artículo es el único h1 de la página. El logotipo es un <img> cuyo alt contiene el nombre de la publicación, sin texto al lado.
  • Puntos de referencia: un <header> que es hijo directo de <body> es el banner. Pon antes el enlace para saltar al contenido.

La pestaña Diseño contiene el contraste y el foco.

Diseño

Cuándo usarlo

Usa la cabecera de portada al principio de la portada y de las secciones de un periódico, donde el nombre y la fecha marcan el tono y quien lee llega a cada sección.

Cuándo no usarlo

No la uses en todas las páginas de un blog: para una sola fila que permanece arriba, usa la cabecera del sitio con --publication.

  • Una cabecera por página, nunca dentro de un componente o artículo: es el banner de la página.
  • No fijes la cabecera de portada ni pongas la fecha en una barra de una fila: en una sola fila competiría con el nombre.

Qué hacer y qué no

Hazlo El nombre de la publicación como texto y unas pocas secciones con los nombres que conoce quien lee.
No lo hagas Recortar el nombre con puntos suspensivos o poner cada etiqueta del sitio como sección: quien lee no sabrá dónde está.

Cómo escribir el contenido

La marca es el nombre de la publicación; las secciones usan los nombres que quienes leen dan a sus apartados.

  • Marca: el nombre completo, tal como aparece en la publicación. Se parte en varias líneas si el ancho es reducido; nunca lo acortes con puntos suspensivos.
  • Secciones: entre cuatro y siete, de una o dos palabras cada una, con los mismos nombres que los títulos de sus páginas de índice.
  • Fecha: escrita con palabras en el idioma de la página, «miércoles, 14 de octubre de 2026», con el mismo día en datetime.
  • Botón de menú: «Secciones», traducido como el resto de la página.

Contraste y foco

El texto se muestra sobre la superficie de la página, tanto en las filas como en el panel abierto. La capa oscura empieza debajo de la cabecera de portada, así que esta nunca queda atenuada.

ParteColor sobre el fondoClaroOscuroAlto contrasteMínimo necesario
Marca y sección actual
--luz-text-primary on --luz-surface-page
15.8:1
15.1:1
21.0:1
4.5:1
Secciones y fecha
--luz-text-secondary on --luz-surface-page
6.2:1
7.5:1
19.3:1
4.5:1
Anillo de foco
--luz-focus-ring on --luz-surface-page
5.6:1
7.7:1
21.0:1
3:1

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

  • Foco: cada enlace y botón de la cabecera conserva el anillo de core, de 2 px y color --luz-focus-ring. La sección actual también está subrayada, así que la indicación no depende solo del color.
  • Bordes: las dos líneas de la fila de secciones (--luz-divider) son decorativas y no tienen un mínimo; se conservan con colores forzados.

Tokens que usa

Los 15 tokens que usan las reglas de .luz-masthead de components/masthead.css del catálogo, agrupados por familia. Cada familia enlaza a su página, donde figuran los valores de todos los modos. En Figma son variables con los mismos nombres: consulta Tokens en Figma.

Spacing and sizing
--luz-control-lg, --luz-space-2xs, --luz-space-md, --luz-space-xs
Typography
--luz-font-heading, --luz-font-sans, --luz-text-2xl, --luz-text-3xl, --luz-text-4xl, --luz-text-sm

La pestaña Código contiene el teclado y ARIA.