@zevra/ui 0.26.0 → 0.27.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/DECISIONS.md +20 -0
- package/dist/catalogue.d.ts.map +1 -1
- package/dist/catalogue.js +15 -15
- package/dist/catalogue.js.map +1 -1
- package/dist/css-inline.d.ts.map +1 -1
- package/dist/css-inline.js +1 -1
- package/dist/css-inline.js.map +1 -1
- package/dist/email.d.ts +7 -1
- package/dist/email.d.ts.map +1 -1
- package/dist/email.js +12 -3
- package/dist/email.js.map +1 -1
- package/dist/glyph-data.d.ts +2 -0
- package/dist/glyph-data.d.ts.map +1 -1
- package/dist/glyph-data.js +2 -0
- package/dist/glyph-data.js.map +1 -1
- package/dist/glyph-urls.d.ts +14 -0
- package/dist/glyph-urls.d.ts.map +1 -0
- package/dist/glyph-urls.js +15 -0
- package/dist/glyph-urls.js.map +1 -0
- package/dist/glyphes.d.ts +2 -2
- package/dist/glyphes.d.ts.map +1 -1
- package/dist/glyphes.js +2 -2
- package/dist/glyphes.js.map +1 -1
- package/package.json +1 -1
- package/react/catalogue.tsx +19 -17
- package/react/css-inline.ts +1 -1
- package/react/email.ts +16 -2
- package/react/glyph-data.ts +3 -0
- package/react/glyph-urls.ts +16 -0
- package/react/glyphes.ts +2 -2
- package/src/data.css +9 -0
- package/src/feedback.css +3 -0
- package/src/surfaces.css +29 -3
package/react/email.ts
CHANGED
|
@@ -23,6 +23,11 @@
|
|
|
23
23
|
// stylées.
|
|
24
24
|
|
|
25
25
|
import { COULEURS, POLICES as PILES } from './email-tokens.js'
|
|
26
|
+
// Les URL publiques des glyphes — sept chaînes, aucune image inlinée : un
|
|
27
|
+
// client de messagerie ne résout pas une data-URI (Gmail les bloque), il lui
|
|
28
|
+
// faut une adresse absolue.
|
|
29
|
+
import { LOGOS_PRODUITS } from './glyph-urls.js'
|
|
30
|
+
export { BASE_RESSOURCES, LOGOS_PRODUITS } from './glyph-urls.js'
|
|
26
31
|
|
|
27
32
|
/** ⚠️ Les piles de polices du paquet contiennent des GUILLEMETS DOUBLES
|
|
28
33
|
* (`"Public Sans", …`), et tout ici s'écrit dans un attribut `style="…"`
|
|
@@ -144,6 +149,10 @@ export interface EmailOptions {
|
|
|
144
149
|
/** L'URL ABSOLUE du logo — une image d'e-mail ne se résout pas depuis un
|
|
145
150
|
* chemin relatif, et les data-URI sont bloquées par Gmail. */
|
|
146
151
|
logo?: { src: string; hauteur?: number }
|
|
152
|
+
/** Raccourci : le glyphe d'un produit Zevra, à son URL publiée avec la
|
|
153
|
+
* planche. Écrase `logo`.
|
|
154
|
+
* ⚠️ Ne dispense PAS de `marque` : une image sur deux est bloquée. */
|
|
155
|
+
produit?: keyof typeof LOGOS_PRODUITS
|
|
147
156
|
/** Les blocs, concaténés. */
|
|
148
157
|
contenu: string
|
|
149
158
|
/** Sous la carte : mentions légales, désinscription. */
|
|
@@ -167,12 +176,17 @@ export function email({
|
|
|
167
176
|
preheader,
|
|
168
177
|
marque,
|
|
169
178
|
logo,
|
|
179
|
+
produit,
|
|
170
180
|
contenu,
|
|
171
181
|
pied,
|
|
172
182
|
lang = 'fr',
|
|
173
183
|
}: EmailOptions): string {
|
|
174
|
-
const
|
|
175
|
-
|
|
184
|
+
const source = produit ? LOGOS_PRODUITS[produit] : logo?.src
|
|
185
|
+
// 34px : la hauteur du logo de la barre de vitrine sous le seuil. Un
|
|
186
|
+
// e-mail se lit surtout au téléphone.
|
|
187
|
+
const hauteur = logo?.hauteur ?? 34
|
|
188
|
+
const enTete = source
|
|
189
|
+
? `<img src="${echappe(source)}" height="${hauteur}" alt="${echappe(marque)}" style="display:block;border:0;height:${hauteur}px;width:auto;">`
|
|
176
190
|
: `<span style="font-family:${POLICES.display};font-weight:600;font-size:20px;letter-spacing:-0.02em;color:${COULEURS.ink};">${echappe(marque)}</span>`
|
|
177
191
|
|
|
178
192
|
return `<!doctype html>
|
package/react/glyph-data.ts
CHANGED
|
@@ -21,6 +21,9 @@ export const GLYPHES: Record<GlypheId, string> = {
|
|
|
21
21
|
'zevra': 'data:image/png;base64,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',
|
|
22
22
|
}
|
|
23
23
|
|
|
24
|
+
/** Le mot « Zevra » — le wordmark officiel, tracé, en data-URI. */
|
|
25
|
+
export const MOT_ZEVRA = 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0NTMuOCAxMDAiIHJvbGU9ImltZyIgYXJpYS1sYWJlbD0iWmV2cmEiPgogIDx0aXRsZT5aZXZyYTwvdGl0bGU+CiAgPCEtLSBMZSBtb3QgWmV2cmEsIHJlbGV2w6kgc3VyIGxlIGxvY2t1cCBkJ29yaWdpbmUuIExhIGhhdXRldXIgZGUgY2FwaXRhbGUKICAgICAgIHZhdXQgMTAwIHVuaXTDqXMgOiB1bmUgaGF1dGV1ciBDU1MgcG9zw6llIHN1ciBjZSBmaWNoaWVyIEVTVCBsYSBjYXBpdGFsZSwKICAgICAgIGNlIHF1aSByZW5kIGxlcyBwcm9wb3J0aW9ucyBkdSBsb2NrdXAgY2FsY3VsYWJsZXMgKHZvaXIgLnp2LWxvY2t1cCkuIC0tPgogIDxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNIDQxMy4zMSAwLjE4IEwgNDEzLjg1IDAuMTggTCA0MTQuMjEgMC4wMCBMIDQxNC43NCAwLjAwIEwgNDE1LjI4IDAuMDAgTCA0MTUuODEgMC4wMCBMIDQxNi4zNSAwLjAwIEwgNDE2Ljg4IDAuMDAgTCA0MTcuNDIgMC4wMCBMIDQxNy45NiAwLjAwIEwgNDE4LjQ5IDAuMDAgTCA0MTkuMDMgMC4wMCBMIDQxOS41NiAwLjAwIEwgNDIwLjEwIDAuMDAgTCA0MjAuNjMgMC4wMCBMIDQyMC45OSAwLjE4IEwgNDIxLjM1IDAuMzYgTCA0MjEuNzEgMC4zNiBMIDQ1My44MCA4MC4yOCBMIDQ0MS44MyA4NS4wNiBMIDQzMi41NyA2MS43NyBMIDQwMi40OSA2MS43NyBMIDM5My4xOSA4NS4wMiBMIDM4MS4yMiA4MC4zMCBaIE0gMC4xOCA4MC44OCBMIDQ4Ljg2IDEzLjIxIEwgNy4zMiAxMi44NSBMIDYuOTYgMTIuMzIgTCA2Ljk2IDExLjQzIEwgNi45NiAxMC41MyBMIDYuOTYgOS42NCBMIDYuOTYgOC43NSBMIDYuOTYgNy44NiBMIDYuOTYgNi45NiBMIDYuOTYgNi4wNyBMIDYuOTYgNS4xOCBMIDYuOTYgNC4yOCBMIDYuOTYgMy4zOSBMIDYuOTYgMi41MCBMIDYuOTYgMS42MSBMIDcuMTQgMC44OSBMIDcuMzIgMC41NCBMIDc0LjA4IDAuMTggTCAxOS41MCA3Ni4wNiBMIDYxLjA2IDc2LjU5IEwgNjEuMjQgNzcuMzEgTCA2MS40MiA3OC4wMiBMIDYxLjQyIDc4LjkxIEwgNjEuNDIgNzkuODEgTCA2MS40MiA4MC43MCBMIDYxLjQyIDgxLjU5IEwgNjEuNDIgODIuNDggTCA2MS40MiA4My4zOCBMIDYxLjQyIDg0LjI3IEwgNjEuNDIgODUuMTYgTCA2MS40MiA4Ni4wNSBMIDYxLjQyIDg2Ljk1IEwgNjEuNDIgODcuODQgTCA2MS4wNiA4OC4zOCBMIDYxLjA2IDg4LjczIEwgMC4zNiA4OC43MyBMIDAuMTggODguMzggTCAwLjAwIDg4LjAyIEwgMC4wMCA4Ny40OCBMIDAuMDAgODYuOTUgTCAwLjAwIDg2LjQxIEwgMC4wMCA4NS44OCBMIDAuMDAgODUuMzQgTCAwLjAwIDg0LjgxIEwgMC4wMCA4NC4yNyBMIDAuMDAgODMuNzMgTCAwLjAwIDgzLjIwIEwgMC4wMCA4Mi42NiBMIDAuMDAgODIuMTMgTCAwLjAwIDgxLjU5IEwgMC4xOCA4MS4yMyBaIE0gOTYuMjMgMC41NCBMIDE1MC41MSAwLjcxIEwgMTUwLjY5IDEuNDMgTCAxNTAuODYgMi4xNCBMIDE1MC44NiAzLjA0IEwgMTUwLjg2IDMuOTMgTCAxNTAuODYgNC44MiBMIDE1MC44NiA1LjcxIEwgMTUwLjg2IDYuNjEgTCAxNTAuODYgNy41MCBMIDE1MC44NiA4LjM5IEwgMTUwLjg2IDkuMjggTCAxNTAuODYgMTAuMTggTCAxNTAuODYgMTEuMDcgTCAxNTAuODYgMTEuOTYgTCAxNTAuNTEgMTIuNTAgTCAxNTAuNTEgMTIuNjggTCAxMDkuMDkgMTMuMzkgTCAxMDguNzMgMTQuODIgTCAxMDguNzMgMTYuMjUgTCAxMDguNzMgMTguMDMgTCAxMDguNzMgMTkuODIgTCAxMDguNzMgMjEuNjAgTCAxMDguNzMgMjMuMzkgTCAxMDguNzMgMjUuMTcgTCAxMDguNzMgMjYuOTYgTCAxMDguNzMgMjguNzQgTCAxMDguNzMgMzAuNTMgTCAxMDguNzMgMzIuMzIgTCAxMDguNzMgMzQuMTAgTCAxMDguNzMgMzUuODkgTCAxMDguOTEgMzcuNDkgTCAxMDkuMDkgMzguMjEgTCAxNDMuMjIgMzguMzkgTCAxNDMuMTEgNTEuMjQgTCAxMDkuMDkgNTEuNDIgTCAxMDguNzMgNTIuODUgTCAxMDguNzMgNTQuNjMgTCAxMDguNzMgNTYuNDIgTCAxMDguNzMgNTguMjAgTCAxMDguNzMgNTkuOTkgTCAxMDguNzMgNjEuNzcgTCAxMDguNzMgNjMuNTYgTCAxMDguNzMgNjUuMzQgTCAxMDguNzMgNjcuMTMgTCAxMDguNzMgNjguOTIgTCAxMDguNzMgNzAuNzAgTCAxMDguNzMgNzIuNDkgTCAxMDguNzMgNzQuMjcgTCAxMDkuMDkgNzUuNzAgTCAxMDkuMDkgNzUuODggTCAxNTAuMTUgNzYuNTkgTCAxNTAuNTEgNzcuMTMgTCAxNTAuODYgNzcuNjYgTCAxNTAuODYgNzguNTYgTCAxNTAuODYgNzkuNDUgTCAxNTAuODYgODAuMzQgTCAxNTAuODYgODEuMjMgTCAxNTAuODYgODIuMTMgTCAxNTAuODYgODMuMDIgTCAxNTAuODYgODMuOTEgTCAxNTAuODYgODQuODEgTCAxNTAuODYgODUuNzAgTCAxNTAuODYgODYuNTkgTCAxNTAuODYgODcuNDggTCAxNTAuNjkgODguMjAgTCAxNTAuNjkgODguMzggTCA5Ni40MSA4OC45MSBMIDk1Ljg3IDgzLjU2IEwgOTUuODcgNzcuMzEgTCA5NS44NyA3MS4wNiBMIDk1Ljg3IDY0LjgxIEwgOTUuODcgNTguNTYgTCA5NS44NyA1Mi4zMSBMIDk1Ljg3IDQ2LjA2IEwgOTUuODcgMzkuODEgTCA5NS44NyAzMy41NyBMIDk1Ljg3IDI3LjMyIEwgOTUuODcgMjEuMDcgTCA5NS44NyAxNC44MiBMIDk1Ljg3IDguNTcgTCA5NS44NyAyLjMyIFogTSAyODcuMjcgMC41NCBMIDI5NS44NCAwLjE4IEwgMzA0Ljc2IDAuMTggTCAzMTMuNjkgMC4xOCBMIDMyMi4yNiAwLjU0IEwgMzI5LjIyIDIuNTAgTCAzMzQuOTQgNS43MSBMIDMzOS41OCAxMC4wMCBMIDM0Mi45NyAxNS41MyBMIDM0NS40NyAyMS45NiBMIDM0NS42NSAzMC4zNSBMIDM0NC4wNCAzNy42NyBMIDM0MC42NSA0My4yMSBMIDMzNi4zNiA0Ny44NSBMIDMzMS4xOSA1MS42MCBMIDMzMC44MyA1MS45NSBMIDM1MS4zNCA3OC43MCBMIDM0MS4yMCA4Ni42MyBMIDMxNS45MyA1NC4yOCBMIDMwMC4xMiA1NC40NSBMIDI5OS43NiA1Ni4wNiBMIDI5OS43NiA1OC4wMiBMIDI5OS43NiA1OS45OSBMIDI5OS43NiA2MS45NSBMIDI5OS43NiA2My45MiBMIDI5OS43NiA2NS44OCBMIDI5OS43NiA2Ny44NCBMIDI5OS43NiA2OS44MSBMIDI5OS43NiA3MS43NyBMIDI5OS43NiA3My43NCBMIDI5OS43NiA3NS43MCBMIDI5OS43NiA3Ny42NiBMIDI5OS43NiA3OS42MyBMIDI5OS43NiA4MS41OSBMIDI5OS40MSA4Mi40OCBMIDI4Ny4yNyA4Mi40OCBMIDI4Ni45MSA3Ni45NSBMIDI4Ni45MSA3MS4wNiBMIDI4Ni45MSA2NS4xNyBMIDI4Ni45MSA1OS4yNyBMIDI4Ni45MSA1My4zOCBMIDI4Ni45MSA0Ny40OSBMIDI4Ni45MSA0MS42MCBMIDI4Ni45MSAzNS43MSBMIDI4Ni45MSAyOS44MiBMIDI4Ni45MSAyMy45MiBMIDI4Ni45MSAxOC4wMyBMIDI4Ni45MSAxMi4xNCBMIDI4Ni45MSA2LjI1IEwgMjg3LjI3IDAuNzEgWiBNIDE4NS43NSA5LjI1IEwgMTk3LjY5IDQuNDMgTCAyMjIuMDIgNjUuMzQgTCAyNDYuMzUgNC40MyBMIDI1OC4yOCA5LjI0IEwgMjIyLjAyIDEwMC4wMCBaIE0gMzAwLjEyIDEzLjU3IEwgMzAyLjgwIDEzLjIxIEwgMzA1LjgzIDEzLjIxIEwgMzA4Ljg3IDEzLjIxIEwgMzExLjkwIDEzLjIxIEwgMzE0Ljk0IDEzLjIxIEwgMzE3Ljk3IDEzLjIxIEwgMzIwLjgzIDEzLjM5IEwgMzIzLjE1IDE0LjEwIEwgMzI1LjQ3IDE0LjgyIEwgMzI3LjI2IDE2LjA3IEwgMzI4Ljg3IDE3LjUwIEwgMzMwLjI5IDE5LjEwIEwgMzMxLjU0IDIwLjg5IEwgMzMyLjQ0IDIzLjAzIEwgMzMyLjYyIDIzLjIxIEwgMzMyLjk3IDI2LjQyIEwgMzMyLjc5IDI5LjgyIEwgMzMxLjkwIDMyLjQ5IEwgMzMwLjgzIDM0Ljk5IEwgMzI5LjIyIDM2Ljk2IEwgMzI3LjI2IDM4LjU2IEwgMzI1LjEyIDM5Ljk5IEwgMzIyLjQ0IDQwLjg5IEwgMzE5LjQwIDQxLjQyIEwgMzE1LjgzIDQxLjQyIEwgMzEyLjI2IDQxLjQyIEwgMzA4LjY5IDQxLjQyIEwgMzA1LjEyIDQxLjQyIEwgMzAxLjU1IDQxLjQyIEwgMzAwLjEyIDQxLjA2IEwgMjk5Ljc2IDM5LjQ2IEwgMjk5Ljc2IDM3LjQ5IEwgMjk5Ljc2IDM1LjUzIEwgMjk5Ljc2IDMzLjU3IEwgMjk5Ljc2IDMxLjYwIEwgMjk5Ljc2IDI5LjY0IEwgMjk5Ljc2IDI3LjY3IEwgMjk5Ljc2IDI1LjcxIEwgMjk5Ljc2IDIzLjc1IEwgMjk5Ljc2IDIxLjc4IEwgMjk5Ljc2IDE5LjgyIEwgMjk5Ljc2IDE3Ljg1IEwgMjk5Ljc2IDE1Ljg5IEwgMjk5Ljk0IDE0LjEwIFogTSA0MTcuNTIgMjQuMTIgTCA0MjcuMzMgNDguNzQgTCA0MDcuNzAgNDguNzQgWiIvPgo8L3N2Zz4K'
|
|
26
|
+
|
|
24
27
|
/** Le nom lisible de chaque produit, depuis logos/index.json. */
|
|
25
28
|
export const NOMS_PRODUITS: Record<GlypheId, string> = {
|
|
26
29
|
'campus': "Campus",
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
// GÉNÉRÉ par scripts/build-glyph-data.mjs — ne pas éditer à la main.
|
|
2
|
+
|
|
3
|
+
/** Où la planche publie les glyphes (staticDirs de .storybook/main.ts). */
|
|
4
|
+
export const BASE_RESSOURCES = 'https://design.zevra.tech'
|
|
5
|
+
|
|
6
|
+
/** L'URL PUBLIQUE de chaque glyphe. Absolue, parce qu'un e-mail ne résout
|
|
7
|
+
* ni un chemin relatif ni une data-URI. */
|
|
8
|
+
export const LOGOS_PRODUITS = {
|
|
9
|
+
'campus': `${BASE_RESSOURCES}/logos/glyphes/campus.png`,
|
|
10
|
+
'lexform': `${BASE_RESSOURCES}/logos/glyphes/lexform.png`,
|
|
11
|
+
'mcp': `${BASE_RESSOURCES}/logos/glyphes/mcp.png`,
|
|
12
|
+
'memoire': `${BASE_RESSOURCES}/logos/glyphes/memoire.png`,
|
|
13
|
+
'plume': `${BASE_RESSOURCES}/logos/glyphes/plume.png`,
|
|
14
|
+
'supernovia': `${BASE_RESSOURCES}/logos/glyphes/supernovia.png`,
|
|
15
|
+
'zevra': `${BASE_RESSOURCES}/logos/glyphes/zevra.png`,
|
|
16
|
+
} as const
|
package/react/glyphes.ts
CHANGED
|
@@ -14,10 +14,10 @@
|
|
|
14
14
|
// elle n'existe pas encore (retirée le 24/08, à regénérer), et ces glyphes
|
|
15
15
|
// ne doivent donc pas descendre sous cette taille.
|
|
16
16
|
|
|
17
|
-
import { GLYPHES, NOMS_PRODUITS, type GlypheId } from './glyph-data.js'
|
|
17
|
+
import { GLYPHES, MOT_ZEVRA, NOMS_PRODUITS, type GlypheId } from './glyph-data.js'
|
|
18
18
|
|
|
19
19
|
export type { GlypheId }
|
|
20
|
-
export { GLYPHES, NOMS_PRODUITS }
|
|
20
|
+
export { GLYPHES, MOT_ZEVRA, NOMS_PRODUITS }
|
|
21
21
|
|
|
22
22
|
/** Les sept identifiants, triés. */
|
|
23
23
|
export const PRODUITS = Object.keys(GLYPHES) as GlypheId[]
|
package/src/data.css
CHANGED
|
@@ -577,6 +577,9 @@
|
|
|
577
577
|
|
|
578
578
|
.zv-chip {
|
|
579
579
|
display: inline-block;
|
|
580
|
+
/* Même défense que .zv-filetype : blockifiée comme enfant flex, une
|
|
581
|
+
* étiquette étirée cesse de se lire comme une étiquette. */
|
|
582
|
+
align-self: start;
|
|
580
583
|
background: var(--hairline);
|
|
581
584
|
padding: 3px 9px;
|
|
582
585
|
font-size: var(--mono);
|
|
@@ -674,6 +677,12 @@
|
|
|
674
677
|
|
|
675
678
|
.zv-filetype {
|
|
676
679
|
flex: none;
|
|
680
|
+
/* ⚠️ Une vignette posée dans une colonne flex (.zv-list__main) s'étire sur
|
|
681
|
+
* toute la largeur si on ne l'en empêche pas : elle cesse alors d'être une
|
|
682
|
+
* vignette et se lit comme une bande de couleur. Même raison que le
|
|
683
|
+
* `justify-self: start` de .zv-badge en grille — vu au rendu, pas à la
|
|
684
|
+
* relecture. */
|
|
685
|
+
align-self: start;
|
|
677
686
|
padding: 2px 5px;
|
|
678
687
|
text-align: center;
|
|
679
688
|
font-family: var(--font-mono);
|
package/src/feedback.css
CHANGED
|
@@ -195,6 +195,9 @@
|
|
|
195
195
|
/* En cellule de grille, une étiquette étirée sur toute la colonne cesse
|
|
196
196
|
* de se lire comme une étiquette : elle se cale à gauche sur sa largeur. */
|
|
197
197
|
justify-self: start;
|
|
198
|
+
/* Et son équivalent en flex : une colonne flex étire ses enfants, et
|
|
199
|
+
* l'étiquette y deviendrait une bande. */
|
|
200
|
+
align-self: start;
|
|
198
201
|
border: 1px solid;
|
|
199
202
|
padding: 3px 8px;
|
|
200
203
|
font-family: var(--font-mono);
|
package/src/surfaces.css
CHANGED
|
@@ -173,13 +173,39 @@
|
|
|
173
173
|
background: radial-gradient(closest-side, rgba(32, 160, 240, 0.5), rgba(32, 160, 240, 0) 70%);
|
|
174
174
|
}
|
|
175
175
|
|
|
176
|
-
/* Texte
|
|
177
|
-
|
|
178
|
-
|
|
176
|
+
/* ─── Texte sur fond sombre ─────────────────────────────────────────────
|
|
177
|
+
* Ni blanc pur, ni le gris du mode clair.
|
|
178
|
+
*
|
|
179
|
+
* ⚠️ POURQUOI CETTE RÈGLE EXISTE, ET POURQUOI ELLE COUVRE TOUT. Les classes
|
|
180
|
+
* de texte du paquet posent leur PROPRE couleur (.zv-body, .zv-lead,
|
|
181
|
+
* .zv-note et .zv-rule sont en --muted ; .zv-h1 en --ink). Cette couleur
|
|
182
|
+
* l'emporte sur celle héritée de la surface : poser un paragraphe dans un
|
|
183
|
+
* panneau navy donnait du gris de mode clair sur du bleu nuit, et un titre
|
|
184
|
+
* h1 y devenait carrément invisible.
|
|
185
|
+
*
|
|
186
|
+
* La règle ne visait que `.zv-band` et deux classes. Les autres surfaces
|
|
187
|
+
* sombres du système — le panneau navy, l'enveloppe .zv-text-on-dark, la
|
|
188
|
+
* planche sociale — n'étaient pas couvertes, et les trois autres paliers de
|
|
189
|
+
* texte non plus. Corrigé le 27/08/2026 : une seule liste, toutes les
|
|
190
|
+
* surfaces, tous les paliers.
|
|
191
|
+
*
|
|
192
|
+
* Ce qui reste EXPLICITE et ne s'adapte pas tout seul : les labels mono
|
|
193
|
+
* (`Mono ton="on-dark"`) et la mise en valeur (`Em surSombre`). Ceux-là
|
|
194
|
+
* changent de RÔLE sur fond sombre, pas seulement de clarté — c'est une
|
|
195
|
+
* décision de rédaction, elle se pose à la main. */
|
|
196
|
+
:is(.zv-band, .zv-panel-navy, .zv-text-on-dark, .zv-social--manifeste)
|
|
197
|
+
:is(.zv-body, .zv-lead, .zv-rule, .zv-note),
|
|
179
198
|
.zv-text-on-dark {
|
|
180
199
|
color: #c7cde0;
|
|
181
200
|
}
|
|
182
201
|
|
|
202
|
+
/* Les titres, eux, reprennent le blanc : sur une surface sombre ils portent
|
|
203
|
+
* la même hiérarchie que l'encre sur le papier. */
|
|
204
|
+
:is(.zv-band, .zv-panel-navy, .zv-text-on-dark, .zv-social--manifeste)
|
|
205
|
+
:is(.zv-h1, .zv-h2, .zv-h3, .zv-card-title, .zv-display) {
|
|
206
|
+
color: var(--white);
|
|
207
|
+
}
|
|
208
|
+
|
|
183
209
|
/* Panneau navy compact (planches de logos). */
|
|
184
210
|
.zv-panel-navy {
|
|
185
211
|
background: linear-gradient(135deg, #06063a 0%, #0b0b5e 40%, var(--accent-deep) 100%);
|