@zevra/ui 0.1.0 → 0.2.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 +56 -0
- package/README.md +26 -0
- package/demo/app.html +233 -0
- package/demo/index.html +242 -0
- package/icons/index.json +210 -0
- package/icons/sprite.svg +36 -0
- package/package.json +11 -2
- package/src/components.css +2 -3
- package/src/data.css +742 -0
- package/src/feedback.css +566 -0
- package/src/forms.css +815 -0
- package/src/icons.css +81 -0
- package/src/index.css +5 -0
- package/src/navigation.css +814 -0
- package/src/tokens.css +57 -1
- package/tokens/index.js +27 -1
package/src/tokens.css
CHANGED
|
@@ -11,6 +11,11 @@
|
|
|
11
11
|
:root {
|
|
12
12
|
/* Neutres (charte Mémoire) */
|
|
13
13
|
--ink: #0b1020;
|
|
14
|
+
/* Niveau intermédiaire, entre l'encre et le gris : titre de colonne,
|
|
15
|
+
* valeur de cellule, segment de fil d'Ariane. L'interface applicative en a
|
|
16
|
+
* besoin, la vitrine non — d'où son absence des premières planches.
|
|
17
|
+
* Contraste 7,05 sur papier : conforme AA sur texte normal. */
|
|
18
|
+
--ink-2: #4a5468;
|
|
14
19
|
--muted: #5a637a;
|
|
15
20
|
--label: #8a93a8;
|
|
16
21
|
--line: #e3e6ef;
|
|
@@ -39,12 +44,22 @@
|
|
|
39
44
|
--manifeste: linear-gradient(135deg, #06063a 0%, #0b0b5e 28%, #1e1b8c 55%, #3d36d6 80%, #2080f0 100%);
|
|
40
45
|
--accent-on-dark: #a5b4fc;
|
|
41
46
|
|
|
42
|
-
/* États
|
|
47
|
+
/* États — trois familles symétriques : le ton plein (texte, icône), le
|
|
48
|
+
* fond atténué (bandeau d'alerte) et le filet (bordure de carte).
|
|
49
|
+
* Relevés dans l'application Mémoire, où ils servent déjà en production. */
|
|
43
50
|
--ok: #1c6b4a;
|
|
44
51
|
--ok-soft: #e6f3ec;
|
|
45
52
|
--ok-line: #bfdccb;
|
|
46
53
|
--warn: #b98a1f;
|
|
54
|
+
--warn-soft: #faf3e2;
|
|
55
|
+
--warn-line: #ebdcb4;
|
|
56
|
+
/* L'ambre plein est trop clair pour du texte sur fond atténué : il lui
|
|
57
|
+
* faut une déclinaison sombre. --ok et --err, eux, sont déjà assez
|
|
58
|
+
* contrastés pour servir de couleur de texte — d'où l'asymétrie. */
|
|
59
|
+
--warn-ink: #8a6d1e;
|
|
47
60
|
--err: #b5202c;
|
|
61
|
+
--err-soft: #fdece9;
|
|
62
|
+
--err-line: #efc9cd;
|
|
48
63
|
|
|
49
64
|
/* Typo — Google Fonts : Outfit (display), Public Sans (texte), Space Grotesk (labels) */
|
|
50
65
|
--font-display: "Outfit", "Helvetica Neue", Arial, sans-serif; /* titres 200-400, wordmarks 600 */
|
|
@@ -71,6 +86,47 @@
|
|
|
71
86
|
--shadow-btn: 0 10px 28px rgba(30, 27, 140, 0.30);
|
|
72
87
|
--shadow-glyph: drop-shadow(0 24px 32px rgba(88, 72, 248, 0.28));
|
|
73
88
|
|
|
89
|
+
/* ─── Couche applicative ──────────────────────────────────────────────
|
|
90
|
+
* Une interface est plus dense qu'une page vitrine : elle a besoin d'une
|
|
91
|
+
* échelle plus serrée que --body/--lead, et de mesures que la vitrine
|
|
92
|
+
* n'a jamais eu à nommer.
|
|
93
|
+
*
|
|
94
|
+
* Relevé dans l'application Mémoire, puis RATIONALISÉ : la production
|
|
95
|
+
* emploie huit paliers de texte répartis dans 5,5 px, avec des demi-pixels
|
|
96
|
+
* et des écarts d'un pixel. C'est de l'entropie d'utilitaires, pas une
|
|
97
|
+
* échelle. Les paliers ci-dessous les regroupent ; le détail des
|
|
98
|
+
* rabattements est dans DECISIONS.md. */
|
|
99
|
+
|
|
100
|
+
/* Texte applicatif */
|
|
101
|
+
--app-lg: 14px; /* corps de message, lien de navigation */
|
|
102
|
+
--app: 13px; /* texte courant : cellule, carte, champ de saisie */
|
|
103
|
+
--app-sm: 12px; /* mention secondaire : statut, aide, note de contexte */
|
|
104
|
+
|
|
105
|
+
/* Titres applicatifs — au-dessus, --card-title (24px) fait le titre de page */
|
|
106
|
+
--app-h2: 20px; /* titre de fiche, d'état vide, d'interstice */
|
|
107
|
+
--app-h3: 16px; /* titre de panneau latéral, de feuille de source */
|
|
108
|
+
|
|
109
|
+
/* Labels capitales, échelle applicative */
|
|
110
|
+
--mono-lg: 11px; /* compteur, fil d'Ariane, horodatage */
|
|
111
|
+
--mono: 10px; /* métadonnée, label de colonne */
|
|
112
|
+
--mono-sm: 9px; /* badge dense : niveau de log, statut de coque */
|
|
113
|
+
|
|
114
|
+
/* Mesures */
|
|
115
|
+
--tap: 40px; /* cible tactile minimale, sous le point de rupture */
|
|
116
|
+
--topbar-h: 52px; /* hauteur de la barre supérieure applicative */
|
|
117
|
+
|
|
118
|
+
/* Ombre de menu déroulant — la seule surface qui flotte au-dessus du
|
|
119
|
+
* contenu sans être une carte ; ni --shadow-card ni --shadow-panel ne
|
|
120
|
+
* conviennent, l'une est trop plate, l'autre trop théâtrale. */
|
|
121
|
+
--shadow-menu: 0 8px 24px rgba(11, 16, 32, 0.1);
|
|
122
|
+
|
|
123
|
+
/* Couleurs de format de fichier. Elles ne viennent PAS de la charte : ce
|
|
124
|
+
* sont les couleurs que le monde associe à ces formats, et les détourner
|
|
125
|
+
* rendrait les vignettes illisibles au premier coup d'œil. Seul usage
|
|
126
|
+
* autorisé : la pastille de format. */
|
|
127
|
+
--fmt-pdf: #c4362b;
|
|
128
|
+
--fmt-docx: #2a5ba8;
|
|
129
|
+
|
|
74
130
|
/* Signature */
|
|
75
131
|
--spec-filet: 56px; /* filet de spectre 56×2px devant chaque kicker */
|
|
76
132
|
}
|
package/tokens/index.js
CHANGED
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
export const couleurs = {
|
|
14
14
|
// Neutres
|
|
15
15
|
ink: '#0b1020',
|
|
16
|
+
ink2: '#4a5468',
|
|
16
17
|
muted: '#5a637a',
|
|
17
18
|
label: '#8a93a8',
|
|
18
19
|
line: '#e3e6ef',
|
|
@@ -42,7 +43,15 @@ export const couleurs = {
|
|
|
42
43
|
okSoft: '#e6f3ec',
|
|
43
44
|
okLine: '#bfdccb',
|
|
44
45
|
warn: '#b98a1f',
|
|
46
|
+
warnSoft: '#faf3e2',
|
|
47
|
+
warnLine: '#ebdcb4',
|
|
48
|
+
warnInk: '#8a6d1e',
|
|
45
49
|
err: '#b5202c',
|
|
50
|
+
errSoft: '#fdece9',
|
|
51
|
+
errLine: '#efc9cd',
|
|
52
|
+
// Couleurs de format de fichier — hors charte, voir tokens.css.
|
|
53
|
+
fmtPdf: '#c4362b',
|
|
54
|
+
fmtDocx: '#2a5ba8',
|
|
46
55
|
}
|
|
47
56
|
|
|
48
57
|
/** Dégradés. Ce sont des valeurs CSS complètes, pas des couleurs. */
|
|
@@ -72,6 +81,22 @@ export const tailles = {
|
|
|
72
81
|
cardTitle: '24px',
|
|
73
82
|
lead: '18px',
|
|
74
83
|
body: '15px',
|
|
84
|
+
// Échelle applicative — plus serrée que la vitrine, voir tokens.css.
|
|
85
|
+
appLg: '14px',
|
|
86
|
+
app: '13px',
|
|
87
|
+
appSm: '12px',
|
|
88
|
+
appH2: '20px',
|
|
89
|
+
appH3: '16px',
|
|
90
|
+
monoLg: '11px',
|
|
91
|
+
mono: '10px',
|
|
92
|
+
monoSm: '9px',
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
/** Mesures d'interface qui ne sont ni des couleurs ni des tailles de texte. */
|
|
96
|
+
export const mesures = {
|
|
97
|
+
tap: '40px',
|
|
98
|
+
topbarH: '52px',
|
|
99
|
+
specFilet: '56px',
|
|
75
100
|
}
|
|
76
101
|
|
|
77
102
|
export const rayons = {
|
|
@@ -82,10 +107,11 @@ export const rayons = {
|
|
|
82
107
|
}
|
|
83
108
|
|
|
84
109
|
export const ombres = {
|
|
110
|
+
menu: '0 8px 24px rgba(11, 16, 32, 0.1)',
|
|
85
111
|
card: '0 2px 10px rgba(11, 16, 32, 0.05)',
|
|
86
112
|
panel: '0 24px 60px rgba(30, 27, 140, 0.12)',
|
|
87
113
|
btn: '0 10px 28px rgba(30, 27, 140, 0.30)',
|
|
88
114
|
glyph: 'drop-shadow(0 24px 32px rgba(88, 72, 248, 0.28))',
|
|
89
115
|
}
|
|
90
116
|
|
|
91
|
-
export default { couleurs, degrades, serieGraphique, polices, tailles, rayons, ombres }
|
|
117
|
+
export default { couleurs, degrades, serieGraphique, polices, tailles, mesures, rayons, ombres }
|