Saltar al contenido principal

Catálogo · Gráficos

Lista de barras

Compara unos pocos valores con una lista de nombres, cifras y barras, mediante el elemento meter nativo.

Encaja mejor en: app — un informe o un resumen que compara unos pocos tamaños, recuentos o proporciones

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

Paquetes por ruta esta semana.

  • Sevilla1,204
  • Cádiz312
Parcels per route, this week

En celdas

La misma lista con el medidor cortado en celdas pequeñas, una cifra en negrita y un pie que lleva un total en negrita y una nota: el patrón de la tarjeta Light de la página de inicio, que compara el tamaño de tres paquetes. Los nombres, los tamaños y la nota de aquí son inventados; las cifras, las palabras y la unidad las escribes tú.

  • Home42 KB
  • Docs28 KB
  • Blog14 KB
84 KB in all, sample data.

Problemas conocidos

No se conocen problemas.

Código

Copiar el marcado

Bundler
import "@luz-ds/catalog/components/bar-list.css";
HTML
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@luz-ds/catalog@0.3.0/dist/components/bar-list.min.css" integrity="sha384-Xl3NzktxixQWSXVFEmjRxNMgf0ez9vdz5p03hix/CwaM9sMmZZWIxrG1tYeDXVuy" crossorigin="anonymous">

Una hoja de estilos de @luz-ds/catalog: enlaza components/bar-list.css después de luz.css.

HTML
<figure class="luz-bar-list">
  <ul class="luz-bar-list__rows">
    <li class="luz-bar-list__row">
      <span class="luz-bar-list__name">Sevilla to Madrid</span>
      <span class="luz-bar-list__figure">1,204</span>
      <meter class="luz-bar-list__meter" max="1500" value="1204" aria-hidden="true">1,204 of 1,500</meter>
    </li>
  </ul>
  <figcaption>Parcels per route, this week</figcaption>
</figure>

La variante en celdas, como la usa la página de inicio para los tamaños:

HTML
<figure class="luz-bar-list luz-bar-list--cells">
  <ul class="luz-bar-list__rows" aria-label="Pages by size">
    <li class="luz-bar-list__row">
      <span class="luz-bar-list__name">Home</span>
      <span class="luz-bar-list__figure"><strong>42 KB</strong></span>
      <meter class="luz-bar-list__meter" min="0" max="42" value="42" aria-hidden="true">42 KB</meter>
    </li>
  </ul>
  <figcaption class="u-text-muted"><strong>84 KB</strong> in all.</figcaption>
</figure>

Variantes y opciones

OpciónEfecto
luz-bar-list--cells
Celdas pequeñas en lugar de una barra continua, como en el segundo ejemplo: la que usa la página de inicio para los tamaños
luz-bar-list__row--zero
Cifra en el color de marca, para una fila en 0
--luz-bar-list-color
Otro color de gráfico para una lista o una fila, como var(--luz-chart-2)
--luz-bar-list-row-h
Una misma altura de fila, para alinear listas una junto a otra

Cómo funciona

Una lista en un figure: cada fila es un nombre, una cifra y un meter nativo, dibujado en --luz-chart-1 con la pista en --luz-chart-track. Da el mismo max a todas las filas. Un nombre largo se corta en una línea. A diferencia de .luz-meter, el medidor no tiene ancho mínimo, así que nunca ensancha una tarjeta estrecha.

Sin JavaScript

No lo necesita. Sin la hoja de estilos se lee como una lista de nombres y cifras.

Teclado y ARIA

Nada recibe el foco. El nombre y la cifra son texto: oculta la barra con aria-hidden="true". Un medidor que se deje visible necesita un nombre.

El contraste y el foco están en la pestaña Diseño.

Diseño

Cuándo usarla

Úsala para comparar unos pocos valores en una misma escala: tamaños, recuentos, partes. Las celdas sirven para pocas comparaciones breves, como el tamaño de tres archivos o la parte de tres fuentes.

Cuándo no usarla

No la uses para un solo valor (usa un medidor) ni para una tendencia en el tiempo. Conserva una tabla cuando importen más los valores exactos.

Qué hacer y qué no

Hazlo Da a todas las filas el mismo max y su cifra en texto: la longitud permite comparar y el número indica cuánto hay.
No lo hagas Una escala propia en cada fila: 312 de 400 parece más que 1.204 de 1.500.

Cómo escribir el contenido

Indica la unidad y el periodo en el pie («Paquetes por ruta, esta semana»), mantén cada nombre corto y escribe la cifra con su unidad.

Contraste y foco

El relleno es un color de gráfico; la pista es más discreta a propósito, porque la cifra lleva el valor.

ParteColor sobre el fondoClaroOscuroAlto contrasteRequisitos
Barra sobre su pista
--luz-chart-1 on --luz-chart-track
3.4:1
3.8:1
6.8:1
2:1
Barra sobre la página
--luz-chart-1 on --luz-surface-page
5.6:1
7.7:1
14.1:1
3:1
Barra sobre una tarjeta
--luz-chart-1 on --luz-surface
5.9:1
7.2:1
14.1:1
3:1
Nombre
--luz-text-secondary on --luz-surface-page
6.2:1
7.5:1
19.3:1
4.5:1
Cifra de una fila en 0
--luz-brand-primary on --luz-surface-page
5.6:1
7.7:1
14.1:1
4.5:1

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

  • Foco: nada lo recibe.
  • No solo color: cada barra tiene su cifra en texto.

Tokens que usa

Los 12 tokens que lee components/bar-list.css, agrupados por familia. Cada familia enlaza a su página, con los valores de cada modo. En Figma son variables con los mismos nombres: consulta Tokens en Figma.

Typography
--luz-font-mono, --luz-font-sans, --luz-text-sm, --luz-text-xs
Radius
--luz-radius-sm
Spacing and sizing
--luz-space-3xs, --luz-space-sm, --luz-space-xs

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