Coast
What ten years of tide records say about the bay
Volunteers have read the gauge in the port twice a day since 2016.
Catálogo · Contenido
Dispone una lista de artículos en cuadrícula, con el último más grande, o como una lista compacta de filas. Cada artículo es una tarjeta.
Encaja mejor en: blog — una página que lista artículos: la portada, una categoría, un archivo, resultados de búsqueda
Los mismos artículos en las tres disposiciones. Cada uno es una tarjeta.
Coast
What ten years of tide records say about the bay
Volunteers have read the gauge in the port twice a day since 2016.
Culture
The last tuna nets of the strait
Three families still set the almadraba each spring.
Food
Where the best tortillitas are fried
A short route through four kitchens.
La base: tantas columnas como quepan, ninguna de menos de 16rem.
Coast
What ten years of tide records say about the bay
Volunteers have read the gauge in the port twice a day since 2016.
Culture
Food
luz-post-list--lead: el primer artículo ocupa dos columnas, con su imagen al lado, cuando la lista mide 40rem o más. Si es más estrecha, es una tarjeta como las demás.
luz-post-list--compact: una fila por artículo, con el título y los datos, sin imagen.
3 results for "tide"
Search results: the search box, then a heading that says how many, then the compact list. The posts, the word searched and the counts are placeholders: your search fills them in.
No se conocen.
import "@luz-ds/catalog/components/post-list.css";
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@luz-ds/catalog@0.3.0/dist/components/post-list.min.css" integrity="sha384-kK6zd16AVte8C1ge85pYFbh52scr+Tf3HNyUDxai1uQkIAT9+/5HJOWZZ/zzFn8H" crossorigin="anonymous">
Una lista con una tarjeta en cada elemento. En la lista destacada, el primer elemento lleva su texto en un <div> junto a la imagen:
<ul class="luz-post-list luz-post-list--lead" role="list">
<li>
<article class="luz-card">
<div class="luz-image luz-image--3x2"><img src="/media/tide.jpg" width="600" height="400" alt="" loading="lazy"></div>
<div>
<p class="luz-tag luz-tag--gray u-mb-sm">Coast</p>
<h2 class="luz-card__title"><a href="/2026/10/tide-records/">What ten years of tide records say about the bay</a></h2>
<p class="luz-card__body">Volunteers have read the gauge in the port twice a day since 2016.</p>
<p class="luz-meta"><time datetime="2026-10-12">12 October 2026</time> <span>6 min read</span></p>
</div>
</article>
</li>
<!-- one li for each post; the others have no div around their text -->
</ul>
Una plantilla para la página de resultados de una búsqueda: un <search> con su formulario, un encabezado que dice cuántos resultados hay y la lista compacta. La búsqueda de tu sitio rellena los resultados; el texto de aquí es de ejemplo.
<search>
<form action="/search/">
<label for="q">Search the blog</label>
<input type="search" id="q" name="q" value="tide">
<button type="submit">Search</button>
</form>
</search>
<h2 id="results-title">3 results for "tide"</h2>
<ul class="luz-post-list luz-post-list--compact" role="list" aria-labelledby="results-title">
<li>
<article class="luz-card">
<h3 class="luz-card__title"><a href="/2026/10/tide-records/">What ten years of tide records say about the bay</a></h3>
<p class="luz-meta"><time datetime="2026-10-12">12 October 2026</time> <span>Coast</span></p>
</article>
</li>
<!-- one li for each result -->
</ul>
| Clase | Efecto |
|---|---|
.luz-post-list | En un <ul>: tantas columnas iguales como quepan, ninguna de menos de --luz-post-list-min (16rem), sin viñetas. Cada tarjeta mide lo que la más alta de su fila |
.luz-post-list | Desde 40rem de ancho de lista, el primer elemento ocupa dos columnas y su tarjeta pone la imagen junto al texto, con un título más grande |
.luz-post-list | Una columna, una fila por artículo: el título y, al final, los datos si hay sitio. Omite la imagen y el resumen |
--luz-post-list-min | El ancho mínimo de una columna. Defínelo en la lista o en un ancestro |
CSS de components/post-list.css de @luz-ds/catalog. Define la disposición; el artículo es la tarjeta de core, con la imagen, la etiqueta, el título, el resumen y la línea de datos que elijas.
No cambia nada. Es una lista de tarjetas y el paquete no incluye ningún script.
<ul> se anuncia con su número de elementos («lista, 12 elementos»). Conserva role="list": algunos navegadores quitan la semántica de lista a un <ul> sin viñetas.alt="". Da a la lista un encabezado, o un aria-label, cuando la página tenga más de una.<search> es el punto de referencia de búsqueda, así que el formulario que contiene no necesita role="search": añadirlo anidaría un segundo punto de referencia. Pon los resultados fuera de <search>, en el <main>. Si la página tiene más de un <search>, da nombre a cada uno con aria-label. Da nombre a la lista con el encabezado que cuenta los resultados, mediante aria-labelledby.<title> y en el <h1>. Si tu sitio filtra la lista en el mismo sitio, pon el número en un elemento aparte con role="status": un encabezado no es en vivo, así que el lector de pantalla no avisa del cambio.La pestaña Diseño incluye Contraste y foco.
Úsala siempre que una página muestre varios artículos, para que todas las listas del sitio tengan la misma disposición.
No la uses para una sola tarjeta ni para elementos que no sean artículos.
.o-grid--auto.<time>, y después el tiempo de lectura o la sección. El mismo orden en todas las tarjetas.3 results for "tide"), en el encabezado, el <title> y el <h1> de una página que se carga entera. Si no hay ninguno, dilo y explica cómo seguir: revisa la ortografía o prueba una palabra más corta.Las tarjetas aparecen sobre la superficie de la página, con los mismos colores que cualquier tarjeta.
| Elemento | Color sobre fondo | Claro | Oscuro | Alto contraste | Mínimo |
|---|---|---|---|---|---|
Título | --luz-brand-primary on --luz-surface | 5.9:1 | 7.2:1 | 14.1:1 | 4.5:1 |
Datos | --luz-text-secondary on --luz-surface | 6.4:1 | 6.9:1 | 19.3:1 | 4.5:1 |
Borde bajo el cursor | --luz-input-border on --luz-surface-page | 3.7:1 | 4.2:1 | 21.0:1 | 3:1 |
Anillo de foco | --luz-focus-ring on --luz-surface | 5.9:1 | 7.2: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 es el de WCAG 2.2 AA: 4,5:1 para texto y 3:1 para anillos de foco, bordes e iconos.
--luz-focus-ring alrededor de toda la tarjeta, desde el enlace del título.--luz-divider) es decorativo y no tiene un mínimo.Los 5 tokens que leen las reglas de .luz-post-list de components/post-list.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.
--luz-space-3xs, --luz-space-md, --luz-space-sm, --luz-space-xs--luz-text-xlLa pestaña Código incluye Teclado y ARIA.