Saltar al contenido
Alea0.1
Pro
  1. Alea
  2. Componentes
  3. Datos
  4. Table

Datos

Table

Filas y columnas con orden, selección de filas, encabezado fijo, columnas que cambian de ancho, variantes con franjas y con bordes, tarjetas en móvil, virtualización y un estado vacío.

import { Table, TableHeader, Column, TableBody, Row, Cell } from '@alea/ui';

Ejemplos

Orden y selección

Haz clic en un encabezado para ordenar; las casillas seleccionan filas.

Plugin
Kind
Users
Status
Contrast CheckerAccessibility3,410Live
Palette GeneratorColor1,240Live
Type ScaleType860Live
Spec SheetHandoff120Beta
Icon AuditIcons95Beta

0 selected

Encabezado fijo, compacta, redimensionable

Una altura fija hace scroll en el cuerpo; arrastra los bordes de las columnas.

Token
Sample
--alea-bg
--alea-surface
--alea-surface-deep
--alea-surface-raised
--alea-border
--alea-border-strong
--alea-text
--alea-text-muted
--alea-text-faint
--alea-accent
--alea-accent-strong
--alea-focus

Vacía

renderEmptyState para cuando no hay filas.

File
Format

No exports yet

Export tokens from the Figma plugin and they show up here.

Rayada, con bordes y tarjetas en teléfonos

variant cambia el aspecto; stackBelow convierte las filas en tarjetas en pantallas pequeñas (cada celda muestra su etiqueta).

Name
Role
City
Ana RivasDesignerCaracas
Bruno DíazEngineerMadrid
Carla MendesWriterLisbon
Name
Role
City
Ana RivasDesignerCaracas
Bruno DíazEngineerMadrid
Carla MendesWriterLisbon

Tokens

Los tokens de diseño que usa este componente, con su valor en el tema actual. Cambia cualquiera para darle otro estilo.

Color

  • --alea-border…
  • --alea-focus…
  • --alea-surface…
  • --alea-surface-deep…
  • --alea-surface-raised…
  • --alea-text-muted…

Space

  • --alea-space-2…
  • --alea-space-4…

Radius

  • --alea-radius-md…

Type

  • --alea-font-size-md…
  • --alea-font-size-sm…

Props

Table props

Datos en filas y columnas: orden, selección de filas, encabezado fijo, cambio de tamaño, navegación de grilla con el teclado.

PropTipoPor defectoDescripción
density"compact" | "comfortable"'comfortable'Filas compact (40 px) o comfortable (52 px, por defecto).
maxHeightstring | number-Altura máxima del área con scroll, por ejemplo 400.
resizableboolean-Permite arrastrar los bordes de las columnas para cambiar su tamaño.
stackBelow"sm" | "md"-Por debajo de este breakpoint cada fila pasa a ser una tarjeta, cada celda con la etiqueta de su columna (dale un label a Cell).
stickyHeaderboolean-El encabezado sigue visible mientras el cuerpo tiene scroll (necesita una altura en el contenedor).
variant"default" | "striped" | "bordered"'default'default, striped (filas con tonos alternados) o bordered (también líneas entre columnas).
virtualized{ rowHeight: number; headingHeight?: number; }-Muestra solo las filas en pantalla, para miles de filas: altura de fila fija en px (necesita maxHeight).

Column props

Un encabezado de columna; allowsSorting muestra la flecha de orden y lo hace presionable.

PropTipoPor defectoDescripción
align"start" | "end" | "center"'start'Alinea los números a la derecha.
childrenReactNode-Los hijos del componente. Puede ser una función para cambiar los hijos según el estado del componente.

Row props

Una fila; con selección empieza con una casilla.

PropTipoPor defectoDescripción
childrenReactNode-Los elementos que forman la tabla. Incluye TableHeader, TableBody, Columns y Rows. (heredada)
classNameClassNameOrFunction<TableRenderProps>-El [className](https://developer.mozilla.org/en-US/docs/Web/API/Element/className) CSS del elemento. Puede ser una función para calcular la clase según el estado del componente. (heredada)
hrefstring-Una URL a la que enlazar. Ver [MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#href). (heredada)
idKey-El id único de la columna. (heredada)
isDisabledboolean-Si la fila está deshabilitada. (heredada)
onPress((e: PressEvent) => void)-Se llama cuando se suelta la presión sobre el objetivo. (heredada)
styleStyleOrFunction<DisclosureGroupRenderProps>-El [style](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/style) en línea del elemento. Puede ser una función para calcular el estilo según el estado del componente. (heredada)
targetHTMLAttributeAnchorTarget-La ventana de destino del enlace. Ver [MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#target). (heredada)
textValuestring-Una representación en texto del contenido de la columna, usada en los anuncios de accesibilidad. (heredada)
valueobject-El objeto que representa esta fila. Con colecciones dinámicas se define automáticamente. (heredada)

Cell props

PropTipoPor defectoDescripción
align"start" | "end" | "center"-Alineación del texto: start (por defecto), center, o end para números.
labelstring-El nombre de la columna, mostrado antes del valor cuando la tabla se apila en tarjetas (stackBelow).

Especificaciones

Generado desde el código: las variantes de los tipos, los estados y tokens del CSS, y los patrones de motion que aplican. Las grillas muestran el componente real en ambos temas; los números se miden en la página.

Table

Variantes
densitycompactcomfortable
stackBelowsmmd
variantdefaultstripedbordered
Estados
Keyboard focusSelectedHover
Oscuro y claro
Cada color viene de tokens del tema, así que sigue a data-theme (y a presets como Graphite) en la página o en cualquier contenedor. El contraste se revisa en ambos temas.
Clases para estilos
.alea-table.alea-table-wrap
Atributos data
data-stickydata-density=compactdata-variant=stripeddata-variant=bordereddata-virtualizeddata-stackdata-labeldata-stack=mddata-align=enddata-align=center

Column

Variantes
alignstartendcenter
Estados
HoverKeyboard focus
Oscuro y claro
Cada color viene de tokens del tema, así que sigue a data-theme (y a presets como Graphite) en la página o en cualquier contenedor. El contraste se revisa en ambos temas.
Clases para estilos
.alea-th.alea-th-inner.alea-th-label.alea-sort.alea-col-resizer
Atributos data
data-stickydata-allows-sortingdata-align=enddata-align=centerdata-direction=ascendingdata-direction=descendingdata-resizingdata-variant=bordereddata-virtualized

Row

Estados
HoverSelectedKeyboard focusDisabled
Motion
tint
Oscuro y claro
Cada color viene de tokens del tema, así que sigue a data-theme (y a presets como Graphite) en la página o en cualquier contenedor. El contraste se revisa en ambos temas.
Clases para estilos
.alea-tr.alea-td.alea-td-narrow
Atributos data
data-hrefdata-actiondata-density=compactdata-align=enddata-align=centerdata-emptydata-variant=stripeddata-variant=bordereddata-stackdata-labeldata-stack=mddata-virtualized

Cell

Variantes
alignstartendcenter
Estados
Keyboard focus
Oscuro y claro
Cada color viene de tokens del tema, así que sigue a data-theme (y a presets como Graphite) en la página o en cualquier contenedor. El contraste se revisa en ambos temas.
Clases para estilos
.alea-td
Atributos data
data-density=compactdata-align=enddata-align=centerdata-emptydata-variant=bordereddata-stackdata-labeldata-stack=mddata-virtualized

Accesibilidad

  • Una grilla: las flechas se mueven entre celdas, y el orden se anuncia con aria-sort.
  • Marca una columna con isRowHeader para que las filas tengan nombre.

Teclado

TeclaAcción
FlechasSe mueven entre celdas
Enter (encabezado)Ordena
EspacioElige la fila
⌘A / Ctrl+AElige todo

Qué hacer y qué evitar

Hacer

  • Alinea los números a la derecha (align="end").
  • Usa renderEmptyState.

Evitar

  • No uses una tabla para maquetar.
Probado con axe, teclado y roles de lector de pantalla