Table
Paquete: @tiendana/web-foundation
Tablas con estilo consistente del design system para visualización de datos estructurados.
Características
✅ Estilo consistente - Usa tokens del design system
✅ Bordes optimizados - Separación clara entre filas
✅ Encabezados destacados - Fondo y tipografía diferenciada
✅ Estados de celda - Focus, invalid, dirty para formularios
✅ Alineación flexible - Clase .center para centrado
✅ Hover de fila - Resalta la fila bajo el cursor
✅ Dark mode - Encabezados y hover se adaptan con body.scheme-dark
✅ Integración con tdn-form-element - Los campos dentro de una celda se muestran sin borde propio
Demos Visuales
Tabla Básica
- CSS/HTML/Angular
- Flutter
Ver código
Documentación de Flutter disponible próximamente.
Con Estados de Celda
- CSS/HTML/Angular
- Flutter
Ver código
Estructura HTML
<!-- Tabla básica -->
<table class="table">
<thead>
<tr>
<th>Columna 1</th>
<th>Columna 2</th>
<th class="center">Centrado</th>
</tr>
</thead>
<tbody>
<tr>
<td>Dato 1</td>
<td>Dato 2</td>
<td class="center">Dato 3</td>
</tr>
</tbody>
</table>
Con Formularios
<table class="table">
<thead>
<tr>
<th>Campo</th>
<th>Valor</th>
</tr>
</thead>
<tbody>
<tr>
<td class="has-form-fields">
<input type="text" />
</td>
<td class="has-form-fields focus">
<input type="number" />
</td>
</tr>
</tbody>
</table>
Documentación de Flutter disponible próximamente.
Props / API
- CSS/HTML - Angular
- Flutter
CSS Classes - Tabla Base
| Clase | Descripción |
|---|---|
table.table | Aplica estilo base. El selector exige el elemento <table>: .table sobre otro elemento no tiene efecto |
CSS Classes - Alineación
| Clase | Elemento | Descripción |
|---|---|---|
.center | <th> o <td> | Centra el texto horizontalmente (text-align: center) |
CSS Classes - Estados de Celda (para formularios)
| Clase | Elemento | Descripción |
|---|---|---|
.has-form-fields | <td> | Marca la celda como contenedor posicionado de campos de formulario (position: relative) |
.focus | <td> | Estado enfocado (anillo interior --color-natura de --border-width-medium) |
.dirty | <td> | Campo modificado (punto --color-lavender en la esquina superior derecha) |
.invalid | <td> | Campo inválido (anillo interior --color-error) |
Documentación de Flutter disponible próximamente.
Características Técnicas
Estilos Base
- Bordes sutiles entre filas
- Padding consistente en celdas
- Encabezados con fondo diferenciado
- Tipografía optimizada
Estados Interactivos
- Focus: Borde verde cuando campo está enfocado
- Dirty: Indicador visual de campo modificado
- Invalid: Borde rojo para errores de validación
- Diseñado para tablas editables con formularios
Campos tdn-form-element en celdas
- Dentro de un
<td>, un.tdn-form-elementpierde borde, radio y fondo propios y ocupa--spacing-xlde alto mínimo - Con
.tdn-form-element--focusel campo (input,.input-groupo.tdn-select) toma fondo--color-gray-100(--color-gray-200en dark mode) en lugar de la sombra de foco - Ver form-element para el resto de clases de estado
Ver También
- Foundations - Colors - Paleta de colores
- Foundations - Borders - Sistema de bordes
- Foundations - Spacing - Espaciado consistente