Table
Una tabla organiza muchos elementos del mismo tipo en filas y columnas, para comparar y actuar. En móvil, cada fila se convierte en una tarjeta.
En esta página
Playground
| Nombre | Cuándo | Situación | Ejecuciones | Acciones |
|---|---|---|---|---|
| Copia semanal | Domingo, 3 h | Al día | 48 | Editar Copia semanal |
| Regar las plantas | Martes, 9 h | Atrasado | 3 | Editar Regar las plantas |
<div style="inline-size: 100%"><div class="feitio-table-scroll" tabindex="0" role="region" aria-label="Nombre"><table class="feitio-table"><thead><tr><th scope="col">Nombre</th><th scope="col">Cuándo</th><th scope="col">Situación</th><th scope="col" data-align="end">Ejecuciones</th><th scope="col"><span class="feitio-visually-hidden">Acciones</span></th></tr></thead><tbody><tr><td class="title">Copia semanal</td><td data-label="Cuándo">Domingo, 3 h</td><td data-label="Situación"><span class="feitio-tag" data-status="ok"><svg class="feitio-icon" aria-hidden="true"><use href="/feitio/icons/sprite.svg#feitio-check"></use></svg>Al día</span></td><td data-align="end" data-label="Ejecuciones">48</td><td class="actions"><a class="feitio-button" href="#playground" data-size="small">Editar<span class="feitio-visually-hidden"> Copia semanal</span></a></td></tr><tr><td class="title">Regar las plantas</td><td data-label="Cuándo">Martes, 9 h</td><td data-label="Situación"><span class="feitio-tag" data-status="warn"><svg class="feitio-icon" aria-hidden="true"><use href="/feitio/icons/sprite.svg#feitio-warn"></use></svg>Atrasado</span></td><td data-align="end" data-label="Ejecuciones">3</td><td class="actions"><a class="feitio-button" href="#playground" data-size="small">Editar<span class="feitio-visually-hidden"> Regar las plantas</span></a></td></tr></tbody></table></div></div>Cuándo usarlo
- Para elementos comparados por las mismas características: horarios con cuándo y quién, servicios con estado.
- En pantallas de trabajo, casi siempre con
data-density="compact".
Cuándo no usarlo
- Un elemento, varias características: SummaryList.
- Cosas por hacer, cada una con un estado: TaskList.
- Para maquetar la página: una tabla es datos, nunca posicionamiento.
Ejemplos
| Nombre | Cuando | Estado | Ejecuta | Acciones |
|---|---|---|---|---|
| Respaldo semanal | Domingo, 3 am | On time | 48 | Editar copio semanal |
| Regar las plantas | Martes, 9 am | Late | 3 | Editar regar las plantas |
| Informe mensual | El 1º, 8 am | Paused | 1.204 | Editar informe mensual |
Una mesa de trabajo
Encabezado con la línea de tinta, números a la derecha y cada acción de fila al final.
Mostrar código
<div class="feitio-table-scroll" tabindex="0" role="region" aria-labelledby="agendamentos">
<table class="feitio-table">
<caption id="agendamentos">Agendamentos</caption>
<thead><tr><th scope="col">Nome</th>…<th scope="col" data-align="end">Disparos</th></tr></thead>
<tbody><tr><td class="title">Backup semanal</td>…<td data-align="end" data-label="Disparos">48</td></tr></tbody>
</table>
</div>| Nombre | Cuando | Estado | Ejecuta | Acciones |
|---|---|---|---|---|
| Respaldo semanal | Domingo, 3 am | On time | 48 | Editar copio semanal |
| Regar las plantas | Martes, 9 am | Late | 3 | Editar regar las plantas |
| Informe mensual | El 1º, 8 am | Paused | 1.204 | Editar informe mensual |
En móvil
En un cuadro más estrecho que 40rem, cada fila se convierte en una tarjeta: el nombre arriba, cada valor con su nombre de columna al lado (data-label), las acciones abajo.
Mostrar código
<td class="title">Backup semanal</td>
<td data-label="Quando">Domingo, 3h</td>Ordenar por encabezado
La columna de ordenación es un enlace: el servidor devuelve la página ordenada. La columna ordenada obtiene aria-sort y la flecha.
Mostrar código
<th scope="col" aria-sort="ascending"><a href="?ordem=prazo">Prazo…</a></th>Acción por lotes
Un cuadro por fila y las acciones por lotes arriba, en botones pequeños. Es un formulario: los cuadros marcados van junto con el botón presionado.
Mostrar código
<form action="/tarefas/lote" method="post">
<button type="submit" name="acao" value="concluir" class="feitio-button" data-size="small">Concluir selecionadas</button>
…
<td class="select"><input type="checkbox" name="ids" value="12" aria-label="Selecionar revisar o contrato"></td>
</form>Sin filas, la tabla se convierte en un EmptyState, a la vez de las filas. Nunca un encabezado solo con nada debajo.
Anatomía
| Nombre | Ejecuta | Acciones |
|---|---|---|
| Respaldo | 48 |
- Título: el nombre de la tabla, leído por lectores de pantalla.
- Título: texto suave, con la línea de tinta debajo.
- Fila: separada de la siguiente por una línea muy fina.
- Números a la derecha, con cifras de anchura igual.
- Acción de fila: un pequeño botón, al final.
Estados
- Pasa el ratón sobre una fila: un tono ligeramente más oscuro, muy claro, para que el ojo mantenga la fila. No es selección.
- Densidad: cómodo para leer, compacto en pantallas de trabajo; el interruptor se anima.
- Caja estrecha: cada fila se convierte en una tarjeta. Caja media y tabla ancha: se desliza dentro de su propia caja; la página nunca se desliza lateralmente.
Hacer y no hacer
Do
| Elemento | Valor |
|---|---|
| Fotos | 1.204 |
| Videos | 38 |
Números a la derecha: las cifras se alinean y la comparación es a simple vista.
Don’t
| Elemento | Valor |
|---|---|
| Fotos | 1.204 |
| Videos | 38 |
Todo centrado: los números no se alinean.
Do
| Respaldo |
La acción con una palabra, pequeña, al final de la fila.
Don’t
| Respaldo | |
| Plantas |
Cintas alternadas y acciones solo con iconos: ruido, y nadie sabe qué hace el icono.
Escritura
- Encabezado: una o dos palabras, sin repetir la unidad en cada celda.
- Celda vacía: un guion, con texto oculto ("no fecha de entrega") para lectores de pantalla.
Accesibilidad
<caption>con el nombre y<th scope="col">en cada encabezado.- La acción de cada fila dice a qué fila pertenece ("Editar copia semanal"), con texto oculto.
- El cuadro deslizable es una región nombrada y toma el foco.
Atributos
| Atributo | Valores | Para qué sirve |
|---|---|---|
class="feitio-table" | obligatorio | Líneas divisorias, encabezado con la línea de tinta, figuras de mismo ancho. |
class="feitio-table-scroll" tabindex="0" | alrededor | Mide su propio ancho: estrecho, se convierte en tarjetas; medio, desliza. Con tabindex="0", role="region" y un nombre. |
class="title" | en la celda de nombre | El título de la tarjeta en móvil. |
data-label | en las otras celdas | El nombre de la columna, junto al valor en la tarjeta. |
data-align="end" | en la columna numérica | Números a la derecha. |
class="actions" | en la celda de acciones | Botones pequeños, al final. |
aria-sort | "ascending", "descending" | En la columna ordenada. |