Tableaux
Tableau simple
| Nom | Date | Dernière vue |
|---|---|---|
| Projet Alpha | 2026-01-10 | |
| Projet Beta | 2026-02-18 | |
| Projet Gamma | 2026-03-25 |
Plus large que la pièce
| Colonne 1 | Colonne 2 | Colonne 3 | Colonne 4 | Colonne 5 | Colonne 6 | Colonne 7 | Colonne 8 | Colonne 9 | Colonne 10 | Colonne 11 | Colonne 12 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Une valeur suffisamment longue | Une valeur suffisamment longue | Une valeur suffisamment longue | Une valeur suffisamment longue | Une valeur suffisamment longue | Une valeur suffisamment longue | Une valeur suffisamment longue | Une valeur suffisamment longue | Une valeur suffisamment longue | Une valeur suffisamment longue | Une valeur suffisamment longue | Une valeur suffisamment longue |
| Une valeur suffisamment longue | Une valeur suffisamment longue | Une valeur suffisamment longue | Une valeur suffisamment longue | Une valeur suffisamment longue | Une valeur suffisamment longue | Une valeur suffisamment longue | Une valeur suffisamment longue | Une valeur suffisamment longue | Une valeur suffisamment longue | Une valeur suffisamment longue | Une valeur suffisamment longue |
| Une valeur suffisamment longue | Une valeur suffisamment longue | Une valeur suffisamment longue | Une valeur suffisamment longue | Une valeur suffisamment longue | Une valeur suffisamment longue | Une valeur suffisamment longue | Une valeur suffisamment longue | Une valeur suffisamment longue | Une valeur suffisamment longue | Une valeur suffisamment longue | Une valeur suffisamment longue |
Tableau avec actions
Lignes rayées, éclairées sous le pointeur
Lignes pouvant être cochées
Une case en tête de chaque ligne, une dans l'en-tête pour toutes, et les actions au-dessus : elles envoient les lignes cochées à leur propre adresse, et restent hors de portée tant que rien n'est coché.
Fichiers, un total, une action sur chaque ligne
Chemins lus par leur nom, les dossiers avant étant coupés de leur début. La barre se termine sur combien de lignes il y a, et une action marquée `all` fonctionne sans rien coché — elle prend chaque ligne, et mène la barre quand c'est celle attendue.
| Fichier | |
|---|---|
| 03-DOCUMENTS/QAL - Syst Document/Obsolète/QAL-D-12-identification-and-validation-of-quality-system-software-v1.md | |
| 05-INSTRUCTIONS/RES/RES-I-02-it-access-change-v2.md | |
| README.md |
Filtres
Une barre de filtres en tête de la table, un menu discret chacun, indiquant ce qu'il réduit une fois activé. Sur le serveur, ils vivent dans la requête de la page — chaque option est un lien — et le contrôleur réduit les lignes à partir de cela ; en Vue, elles sont une valeur remise à la page pour son API, ou appliquées par la table aux lignes qu'elle a déjà. Chaque option est une case — ronde pour un choix unique — colorée par son ton lorsqu'elle en a un, un état ou une catégorie.
| Nom | Propriétaire | État |
|---|---|---|
| Alpha | design | open |
| Beta | platform | closed |
| Gamma | design | closed |
| Delta | support | open |
Tri
Un en-tête qui trie est un lien sur le serveur et un bouton en Vue : croissant, décroissant, puis retour à l'ordre déclaré par la page, sur lequel la liste s'ouvre et que sa flèche montre dès le départ. Les dates vides vont en dernier dans les deux sens, et les noms se comparent selon l'ordre de la langue. Ici, la table trie les lignes qui lui ont été données ; un contrôleur paginant sa liste lit la même requête à la place.
| Nom | Ville | Dernière mesure | Actions |
|---|---|---|---|
| Adam Petit | Angers | ||
| Zoé Martin | Zürich | ||
| Eric Bernard | Lyon | ||
| Élodie Durand | Évry | ||
| Basile Leroy | Écully |
Tri dans le navigateur, depuis twig
`vue: true` transmet les mêmes colonnes et lignes au jumeau vue : il trie et recherche toute la liste dans le navigateur, sans chargement de page. Pour une liste que la page détient entière — une courte, ou une que aucune API ne sert.
Actions dans une sélection
La même barre quand il y a assez d'actions pour l'encombrer : une est choisie, puis appliquée.
Cellules avec lien et icône
| Source | État |
|---|---|
| Source Alpha | |
| Source Beta |
État de chargement
| Source | Mis à jour à | Actions |
|---|---|---|
|
|
||
État vide
| Source | Mis à jour à | Actions |
|---|---|---|
| Aucune donnée disponible. | ||
Alignement des colonnes
| Nom (gauche) | État (centre) | Montant (droite) |
|---|---|---|
| Alpha | Centered | 42.00 € |
| Beta | Centered | 128.50 € |
| Gamma | Centered | 7.99 € |
Codes, chiffres et totaux
`cell: 'code'` définit un identifiant dans la police mono ; `cell: 'number'`, ou une `unit`, écrit un chiffre dans le format local de la page. `negative: true` dessine un chiffre en dessous de zéro dans le ton d'erreur, son signe moins le dit aussi. `totals` est une ligne que la page remet, dessinée sous les autres — la table n'additionne rien, tenant une page ou une liste filtrée. Dessinée par le serveur, puis par vue.
| Code | Élément | Fourniture nette | Superficie |
|---|---|---|---|
VS-2041 |
Atlas | 12 | 18,5 m² |
LO-0007 |
Boréal | -4 | 9 m² |
VS-1180 |
Cyprès | 0 | 6,5 m² |
LO-0315 |
Dune | -11 | 22,5 m² |
| Total | -3 | 56,5 m² |
Depuis markdown
Une table écrite en markdown et passée par `markdown_ds` : les colonnes, leur alignement et le balisage de chaque cellule sont lus à partir du document, et la table est dessinée ici comme n'importe quelle autre. `markdown` conserve le simple `<table>`, pour tout ce qui n'est pas une page — un mail, un fil.
| Name | Status | Amount |
|---|---|---|
| Alpha | ready |
42.00 € |
| Beta | 128.50 € | |
| Gamma | pending | 7.99 € |
Groupes de lignes
Une ligne portant uniquement un groupe n'est pas une ligne : c'est la ligne entre deux séries, donnée par un mot. Elle s'étend sur la table et nomme ce qui suit — la même lecture qu'un séparateur de menu.
| Nom | Date |
|---|---|
| Premier groupe | |
| Projet Alpha | 2026-01-10 |
| Projet Beta | 2026-02-18 |
| Deuxième groupe | |
| Projet Gamma | 2026-03-25 |
Cellules d'état
Un état est un cercle, jamais une couleur choisie par quelqu'un : la cellule prend un nom de type, ou un type avec un compte et un titre, et dessine l'icône de statut que le reste du système dessine. Rien à styliser dans la page.
| Pipeline | Build | Tests | Déploiement |
|---|---|---|---|
| Projet Alpha | 42 | ||
| Projet Beta | 3 | ||
| Projet Gamma |
En-tête fixe
Une longue table est lue colonne par colonne autant que ligne par ligne. Avec `sticky`, l'en-tête reste visible pendant que les lignes défilent en dessous ; une page avec quelque chose de fixé en haut indique combien de distance en `--table-sticky-top`.
| # | Nom | État |
|---|---|---|
| 1 | Row 1 | |
| 2 | Row 2 | |
| 3 | Row 3 | |
| 4 | Row 4 | |
| 5 | Row 5 | |
| 6 | Row 6 | |
| 7 | Row 7 | |
| 8 | Row 8 | |
| 9 | Row 9 | |
| 10 | Row 10 | |
| 11 | Row 11 | |
| 12 | Row 12 |
Un tableau dans sa zone
Une zone `zone--table` est donnée au tableau tout entier : ce qui le pilote en haut, ses pages en bas, hors de ce qui défile, et entre les deux le fond du tableau jusqu'en bas de la zone, même pour trois lignes. Tout tableau y va, écrit par le serveur ou par une vue. Avec `natural`, comme celui de gauche, le tableau garde la largeur de ses colonnes, ni étiré ni serré.
| # | Nom | État |
|---|---|---|
| 1 | Row 1 | |
| 2 | Row 2 | |
| 3 | Row 3 |
Tableau d'entités Vue
Tableau Vue avec sélection
Le même contrat côté client : les clés cochées reviennent par v-model:selected, chaque action est émise comme action de masse, et une avec une adresse est postée comme la table du serveur le poste. Celles-ci n'en ont aucune, donc la ligne ci-dessous indique ce qui aurait été fait. Trois lignes par page, le total à la fin de la barre, et Archiver tout nécessitant aucune coche.
Pagination sans total
Lorsque l'API ne renvoie pas de total, le pager revient à précédent/suivant.
Pagination, générée par le serveur
`pagination(page, pages_count)` génère les pages d'une liste sous forme de liens : chacune conserve la route et la requête de la page sur laquelle elle se trouve — une recherche, un tri — et ne change que `page`, comptée à partir de 1. Les numéros affichés sont ceux du pager vue : le premier, le dernier, celui en cours et ses voisins. `compact` maintient les précédents et suivants autour du numéro de page ; `route` et `params` naviguent à une autre adresse.