From 050b96f1e386727a3cc1bb6ddb1419dbeb25d0e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zachary=20Gu=C3=A9not?= Date: Wed, 9 Sep 2026 23:11:31 +0200 Subject: [PATCH] =?UTF-8?q?docs:=20spec=20=E2=80=94=20health=20states=20ar?= =?UTF-8?q?e=20a=20status=20palette,=20with=20a=20mandatory=20text=20summa?= =?UTF-8?q?ry?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Le validateur de palette ne couvre que les palettes catégorielles. Sain, dégradé et coupé sont des statuts : palette réservée et fixe, assortie de la règle qu'ils ne voyagent jamais sans icône ni libellé. Une icône par segment étant impossible sur vingt-quatre segments, la bande est doublée d'un résumé textuel. Mesuré : un vert/orange/rouge classique donne un ΔE de 2,9 entre orange et vert en vision protanope. Co-Authored-By: Claude Opus 5 --- ...9-unifi-site-manager-integration-design.md | 33 +++++++++++++++---- 1 file changed, 26 insertions(+), 7 deletions(-) diff --git a/docs/superpowers/specs/2026-09-09-unifi-site-manager-integration-design.md b/docs/superpowers/specs/2026-09-09-unifi-site-manager-integration-design.md index a54417eaa..d012df5a6 100644 --- a/docs/superpowers/specs/2026-09-09-unifi-site-manager-integration-design.md +++ b/docs/superpowers/specs/2026-09-09-unifi-site-manager-integration-design.md @@ -268,14 +268,33 @@ dégradé, rouge coupé, gris inconnu. Dans une colonne de tableau elle sera ét c'est le prix de la forme tableau, et c'est ce qui rend l'infobulle nécessaire plutôt que confortable. -**Couleurs.** À valider par le validateur de palette avant écriture, en thème -clair et sombre, comme pour le graphe de débit. Les quatre états doivent rester -distinguables en vision déficiente : la bande n'a pas d'autre encodage que la -couleur, ce qui en fait le cas le plus exigeant du projet. Si un jeu à quatre -états ne passe pas, l'infobulle par segment devient obligatoire, pas optionnelle. +**Couleurs : palette de statut, pas palette catégorielle.** Distinction établie +en cours de conception, après avoir échoué à faire passer un jeu vert/orange/rouge +au validateur — lequel ne couvre que les palettes **catégorielles**. Sain, +dégradé et coupé sont des **statuts**, qui relèvent d'une palette réservée et +fixe, non thémée : -**Infobulle par segment** : heure de la tranche, latence moyenne, perte. C'est -aussi ce qui rend la bande lisible sans distinguer les couleurs. +| État | Couleur | Origine | +|---|---|---| +| `healthy` | `#0ca30c` | statut *good* | +| `degraded` | `#fab219` | statut *warning* | +| `down` | `#d03b3b` | statut *critical* | +| `unknown` | gris neutre de la surface | ce n'est pas un statut, c'est une absence | + +Mesuré au passage : un vert/orange/rouge classique donne un ΔE de **2,9** entre +l'orange et le vert en vision protanope — indistinguables. La palette de statut +ne prétend pas résoudre cela, elle impose une contrepartie. + +**La contrepartie est obligatoire, et plus forte qu'une infobulle.** La règle +attachée aux couleurs de statut est qu'elles ne voyagent jamais seules : icône +et libellé les accompagnent. Une icône par segment étant impossible sur +vingt-quatre segments, la bande est **doublée d'un résumé textuel** — par exemple +`22 h saines · 2 h dégradées` — placé à côté d'elle dans la même colonne. Ce +résumé n'est pas décoratif : c'est le canal qui porte l'information quand la +couleur ne passe pas. + +**Infobulle par segment** : heure de la tranche, latence moyenne, perte. Elle +complète le résumé pour qui veut le détail d'une heure précise. **Badge de fraîcheur** en tête de widget, alimenté par `updatedAt`, comme sur le widget `unifiOs`.