Composant de tableau de données. Supporte les variantes de bordure, le zébrage des lignes, le survol, les couleurs par élément et les modificateurs de taille via des variables CSS.
| Nom | Rôle | Âge |
|---|---|---|
| Alice | Développeuse front-end | 28 |
| Bruno | Designer UI | 34 |
| Clara | Chef de projet | 41 |
| Total | — | 3 membres |
| Nom | Statut | Priorité | Score |
|---|---|---|---|
| Alice | Bloquée | Haute | 42 |
| Alice | Bloquée | Haute | 42 |
| Clara | En attente | Basse | 61 |
| Bruno | En cours | Moyenne | 87 |
| Denis | En cours | Haute | 95 |
| Eva | En attente | Critique | 18 |
| Léa | En attente | Basse | 23 |
| Moyenne | — | — | 60.6 |
| Colonne 1 | Colonne 2 | Colonne 3 |
|---|---|---|
| Cellule header | Cellule données | Cellule données |
| Total | — | — |
Les sections <thead>, <tbody> et <tfoot>
acceptent toutes les mêmes classes de couleur et de survol. Les paddings sont appliqués via les
variables
--table-padding-* sur chaque th et td.
| CLASSE | ÉLÉMENT | DESCRIPTION |
|---|---|---|
.table |
<table> |
Classe de base. Applique border-collapse: collapse,
la largeur à 100 % et les variables de bordure et de padding.
|
.table-borderless |
<table> |
Supprime toutes les bordures sur la table et ses cellules (thead,
tbody, tfoot).
|
.table-bordered |
<table> |
Ajoute une bordure sur les quatre côtés de chaque cellule via les variables --table-border-*.
|
.table-striped |
<table> |
Zèbre les lignes paires du tbody via --table-striped-background-color.
|
.table-striped-odd |
<table> |
Zèbre les lignes impaires du tbody. |
.table-striped-column |
<table> |
Zèbre les colonnes paires du tbody. |
.table-striped-column-odd |
<table> |
Zèbre les colonnes impaires du tbody. |
.table-hover |
<table>, <thead>, <tbody>,
<tfoot>, <tr>, <th>,
<td> |
Applique --table-hover-background-color au survol.
Peut être posé à n'importe quel niveau de l'arborescence du tableau.
|
.table-{color} |
<table>, <thead>, <tbody>,
<tfoot>, <tr>, <th>,
<td> |
Applique la couleur de fond correspondante et adapte la couleur du texte via --content-on-{color}. Compatible avec .table-hover.
|
.table-group-divider |
<thead>, <tbody>, <tfoot>
|
Ajoute une bordure épaisse sur le premier <tr>
de la section via --table-border-divider-*.
|
.table-responsive |
<div> |
Wrapper. Active le défilement horizontal (overflow-x:
auto) pour les tableaux larges sur petits écrans.
|
Trois comportements de bordure disponibles via les classes modificatrices.
Quatre variantes de zébrage applicables indépendamment ou en combinaison.
| Nom | Rôle | Âge |
|---|---|---|
| Alice | Développeuse front-end | 28 |
| Bruno | Designer UI | 34 |
| Clara | Chef de projet | 41 |
| Denis | Développeur back-end | 29 |
| Eva | QA Engineer | 37 |
| Nom | Rôle | Département | Âge |
|---|---|---|---|
| Alice | Développeuse front-end | Tech | 28 |
| Bruno | Designer UI | Design | 34 |
| Clara | Chef de projet | Product | 41 |
| Denis | Développeur back-end | Tech | 29 |
| Eva | QA Engineer | Tech | 37 |
.table-hover peut être appliqué à n'importe quel niveau de
l'arborescence : sur la table entière, une section, une ligne ou une cellule individuelle.
<!-- Hover sur toute la table -->
<table class="table table-hover"></table>
<!-- Hover sur une section uniquement -->
<table class="table">
<tbody class="table-hover"></tbody>
</table>
<!-- Hover sur une ligne -->
<tr class="table-hover"></tr>
<!-- Hover sur une cellule -->
<td class="table-hover"></td>
Les classes .table-{color} sont générées dynamiquement depuis
la palette du projet. Elles s'appliquent à tous les niveaux : table, thead,
tbody, tfoot,
tr, th, td.
<!-- Couleur sur la table entière -->
<table class="table table-primary"></table>
<!-- Couleur sur une section -->
<thead class="table-secondary"></thead>
<!-- Couleur sur une ligne -->
<tr class="table-danger"></tr>
<!-- Couleur sur une cellule -->
<td class="table-warning"></td>
<!-- Combinaison couleur + hover -->
<table class="table table-primary table-hover"></table>
Lorsque des cellules sont colorées individuellement (ex. : th.table-primary
dans un tfoot)
et qu'un parent porte .table-hover, deux effets de survol
se superposent :
celui de la cellule colorée et celui hérité du tr
parent.
Le résultat visuellement est un double hover non souhaité.
La solution recommandée — poser .table-hover
directement sur les th et td.
Sans parent .table-hover, seules les cellules qui portent
explicitement la classe déclenchent leur propre effet de survol, sans aucune interférence. Cette
approche fonctionne dans tous les cas, y compris avec des couleurs transparentes ou semi-transparentes.
Il existe une alternative : colorier toutes les cellules du tr individuellement.
Si chaque th et td
porte sa propre classe couleur, le hover coloré prend le dessus sur celui du tr de manière homogène.
Cependant, si certaines couleurs sont transparentes, le hover du tr parent transparaît en dessous et crée un effet
indésirable — c'est pourquoi cette approche n'est pas recommandée.
| Nom | Statut | Score |
|---|---|---|
| Alice | En cours | 87 |
| Moyenne | — | 60.6 |
.table-group-divider ajoute une bordure renforcée sur la
première ligne de la section ciblée.
| Total | — |
|---|
Les modificateurs de taille s'appliquent directement sur <table>
et ajustent les paddings de toutes les cellules via les tokens CSS dédiés.
.table-sm
| Nom | Rôle |
|---|---|
| Alice | Développeuse |
.table-md
| Nom | Rôle |
|---|---|
| Alice | Développeuse |
.table-lg
| Nom | Rôle |
|---|---|
| Alice | Développeuse |
| TOKEN | RÔLE |
|---|---|
--table-border-width |
Épaisseur des bordures |
--table-border-style |
Style de bordure (solid, dashed…)
|
--table-border-color |
Couleur des bordures |
--table-border-divider-width |
Épaisseur de la bordure du séparateur de groupe |
--table-border-divider-style |
Style de la bordure du séparateur de groupe |
--table-border-divider-color |
Couleur de la bordure du séparateur de groupe |
--table-padding-y |
Padding vertical des cellules (taille par défaut) |
--table-padding-x |
Padding horizontal des cellules (taille par défaut) |
--table-padding-y-sm |
Padding vertical — taille sm |
--table-padding-x-sm |
Padding horizontal — taille sm |
--table-padding-y-md |
Padding vertical — taille md |
--table-padding-x-md |
Padding horizontal — taille md |
--table-padding-y-lg |
Padding vertical — taille lg |
--table-padding-x-lg |
Padding horizontal — taille lg |
--table-striped-background-color
|
Couleur de fond des lignes ou colonnes zébrées |
--table-hover-background-color
|
Couleur de fond au survol |
/* Global variables */
:root {
--table-border-width: 1px;
--table-border-style: solid;
--table-border-color: #dee2e6;
--table-padding-y: 0.75rem;
--table-padding-x: 1rem;
--table-striped-background-color: rgba(0, 0, 0, 0.05);
--table-hover-background-color: rgba(0, 0, 0, 0.075);
}
Toujours envelopper le tableau dans .table-responsive
pour garantir le défilement horizontal sur les petits écrans.
Les classes .table-{color} et .table-hover
peuvent se combiner à n'importe quel niveau (table, thead, tr,
td…).
L'ordre de spécificité est géré par les @layer CSS
définis dans le SCSS.
Le zébrage et le hover utilisent box-shadow: inset plutôt
que
background-color. Cela permet de superposer les couleurs
sans
écraser celles posées par .table-{color}.
Ne pas remplacer cette technique par un background-color
direct
sur les cellules, au risque de casser les combinaisons de classes.
Ne pas appliquer plusieurs modificateurs de taille simultanément (.table-sm et .table-lg
à la fois). Seul le dernier déclaré dans le CSS sera effectif.
Table · WEBDEV-UI DOCS / V1