Table
Tabla nativa con un adaptador interactivo opcional.
- Navegadores
- Chrome 123+Firefox 121+Safari 17.5+
- Nivel
- 0
- Tamaño comprimido
- 617 B
- Presupuesto de diseño forzado
- 0 ms
- Presupuesto de axe
- 0
- Compatible con SSR
- Sí
- Contrato publicado
- Entorno de pruebas
Zona de pruebas
Table
Ejemplo de tabla nativa
| Nombre | Rol | Estado |
|---|---|---|
| Alice Chen | Administrador | Activo |
| Bob Smith | Editor | Activo |
| Carol Lee | Lector | Invitado |
| 3 miembros · 2 activos | ||
Ordenar, filtrar y expandir
| Rol | Detalles | ||
|---|---|---|---|
| Alice Chen | Administrador | ||
| alice@example.com · Activo | |||
| Bob Smith | Editor | ||
| bob@example.com · Activo | |||
| Carol Lee | Lector | ||
| carol@example.com · Invitado | |||
| 3 miembros · 0 seleccionados | |||
Encabezados, pie y columnas fijos
API
Table.Root (native)
| Prop | Tipo | Predeterminado | Descripción |
|---|---|---|---|
layout | "auto" | "fixed" | "auto" | Distribución de tabla nativa. La selección, el ordenamiento y la expansión usan la entrada explícita TableClient. |
size | "sm" | "md" | "lg" | — | Espaciado de celdas de la hoja de estilos seleccionada. |
variant | "solid" | "outline" | "ghost" | — | Variante de superficie de la hoja de estilos seleccionada. |
render | ReactElement | ((props, state) => ReactElement) | — | Reemplaza el elemento renderizado y conserva las conexiones de comportamiento y accesibilidad. |
Table.Footer
| Prop | Tipo | Predeterminado | Descripción |
|---|---|---|---|
sticky | boolean | — | Fija el pie al final del eje de bloque del contenedor de desplazamiento. |
render | ReactElement | ((props, state) => ReactElement) | — | Reemplaza el elemento renderizado y conserva las conexiones de comportamiento y accesibilidad. |
Table.RowHeader / Table.Cell / Table.ColumnHeader
| Prop | Tipo | Predeterminado | Descripción |
|---|---|---|---|
align | "start" | "center" | "end" | "start" | Alineación lógica del texto de esta celda. |
sticky | "start" | "end" | — | Fija una celda al borde lógico del eje en línea. Para celdas fijas contiguas, establece --uiify-table-sticky-offset en cada una. |
render | ReactElement | ((props, state) => ReactElement) | — | Reemplaza el elemento renderizado y conserva las conexiones de comportamiento y accesibilidad. |
TableClient.ExpandTrigger / TableClient.ExpandedRow
| Prop | Tipo | Predeterminado | Descripción |
|---|---|---|---|
rowId* | string | — | Clave de fila compartida que conecta el botón de expansión con su <tr> nativo. Coloca un <td colSpan={columnCount}> dentro de la fila expandida. |
TableClient.Root — @gunkin/uiify/components/table/client
| Prop | Tipo | Predeterminado | Descripción |
|---|---|---|---|
aria-label | string | — | Nombre accesible de la tabla cuando no hay un título o encabezado visible que la identifique. |
aria-labelledby | string | — | Id del elemento que etiqueta la tabla. |
selectionMode | "none" | "single" | "multiple" | "none" | Indica si se pueden seleccionar filas y cuántas a la vez; "none" renderiza una tabla estática simple sin rol grid. |
selectionBehavior | "toggle" | "replace" | — | Indica si hacer clic en una fila la añade a la selección o reemplaza la selección actual. |
defaultSelectedKeys | Iterable<string> | — | Ids de filas seleccionadas inicialmente; la selección queda no controlada dentro del componente. |
selectedKeys | Iterable<string> | — | Ids de filas seleccionadas actualmente; la selección queda controlada por quien llama. |
onSelectionChange | (selectedKeys: Set<string>) => void | — | Se llama con el nuevo conjunto de ids de filas seleccionadas cada vez que cambia la selección. |
defaultSortDescriptor | SortDescriptor | null | — | Columna y dirección del ordenamiento inicial; el estado de ordenamiento queda no controlado dentro del componente. |
sortDescriptor | SortDescriptor | null | — | Columna y dirección del ordenamiento actual; el ordenamiento pasa a ser controlado. |
onSortChange | (descriptor: SortDescriptor | null) => void | — | Se llama con el nuevo descriptor de ordenamiento, o null, al activar el encabezado de una columna ordenable. |
expandedKeys / defaultExpandedKeys | Iterable<string> | — | Claves de filas expandidas controladas o iniciales. |
onExpandedChange | (keys: Set<string>) => void | — | Informa las solicitudes de expansión. Las filas controladas esperan a que se actualicen las claves. |
render | ReactElement | ((props, state) => ReactElement) | — | Reemplaza el elemento renderizado y conserva las conexiones de comportamiento y accesibilidad. |
Table.Header
| Prop | Tipo | Predeterminado | Descripción |
|---|---|---|---|
sticky | boolean | false | Fija esta sección al contenedor de desplazamiento; Header usa el inicio del bloque y Footer, el final. |
render | ReactElement | ((props, state) => ReactElement) | — | Reemplaza el elemento renderizado y conserva las conexiones de comportamiento y accesibilidad. |
Table.Body
| Prop | Tipo | Predeterminado | Descripción |
|---|---|---|---|
children | ReactNode | — | Las filas del cuerpo de la tabla. |
render | ReactElement | ((props, state) => ReactElement) | — | Reemplaza el elemento renderizado y conserva las conexiones de comportamiento y accesibilidad. |
Table.Row
| Prop | Tipo | Predeterminado | Descripción |
|---|---|---|---|
id* | string | — | Id estable de fila que se usa como clave de selección y como id del elemento. |
disabled | boolean | false | Impide seleccionar la fila o darle el foco con el teclado. |
selected | boolean | — | Marca la fila como seleccionada en el marcado renderizado en el servidor antes de que el almacén de selección tome el control. |
render | ReactElement | ((props, state) => ReactElement) | — | Reemplaza el elemento renderizado y conserva las conexiones de comportamiento y accesibilidad. |
Table.ColumnHeader
| Prop | Tipo | Predeterminado | Descripción |
|---|---|---|---|
id* | string | — | Id de columna al que hacen referencia los descriptores de ordenamiento. |
allowsSorting | boolean | false | Hace que el encabezado alterne el orden de su columna y exponga aria-sort. |
sortDirection | "ascending" | "descending" | null | — | Dirección de ordenamiento renderizada para esta columna; se usa en el marcado inicial del servidor cuando se permite ordenar. |
onClick | React.MouseEventHandler<HTMLTableCellElement> | — | Se ejecuta antes de ordenar; preventDefault() impide el cambio de orden. |
children | ReactNode | — | La etiqueta del encabezado. |
render | ReactElement | ((props, state) => ReactElement) | — | Reemplaza el elemento renderizado y conserva las conexiones de comportamiento y accesibilidad. |
Table.Cell
| Prop | Tipo | Predeterminado | Descripción |
|---|---|---|---|
children | ReactNode | — | El contenido de la celda. |
render | ReactElement | ((props, state) => ReactElement) | — | Reemplaza el elemento renderizado y conserva las conexiones de comportamiento y accesibilidad. |
Table.Caption
| Prop | Tipo | Predeterminado | Descripción |
|---|---|---|---|
children | ReactNode | — | El texto del título que describe la tabla. |
render | ReactElement | ((props, state) => ReactElement) | — | Reemplaza el elemento renderizado y conserva las conexiones de comportamiento y accesibilidad. |
Table.RowSelect
| Prop | Tipo | Predeterminado | Descripción |
|---|---|---|---|
rowId* | string | — | Id de la fila que esta casilla selecciona y deselecciona. |
Teclado
| Tecla | Acción |
|---|---|
| Tab | Dar el foco a los controles de ordenamiento, selección y expansión de TableClient |
| Enter / Space | Activar un botón de ordenamiento o expansión con foco; cambiar una casilla de verificación |
| Arrow keys | Moverse entre las filas seleccionables del cuerpo en TableClient |
Accesibilidad
Table renderiza de forma predeterminada <table>, <caption>, <thead>, <tbody> y <tfoot> nativos sin JavaScript de cliente; usa ColumnHeader y RowHeader para la semántica de encabezados. La entrada /client añade ordenamiento, selección, navegación por filas con teclado y expansión controlada, expuestos mediante aria-sort, aria-expanded y aria-controls. ExpandedRow es un <tr> nativo; coloca dentro un Cell con colSpan. El filtrado y el orden de los datos quedan a cargo del consumidor.
Puntos de estilo
data-uiify-tabledata-partdata-layoutdata-sizedata-variantdata-stickydata-selecteddata-disabled--uiify-table-sticky-offset