Ce document n'est pas une maquette d'écran : le sélecteur de thème existe déjà
sur les 4 surfaces (US-044 v2). C'est la table de vérité des couleurs — chaque hex ci-dessous est destiné
à être recopié tel quel dans shared/src/theme/palettes.ts, KFetPalettes.swift
et KFetPalettes.kt.
| # | Décision |
|---|---|
| 1 | Le problème de contraste n'est pas un problème de thème. 24 des 42 combinaisons
« sémantique × palette × fond » échouent en AA — mais l'écart entre la meilleure et la pire palette est de
0,06 point (Alerte : 2,62 → 2,68). Les trois sémantiques ne sont tout simplement pas des couleurs de
texte : #d4870a ne passe pas AA même sur blanc (2,89). |
| 2 | 🔴 Le repli proposé dans l'étude — « imposer les badges sur neutral-50 » —
ne corrige rien : Alerte sur neutral-50 = 2,77. Toujours KO. Et l'option « un
warningOn* par thème » ferait 21 valeurs pour corriger un axe qui varie de 2 %. |
| 3 | Retenu : 3 encres constantes danger-ink / warning-ink /
success-ink. 3 valeurs, zéro par thème, et les 42 combinaisons repassent AA. |
| 4 | Primaire n'est pas une couleur de texte non plus. Sur Fond,
4 palettes sur 7 échouent (Mangue 2,83 — sous le seuil non-textuel de 3:1). D'où primaryInk,
calculé : mix(Primaire, noir, 30 %). |
| 5 | ⚠️ Amendement à la formule de survol de l'étude. mix(primary, black, 12 %)
appliqué uniformément casse les 4 palettes à encre sombre (Mangue : 4,69 → 3,71 au survol).
Règle corrigée : le survol s'éloigne de primaryContrast. |
| 6 | « Ylang » n'existe pas — c'est Goyave qui fait foi (§7). |
Avec les valeurs de cette fiche : 178 contrôles de contraste, 0 échec. Le pire ratio de toute la matrice est 3,40:1 — un contour de champ de saisie, dont le seuil est 3:1.
kfet_themes.pdf sont reprises à l'identique. Les colonnes 5 et 6
sont les livrables de ce lot : primaryContrast (§2) et onDark (§3).| Clé | Thème | primary | dark | light | bg | primaryContrast | primaryInk |
|---|---|---|---|---|---|---|---|
| HIBISCUS | Hibiscus | #b5384e | #3a1218 | #f8e2e6 | #faf3f2 | #ffffff | #7f2737 |
| COROSSOL | Corossol | #2f9e6f | #0f2e22 | #d7f0e4 | #eef8f3 | #0e291f | #216f4e |
| GOYAVE | Goyave | #d16a5c | #3a1712 | #fbe4de | #faf3f0 | #371611 | #924a40 |
| MANGUE | Mangue | #d67e1e | #382709 | #f9e9cf | #faf6ea | #382709 | #965815 |
| VETIVER | Vétiver | #77894b | #282c18 | #ebeed9 | #f6f7ee | #16190d | #536034 |
| INDIGO | Indigo | #3f5f96 | #161d31 | #e1e8f3 | #f2f4f9 | #ffffff | #2c4269 |
| BOUGAINVILLIER | Bougainvillier | #a53d78 | #2f1425 | #f3e0ec | #f9f2f6 | #ffffff | #742b54 |
primaryContrast × 7Primaire (libellé de CTA,
onglet actif plein, pastille d'avatar). Seuil visé : 4,60:1 — 4,5 plus une marge, parce qu'un libellé
de bouton est du texte fin en rendu sous-pixel.| Thème | Primaire | blanc | Foncé | Clair | primaryContrast retenu | ratio |
|---|---|---|---|---|---|---|
| Hibiscus | #b5384e | 5.77 | 2.84 | 4.67 | #ffffff | 5.77 |
| Corossol | #2f9e6f | 3.36 | 4.35 | 2.80 | #0e291f | 4.60 |
| Goyave | #d16a5c | 3.54 | 4.52 | 2.91 | #371611 | 4.61 |
| Mangue | #d67e1e | 3.06 | 4.69 | 2.56 | #382709 (= Foncé) | 4.69 |
| Vétiver | #77894b | 3.84 | 3.73 | 3.25 | #16190d | 4.63 |
| Indigo | #3f5f96 | 6.39 | 2.62 | 5.18 | #ffffff | 6.39 |
| Bougainvillier | #a53d78 | 5.93 | 2.84 | 4.72 | #ffffff | 5.93 |
Hibiscus, Indigo et Bougainvillier sont des primaires sombres : le blanc y passe largement (5,77 à 6,39). Corossol, Goyave, Mangue et Vétiver sont des primaires de milieu de gamme — le blanc y plafonne entre 3,06 et 3,84. Ces quatre-là prennent une encre sombre.
Vétiver est le cas limite du jeu : son Foncé #282c18 ne donne que 3,73, et
même neutral-900 ne donne que 4,33. Le plafond théorique (noir pur) est 5,46. Son
primaryContrast #16190d est donc un olive quasi noir — volontairement plus sombre
que son Foncé. Ne pas « corriger » cette valeur vers Foncé en relecture,
c'est le seul moyen d'atteindre AA sans toucher au Primaire de la spec.
Goyave prend #371611 plutôt que son Foncé #3a1712 : ce dernier passe
(4,52) mais sans aucune marge. Mangue conserve son Foncé tel quel (4,69).
L'étude propose primaryHover = mix(primary, black, 12 %) pour les 7 palettes. Assombrir un
fond sur lequel repose une encre sombre détruit le contraste. Mesuré :
| Thème | primaryContrast | survol « vers noir » (étude) | enfoncé « vers noir » | survol « vers blanc » (retenu) | enfoncé « vers blanc » |
|---|---|---|---|---|---|
| Corossol | #0e291f | #298b62 3.66 | #257b57 2.99 | #48aa80 5.41 | #5db38f 6.13 |
| Goyave | #371611 | #b85d51 3.67 | #a35348 3.03 | #d77c70 5.45 | #db8b80 6.24 |
| Mangue | #382709 | #bc6f1a 3.71 | #a76217 3.01 | #db8d39 5.39 | #df9a50 6.07 |
| Vétiver | #16190d | #697942 3.74 | #5d6b3a 3.08 | #879761 5.62 | #95a373 6.59 |
Le survol s'éloigne de primaryContrast. Si primaryContrast est blanc, on mélange
vers le noir ; s'il est une encre, on mélange vers le blanc. Aux mêmes taux : 12 % au survol,
22 % à l'enfoncement.
primaryHover = mix(primary, primaryContrast === '#ffffff' ? black : white, 12 %)
Le contraste augmente dans les deux sens (5,39 à 8,87 sur les 14 états mesurés). Visuellement : les palettes sombres foncent au survol, les claires s'éclaircissent — deux conventions également admises, et le seul choix qui tienne l'AA sur les 7.
| Thème | primary | primaryHover | primaryPressed | sens |
|---|---|---|---|---|
| Hibiscus | #b5384e | #9f3145 | #8d2c3d | vers noir |
| Corossol | #2f9e6f | #48aa80 | #5db38f | vers blanc |
| Goyave | #d16a5c | #d77c70 | #db8b80 | vers blanc |
| Mangue | #d67e1e | #db8d39 | #df9a50 | vers blanc |
| Vétiver | #77894b | #879761 | #95a373 | vers blanc |
| Indigo | #3f5f96 | #375484 | #314a75 | vers noir |
| Bougainvillier | #a53d78 | #91366a | #81305e | vers noir |
Foncé »Foncé a deux emplois : fond de sidebar / d'en-tête, et couleur de titre
sur fond clair. Les deux sens sont audités.Foncé (sidebar, en-tête)| Thème | Foncé | blanc | Clair | neutral-50 | onDarkMuted | ratio muted |
|---|---|---|---|---|---|---|
| Hibiscus | #3a1218 | 16.41 | 13.29 | 15.74 | #c4b8ba | 8.53 |
| Corossol | #0f2e22 | 14.64 | 12.18 | 14.05 | #b7c0bd | 7.87 |
| Goyave | #3a1712 | 16.02 | 13.16 | 15.36 | #c4b9b8 | 8.37 |
| Mangue | #382709 | 14.36 | 12.03 | 13.78 | #c3beb5 | 7.76 |
| Vétiver | #282c18 | 14.35 | 12.14 | 13.76 | #bec0ba | 7.81 |
| Indigo | #161d31 | 16.74 | 13.58 | 16.06 | #b9bbc1 | 8.72 |
| Bougainvillier | #2f1425 | 16.83 | 13.37 | 16.15 | #c1b8be | 8.71 |
onDark = #ffffff, pour les 7
Les quatre candidats passent, et très largement (11,3 à 16,8 — tous AAA). Le choix se fait donc sur des
critères non métriques, et le blanc pur gagne sur les trois : une seule valeur pour les 7 palettes
(aucune ligne de plus dans palettes.ts), aucune dépendance de la sidebar au jeton
Clair — qui, lui, sert aux badges et peut bouger — et le meilleur ratio partout.
Clair sur Foncé est explicitement écarté : il donne un blanc légèrement teinté
(12,03 à 13,58, parfaitement lisible) mais lie deux jetons dont les rôles n'ont rien à voir. Un ajustement futur
d'un Clair pour raison de badge repeindrait la sidebar.
Second niveau — libellés de section, icônes inactives, méta : onDarkMuted =
rgba(255,255,255,.70), soit un jeton dérivé, pas une valeur de palette.
Pire ratio mesuré : 7,76:1 (Mangue). Les hex composités ci-dessus sont donnés pour iOS/Compose si
l'opacité n'est pas praticable.
Foncé comme couleur de titre, sur fond clair| Thème | sur Fond | sur Clair | sur neutral-50 | sur surface-2 |
|---|---|---|---|---|
| Hibiscus | 14.98 | 13.29 | 15.74 | 15.03 |
| Corossol | 13.50 | 12.18 | 14.05 | 13.73 |
| Goyave | 14.60 | 13.16 | 15.36 | 14.98 |
| Mangue | 13.29 | 12.03 | 13.78 | 13.51 |
| Vétiver | 13.29 | 12.14 | 13.76 | 13.45 |
| Indigo | 15.22 | 13.58 | 16.06 | 15.34 |
| Bougainvillier | 15.28 | 13.37 | 16.15 | 15.41 |
Aucune réserve : 12,03 minimum, AAA sur les 28 combinaisons. Foncé est utilisable comme couleur de titre partout, sans condition.
Fond et Clair, qui varient sur 7 palettes. 42 combinaisons auditées.| Thème | Danger /Fond | Danger /Clair | Alerte /Fond | Alerte /Clair | Succès /Fond | Succès /Clair |
|---|---|---|---|---|---|---|
| Hibiscus | 4.96 | 4.41 | 2.64 | 2.34 | 4.87 | 4.33 |
| Corossol | 5.01 | 4.53 | 2.66 | 2.40 | 4.92 | 4.44 |
| Goyave | 4.96 | 4.47 | 2.63 | 2.37 | 4.87 | 4.39 |
| Mangue | 5.03 | 4.55 | 2.67 | 2.42 | 4.94 | 4.47 |
| Vétiver | 5.04 | 4.60 | 2.68 | 2.44 | 4.95 | 4.52 |
| Indigo | 4.94 | 4.41 | 2.63 | 2.34 | 4.85 | 4.33 |
| Bougainvillier | 4.94 | 4.32 | 2.62 | 2.30 | 4.85 | 4.24 |
| — sur blanc | 5.44 sur #ffffff | 2.89 sur #ffffff | 5.34 sur #ffffff | |||
| — sur neutral-50 | 5.22 sur #fbfaf9 | 2.77 sur #fbfaf9 | 5.12 sur #fbfaf9 | |||
Alerte #d4870a échoue sur les 14 combinaisons, de 2,30 (Bougainvillier /Clair) à 2,68
(Vétiver /Fond). L'étude citait le cas Mangue /Clair à 2,0 ; la mesure donne 2,42 — et surtout,
Mangue n'est pas le pire cas, c'est Bougainvillier. L'amplitude entre la meilleure et la pire palette
est de 0,06 point.
Le même jeton échoue sur blanc pur à 2,89. C'est la démonstration : le problème n'est pas thémé, il préexistait aux 7 palettes. Les fonds thémés n'ont fait que le rendre visible.
Danger et Succès passent sur les 7 Fond (4,85 à 5,04) mais échouent sur 5 et 6
Clair respectivement — entre 4,24 et 4,60. Ce sont des échecs de marge, pas de nature.
🔴 Le repli « imposer les badges sur neutral-50 » proposé par l'étude ne fonctionne pas.
Mesuré : Alerte sur neutral-50 = 2,77. Changer de fond ne peut pas sauver un jeton qui
échoue déjà sur blanc. Cette option est écartée sur preuve, pas sur préférence.
Les deux options de l'étude visaient l'axe « fond ». Or l'axe défaillant est le jeton lui-même, et il ne varie pas par thème. Retenu : chaque sémantique reçoit une encre — sa déclinaison texte — tandis que la valeur de la spec reste la valeur d'aplat et d'icône.
| Jeton | aplat (spec, inchangé) | encre (nouveau) | pire /Fond | pire /Clair | /neutral-50 | /blanc |
|---|---|---|---|---|---|---|
| Danger | #c0392b --kf-danger | #992a1f --kf-danger-ink | 7.04 | 6.17 | 7.45 | 7.76 |
| Alerte | #d4870a --kf-warning | #7d5006 --kf-warning-ink | 6.31 | 5.52 | 6.67 | 6.95 |
| Succès | #2d7a2d --kf-success | #215c21 --kf-success-ink | 7.28 | 6.37 | 7.70 | 8.02 |
Ni l'une ni l'autre des deux options proposées. Une troisième, moins chère que les deux.
warningOn* par thème : 21 valeurs (3 × 7) pour couvrir un axe dont
l'amplitude réelle est de 0,06 point. Les 7 valeurs seraient quasi identiques entre elles. Et cela ne
corrigerait pas le cas d'une sémantique posée hors badge, directement sur Fond.neutral-50 : ne corrige rien, mesuré à 2,77 (§4.1).Règle d'emploi, en une ligne : la sémantique en aplat ou en icône garde la valeur de la spec ;
la sémantique en texte prend l'encre. --kf-danger ne doit jamais valoir une
color de texte.
La règle établie en US-034 est conservée telle quelle : aplat = état terminal, teinte douce = état transitoire. Chaque recette reçoit ici ses valeurs et son audit.
| Recette | Emploi | fond | texte | contour | ratio texte/fond |
|---|---|---|---|---|---|
| Aplat · Danger | état terminal | #c0392b | #ffffff (blanc) | — | 5.44 |
| Aplat · Alerte | état terminal | #d4870a | #1f1e1c (neutral-900) | — | 5.77 |
| Aplat · Succès | état terminal | #2d7a2d | #ffffff (blanc) | — | 5.34 |
| Teinte douce · Danger | état transitoire | #f1d3d0 -soft | #992a1f -ink | #dc928a -soft-border | 5.53 |
| Teinte douce · Alerte | état transitoire | #f6e5c9 -soft | #7d5006 -ink | #e7bd78 -soft-border | 5.62 |
| Teinte douce · Succès | état transitoire | #d1e2d1 -soft | #215c21 -ink | #8cb68c -soft-border | 5.93 |
1. L'aplat Alerte est le seul badge à texte sombre. Blanc sur #d4870a = 2,89 (KO) ;
neutral-900 = 5,77 (OK). C'est une asymétrie assumée — inévitable sur un ambre, et pratiquée
partout ailleurs dans l'industrie. Ne pas « harmoniser » en blanc en relecture.
2. Le fond d'un badge doux ne se détache pas de la page — au mieux 1,27:1 sur Fond,
quelle que soit la teinte choisie (testé de 12 % à 28 %). C'est arithmétique : un pastel sur un pastel.
D'où le contour -soft-border, et surtout : la lisibilité repose sur l'encre du libellé,
jamais sur la forme. Pour un badge qui doit être repéré d'un coup d'œil dans une liste — typiquement
un balayage DLC — utiliser l'aplat, pas la teinte douce.
| Jeton | hex | Emploi | pire /Fond | pire /Clair | seuil |
|---|---|---|---|---|---|
| --kf-neutral-50 | #fbfaf9 | surface-1 — cartes, modales, lignes de tableau | n/a | n/a | décor / exempté |
| --kf-neutral-100 | #f4f3f1 | remplissage discret, fond désactivé | n/a | n/a | décor / exempté |
| --kf-neutral-200 | #e6e4e0 | séparateurs, filets décoratifs | n/a | n/a | décor / exempté |
| --kf-neutral-400 | #a3a09a | texte désactivé, icône inerte — jamais de texte utile | n/a | n/a | décor / exempté |
| --kf-neutral-600 | #65625d | texte secondaire, libellés, placeholders | 5.51 | 4.82 | 4.5:1 |
| --kf-neutral-900 | #1f1e1c | texte principal | 15.12 | 13.23 | 4.5:1 |
| --kf-neutral-border | #7d7a74 | contour de champ de saisie / composant identifiable (1.4.11) | 3.88 | 3.40 | 3.0:1 |
Ils portent une chaleur infime — le rouge dépasse le bleu de 2 à 6 points sur 255, soit une teinte
autour de 40° à chroma quasi nul. Assez pour qu'ils ne « meurent » pas sous Mangue ou Goyave, assez peu pour
ne pas jaunir sous Indigo. Ils remplacent les neutres verts du backoffice
(#e5e8e2, #f1f5f1, #e8f0e8) et sable du terrain
(#f4f1ea, #e9e3d7), qui trahissaient l'ancienne charte sous les 7 palettes.
La chaleur réelle du thème n'est pas portée par la rampe mais par les deux exceptions teintées
de l'étude, conservées : surface-2 et border (§6).
neutral-600 = #65625d, et non un gris moyen classique. La première
tentative (#6a6762) échouait sur une seule combinaison : Bougainvillier /Clair à 4,47.
Un texte secondaire doit passer partout ; la valeur retenue donne 4,82 au pire.
neutral-400 ne descend jamais en dessous de 3:1 (2,07 à 2,50). C'est voulu : c'est le
jeton désactivé, explicitement exempté par WCAG 1.4.3. 🔴 Il ne doit jamais porter de texte utile —
en particulier pas un placeholder, qui relève de neutral-600.
neutral-border #7d7a74 est un ajout. Un contour de champ de saisie est un
composant identifiable au sens de WCAG 1.4.11 et doit atteindre 3:1 — ce que ni neutral-200
(1,15) ni le --kf-border teinté (1,32 à 1,43) ne font. Ces deux-là restent des filets
décoratifs ; dès qu'un contour est le seul moyen de repérer un champ, c'est
neutral-border.
| Jeton | Formule | Statut |
|---|---|---|
| --kf-primary-hover | mix(primary, opposé de primaryContrast, 12 %) | ⚠️ amendé (§2) |
| --kf-primary-pressed | mix(primary, opposé de primaryContrast, 22 %) | ⚠️ amendé (§2) |
| --kf-primary-ink | mix(primary, #000, 30 %) | ➕ nouveau (§7) |
| --kf-on-dark | #ffffff | constant (§3) |
| --kf-on-dark-muted | rgba(255,255,255,.70) | constant (§3) |
| --kf-focus-ring | primary-ink, 2 px, offset 2 px | ⚠️ amendé — voir ci-dessous |
| --kf-surface-2 | mix(primary, #fff, 6 %) | exception teintée, conservée |
| --kf-border | mix(primary, #e6e4e0, 14 %) | ⚠️ base recalée sur neutral-200 |
| --kf-disabled-bg / -fg | neutral-100 / neutral-400 | constants |
| --kf-overlay | rgba(0,0,0,.45) | constant |
Un primaire à 40 % d'opacité sur un fond clair tombe entre 1,4 et 1,9:1 — invisible, et sous le seuil de
3:1 exigé pour un indicateur de focus. Retenu : primary-ink à 100 %, 2 px, avec 2 px de
décalage, ce qui donne 5,25:1 au pire (Mangue) et reste visible sur Fond, sur
neutral-50 comme sur Clair. La version à 40 % peut subsister en halo externe,
jamais comme trait porteur.
| Thème | surface-2 | border | n-900 /surface-2 | n-600 /surface-2 |
|---|---|---|---|---|
| Hibiscus | #fbf3f4 | #dfcccc | 15.25 | 5.56 |
| Corossol | #f3f9f6 | #ccdad0 | 15.62 | 5.69 |
| Goyave | #fcf6f5 | #e3d3ce | 15.58 | 5.68 |
| Mangue | #fdf7f2 | #e4d6c5 | 15.68 | 5.71 |
| Vétiver | #f7f8f4 | #d6d7cb | 15.62 | 5.69 |
| Indigo | #f3f5f9 | #cfd1d6 | 15.26 | 5.56 |
| Bougainvillier | #faf3f7 | #ddcdd1 | 15.25 | 5.56 |
| Thème | Primaire /Fond | Primaire /Clair | Primaire /neutral-50 | primaryInk | Ink /Fond | Ink /Clair |
|---|---|---|---|---|---|---|
| Hibiscus | 5.27 | 4.67 | 5.53 | #7f2737 | 8.53 | 7.57 |
| Corossol | 3.10 | 2.80 | 3.23 | #216f4e | 5.61 | 5.07 |
| Goyave | 3.23 | 2.91 | 3.40 | #924a40 | 5.84 | 5.27 |
| Mangue | 2.83 | 2.56 | 2.94 | #965815 | 5.25 | 4.75 |
| Vétiver | 3.56 | 3.25 | 3.69 | #536034 | 6.30 | 5.75 |
| Indigo | 5.80 | 5.18 | 6.13 | #2c4269 | 9.13 | 8.15 |
| Bougainvillier | 5.39 | 4.72 | 5.69 | #742b54 | 8.60 | 7.53 |
Primaire ne peut pas porter « liens » et « chiffres clés »
Le PDF assigne à Primaire : « CTA, liens, onglet actif, chiffres clés ». Trois de ces quatre
emplois sont du texte. Mesuré sur Fond : Corossol 3,10 · Goyave 3,23 · Mangue 2,83 ·
Vétiver 3,56. Quatre palettes sur sept en échec AA, et Mangue passe même sous le seuil non textuel
de 3:1.
Correction : primaryInk = mix(primary, noir, 30 %) — une formule unique, donc zéro
valeur supplémentaire dans palettes.ts, calculée par le moteur au même titre que le survol.
Pire ratio obtenu : 4,75 (Mangue /Clair). Elle sert aux liens, chiffres clés, icônes de couleur de
marque sur fond clair, traits de 1–2 px, anneau de focus et séries de graphique.
Primaire reste la couleur des surfaces pleines : fonds de boutons, onglet actif plein,
pastilles.
Un bouton plein Primaire repose sur neutral-50 ou surface-2,
jamais directement sur Fond. Mangue sur son propre Fond donne 2,83 — le bouton
n'a pas de limite perceptible. Sur une carte neutral-50 il remonte à 2,94, sur blanc à 3,06.
En pratique les deux fronts posent déjà leurs boutons sur des cartes ; il s'agit de ne pas déroger.
Clair sur Fond vaut 1,10 à 1,14. Une surface Clair posée sur
la page est invisible sans contour. Ce n'est pas un échec WCAG (c'est de la décoration), mais c'est un
piège de mise en page : toute zone Clair autoportante prend un --kf-border.
kfet_themes.pdf p.3.Relecture intégrale des deux PDF. « Goyave » apparaît quatre fois : en titre de la fiche
03 / 07 de kfet_themes.pdf p.2, avec son binôme latin Psidium guajava, sa description
(« corail-saumon de la chair de goyave ») et ses 4 hex ; puis en ligne 3 du tableau de synthèse de
kfet.pdf p.1. « Ylang » apparaît une seule fois, dans la phrase de clôture, sans fiche,
sans hex, sans latin, sans description — et dans aucune autre pièce du projet.
La phrase fautive est : « Les affectations “alterne” (Ylang, Bougainvillier) sont libres ». Elle énumère les deux thèmes marqués Rôle alterne, qui sont Goyave (03/07) et Bougainvillier (07/07). Lecture retenue : « Ylang » est un nom de travail resté en place après le renommage de la palette 03 en Goyave. Une palette qui n'a ni fiche ni valeurs ne peut pas être implémentée ; celle qui en a sept lignes le peut.
Conséquence : aucune. La clé GOYAVE annoncée dans le contrat 0-B est la bonne, les
7 clés du ticket sont les bonnes, et il n'y a rien à changer dans le code. Seule la phrase de clôture
du PDF est à corriger au prochain export — lire « (Goyave, Bougainvillier) ».
shared/src/theme/palettes.ts,
KFetPalettes.swift et KFetPalettes.kt. 5 valeurs thémables × 7 palettes,
plus 3 blocs constants.| Clé | primary | dark | light | bg | primaryContrast |
|---|---|---|---|---|---|
| HIBISCUS | #b5384e | #3a1218 | #f8e2e6 | #faf3f2 | #ffffff |
| COROSSOL | #2f9e6f | #0f2e22 | #d7f0e4 | #eef8f3 | #0e291f |
| GOYAVE | #d16a5c | #3a1712 | #fbe4de | #faf3f0 | #371611 |
| MANGUE | #d67e1e | #382709 | #f9e9cf | #faf6ea | #382709 |
| VETIVER | #77894b | #282c18 | #ebeed9 | #f6f7ee | #16190d |
| INDIGO | #3f5f96 | #161d31 | #e1e8f3 | #f2f4f9 | #ffffff |
| BOUGAINVILLIER | #a53d78 | #2f1425 | #f3e0ec | #f9f2f6 | #ffffff |
| Constante | valeur | Constante | valeur |
|---|---|---|---|
| --kf-danger | #c0392b | --kf-warning | #d4870a |
| --kf-success | #2d7a2d | --kf-danger-ink | #992a1f |
| --kf-warning-ink | #7d5006 | --kf-success-ink | #215c21 |
| --kf-danger-soft | #f1d3d0 | --kf-warning-soft | #f6e5c9 |
| --kf-success-soft | #d1e2d1 | --kf-danger-soft-border | #dc928a |
| --kf-warning-soft-border | #e7bd78 | --kf-success-soft-border | #8cb68c |
| --kf-neutral-50 | #fbfaf9 | --kf-neutral-100 | #f4f3f1 |
| --kf-neutral-200 | #e6e4e0 | --kf-neutral-400 | #a3a09a |
| --kf-neutral-600 | #65625d | --kf-neutral-900 | #1f1e1c |
| --kf-neutral-border | #7d7a74 |
178 contrôles, 0 échec. Couverture : primaryContrast sur primaire, survol et enfoncement
(21) · texte sur Foncé, plein et atténué (14) · Foncé en titre sur
Fond et Clair (14) · primaryInk en lien et en marque UI (21) ·
rampe neutre sur les 14 surfaces thémées (28) · contours de champ (14) · les 3 encres sur
Fond, Clair et teinte douce (63) · les 3 aplats (3).
Pire ratio de la matrice : 3,40:1 — neutral-border sur le Clair de
Bougainvillier, seuil applicable 3:1. Pire ratio textuel : 4,60:1 —
primaryContrast de Corossol, seuil 4,5.
Palette la plus contrainte : Bougainvillier, qui détient le pire cas de 12 des 19 familles auditées
(son Clair #f3e0ec est le plus sombre des sept). C'est sur Bougainvillier, et non
sur Mangue, qu'il faut recetter en priorité. Palette la plus contrainte côté primaire : Vétiver,
seul cas où même le noir pur plafonne (5,46).
design/US-078-jetons-themekfet.pdf (2 p.) et kfet_themes.pdf (3 p.), joints à l'issue #84 ·
cadre technique : étude ^^Tamara, note 3664664495.