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

DatosAlea Pro

DataGrid

Una grilla de datos completa: búsqueda, filtros por columna, orden, visibilidad de columnas, columnas fijas, densidad, selección con acciones masivas, edición en línea, filas expandibles, datos en árbol, fila de resumen, carga, paginación o virtualización, y exportación a CSV.

import { DataGrid } from '@alea/pro';

Ejemplos

Todo activado

Busca, ordena, oculta columnas, cambia la densidad, selecciona filas para acciones masivas, edita nombres en línea, pagina y exporta.

Plugin
Kind
Users
Status
Color40Beta
Accessibility437Live
Type834Live
Handoff1,231Live
Icons1,628Live
Tokens2,025Beta
Color2,422Live
Accessibility2,819Live

28 filas

Solo lectura

Sin selección, sin edición, todas las filas: una lista que se puede ordenar y buscar.

Token
Dark
Light
accent/default#cd57ff#940dc2
text/default#f7f7f7#111011
surface/default#1d1c1b#ffffff
status/success#3ddc84#006535

Filas expandibles y datos en árbol

renderDetail abre una fila de detalle bajo cada fila; childRows muestra los hijos con sangría.

Detalles
Order
Customer
Total
Status
A-1042Northwind$1240Paid
A-1043Globex$320Pending
A-1044Initech$2980Paid
Name
Size
src820 KB
docs210 KB

Filtros, columnas fijas y un resumen

Filtra por equipo o nombre, mantén Name fija al desplazarte de lado, totales abajo.

Team
City
Name
Team
Tasks
Hours
Score
City
Ana RivasDesign42060Caracas
Bruno DíazCode113377Madrid
Carla MendesDocs72194Lisbon
Dario SilvaDesign143471Bogotá
Eva LinCode102288Caracas
Resumen87422479.5

8 filas

5.000 filas, virtualizadas

Solo se dibujan las filas en pantalla; el scroll sigue fluido. La búsqueda y el orden siguen cubriendo todas las filas.

SKU

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-accent-subtle…
  • --alea-border-strong…
  • --alea-surface…
  • --alea-surface-deep…
  • --alea-surface-hover…
  • --alea-text…
  • --alea-text-muted…

Space

  • --alea-space-2…
  • --alea-space-3…
  • --alea-space-4…
  • --alea-space-6…

Radius

  • --alea-radius-full…

Type

  • --alea-font-weight-semibold…

Motion

  • --alea-motion-duration-base…
  • --alea-motion-ease-emphasized…
  • --alea-motion-ease-out…

Props

DataGrid props

Una grilla de datos completa: búsqueda, filtros por columna, orden, visibilidad y fijado de columnas, densidad, selección con acciones masivas, edición en línea, filas expandibles, datos en árbol, fila de resumen, paginación o virtualización, y exportación a CSV.

PropTipoPor defectoDescripción
aria-labelobligatoriastring-Nombre de la grilla para lectores de pantalla.
columnsobligatoriaGridColumn<T>[]-Las columnas: key, label, y opcionalmente format, render, sortable, editable, hidden, align, width, filter, pinned, summary.
rowsobligatoriaT[]-Las filas; cada una necesita un id único.
bulkActions((selected: T[]) => ReactNode)-Botones de la barra que actúan sobre las filas seleccionadas.
childRows((row: T) => T[])-Datos en árbol: los hijos de una fila, mostrados con sangría cuando se abre.
classNamestring-Clases extra para el elemento raíz.
emptyTitleReactNode-Se muestra cuando no hay filas (o ninguna coincide).
exportNamestring | null'data.csv'Nombre de archivo para Exportar. Por defecto "data.csv". Déjalo en null para ocultar Exportar.
isLoadingboolean-Muestra filas de esqueleto mientras cargan los datos.
onCellEdit((row: T, key: keyof T, value: string) => boolean | void)-Se llama cuando se edita una celda: devuelve false para rechazar el valor.
pageSizenumber10Filas por página. Por defecto 10; 0 muestra todas.
renderDetail((row: T) => ReactNode)-Filas expandibles: lo que se muestra bajo una fila cuando se abre (maestro-detalle).
selectionMode"single" | "multiple" | "none"'multiple'Selección de filas none, single o multiple. Por defecto multiple.
stackBelow"sm" | "md"-Por debajo de este breakpoint las filas pasan a ser tarjetas.
virtualizednumber-Muestra solo las filas en pantalla (sin paginación): para miles de filas. La altura de fila en px.

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.

Variantes
selectionModesinglemultiplenone
stackBelowsmmd
Estados
Hover (CSS)Disabled
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-pin.alea-grid-toggle.alea-grid-tree.alea-grid-toggle-space.alea-datagrid.alea-datagrid-bar.alea-datagrid-search.alea-datagrid-tools.alea-datagrid-bulk.alea-datagrid-filters.alea-th-narrow.alea-datagrid-loading

Accesibilidad

  • Basada en Table: una grilla con flechas entre celdas y aria-sort.
  • Las celdas editables son botones llamados "valor, editar columna de fila"; Enter guarda, Escape cancela, y un valor rechazado se marca como inválido.
  • La barra de herramientas es un toolbar con nombre.

Teclado

TeclaAcción
FlechasSe mueven entre celdas
Enter (en una celda editable)Edita; Enter otra vez guarda
EscapeCancela la edición
EspacioElige la fila

Qué hacer y qué evitar

Hacer

  • Marca una columna con isRowHeader.
  • Devuelve false desde onCellEdit para rechazar un valor.

Evitar

  • No la uses para pocas filas: Table es más liviana.

En Figma

Plantilla de grilla de datos con barra de herramientas, encabezado, filas en tres estados y paginación.

Probado con axe, teclado y roles de lector de pantalla