@zevra/ui 0.1.0 → 0.2.0
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/icons/index.json +210 -0
- package/icons/sprite.svg +36 -0
- package/package.json +9 -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/DECISIONS.md
CHANGED
|
@@ -128,6 +128,62 @@ le composant plutôt qu'ajouté au token.
|
|
|
128
128
|
|
|
129
129
|
---
|
|
130
130
|
|
|
131
|
+
## La couche applicative (relevé Mémoire)
|
|
132
|
+
|
|
133
|
+
Les composants d'interface sont relevés dans l'application Mémoire, en
|
|
134
|
+
production, qui emploie les mêmes tokens de charte. Trois arbitrages de fond
|
|
135
|
+
ont été rendus :
|
|
136
|
+
|
|
137
|
+
**Les neutres.** Mémoire emploie six niveaux de gris là où la charte en a
|
|
138
|
+
trois, et deux d'entre eux — #6B7488 et #727C93 — **échouent au contraste AA**
|
|
139
|
+
sur texte normal (4,34 et 3,87), alors qu'ils portent justement le texte mono
|
|
140
|
+
de 10,5px : latences, horodatages, compteurs. Les adopter aurait gravé une
|
|
141
|
+
régression d'accessibilité. Ils se rabattent sur `--muted` (5,55). Un seul
|
|
142
|
+
niveau intermédiaire est ajouté, `--ink-2` (#4a5468, contraste 7,05).
|
|
143
|
+
|
|
144
|
+
**L'échelle de texte.** Le relevé compte huit paliers répartis dans 5,5px,
|
|
145
|
+
avec des demi-pixels et des écarts d'un pixel — de l'entropie d'utilitaires,
|
|
146
|
+
pas une échelle dessinée. Ils se regroupent en trois paliers de texte
|
|
147
|
+
(`--app-lg`, `--app`, `--app-sm`) et trois de labels (`--mono-lg`, `--mono`,
|
|
148
|
+
`--mono-sm`).
|
|
149
|
+
|
|
150
|
+
**Les filets et surfaces.** Cinq « nouveaux » tokens étaient des doublons
|
|
151
|
+
imperceptibles de tokens existants — écart RVB de 1,4 à 6,8, sous le seuil de
|
|
152
|
+
perception. `--line-inner` → `--hairline`, `--line-soft` → `--line`,
|
|
153
|
+
`--row-hover` / `--paper-hover` / `--paper-warm` → `--panel`.
|
|
154
|
+
|
|
155
|
+
Au total, 32 tokens proposés se réduisent à 14.
|
|
156
|
+
|
|
157
|
+
### Écarts assumés au relevé
|
|
158
|
+
|
|
159
|
+
**La barre supérieure.** La production pose `top: 53px` pour une barre de
|
|
160
|
+
52px, en supposant que son filet s'ajoute à la hauteur. Il ne s'y ajoute
|
|
161
|
+
pas : `box-sizing: border-box` le peint à l'intérieur. Ce pixel n'empilait
|
|
162
|
+
rien, il ouvrait une couture — et la feuille portant son propre filet haut,
|
|
163
|
+
le trait apparaissait doublé. Corrigé : la feuille se cale à ras, sans filet
|
|
164
|
+
propre.
|
|
165
|
+
|
|
166
|
+
**L'alignement des colonnes de chiffres.** Le relevé s'appuyait sur
|
|
167
|
+
`--font-mono` pour aligner les nombres. Or `--font-mono` vaut Space Grotesk,
|
|
168
|
+
qui n'est **pas à chasse fixe** : l'alignement n'aurait jamais tenu. Remplacé
|
|
169
|
+
par `font-variant-numeric: tabular-nums`, qui aligne les chiffres dans
|
|
170
|
+
n'importe quelle police.
|
|
171
|
+
|
|
172
|
+
**Le gris chaud.** `#6E6A61`, seule teinte chaude du relevé, se rabat sur
|
|
173
|
+
`--muted`. La nuance de température disparaît ; elle n'était reconductible
|
|
174
|
+
nulle part ailleurs.
|
|
175
|
+
|
|
176
|
+
### Ce que le relevé ne donnait pas
|
|
177
|
+
|
|
178
|
+
Aucun `<textarea>`, aucune case à cocher, aucun bouton radio n'existe dans
|
|
179
|
+
Mémoire : le composeur du chat est un `<input>`, et toute sélection passe par
|
|
180
|
+
des puces de filtre ou un interrupteur. Ces trois contrôles sont livrés,
|
|
181
|
+
dérivés strictement de `.zv-input`, et signalés comme tels dans le CSS.
|
|
182
|
+
|
|
183
|
+
Aucun jeu d'onglets non plus : une rangée d'onglets se construit avec
|
|
184
|
+
`.zv-seg-group` et `.zv-seg`. Un onglet **souligné** reste à faire — il
|
|
185
|
+
suppose d'arbitrer la couleur et l'épaisseur du trait actif.
|
|
186
|
+
|
|
131
187
|
## Écarté du paquet
|
|
132
188
|
|
|
133
189
|
Ce que le relevé recense mais que le paquet ne livre pas, faute d'usage hors
|
package/README.md
CHANGED
|
@@ -31,6 +31,11 @@ pnpm add @zevra/ui
|
|
|
31
31
|
@import "@zevra/ui/layout.css"; /* conteneurs, grilles, sections, chrome */
|
|
32
32
|
@import "@zevra/ui/surfaces.css"; /* halos, sols, voiles, manifeste */
|
|
33
33
|
@import "@zevra/ui/motion.css"; /* les neuf animations autorisées */
|
|
34
|
+
@import "@zevra/ui/icons.css"; /* dimensionnement des icônes */
|
|
35
|
+
@import "@zevra/ui/forms.css"; /* champs, selects, interrupteurs, dépôt */
|
|
36
|
+
@import "@zevra/ui/feedback.css"; /* alertes, badges, états, chargement */
|
|
37
|
+
@import "@zevra/ui/navigation.css"; /* menus, barre, fil d'Ariane, pagination */
|
|
38
|
+
@import "@zevra/ui/data.css"; /* tableaux, listes, clé-valeur, avatars */
|
|
34
39
|
```
|
|
35
40
|
|
|
36
41
|
L'ordre compte : les tokens d'abord, le socle ensuite. Toutes les classes sont
|
|
@@ -44,6 +49,24 @@ unique à 768px reprend les valeurs mobiles du relevé.
|
|
|
44
49
|
Chaque valeur vient des maquettes de la passation. Là où deux planches se
|
|
45
50
|
contredisaient, l'arbitrage est écrit dans [DECISIONS.md](DECISIONS.md).
|
|
46
51
|
|
|
52
|
+
## Deux couches
|
|
53
|
+
|
|
54
|
+
Le paquet en porte deux, et elles ne servent pas au même usage.
|
|
55
|
+
|
|
56
|
+
La **couche vitrine** — `base`, `components`, `layout`, `surfaces`, `motion` —
|
|
57
|
+
compose une page qui se lit : hero, sections, manifeste, cartes produit.
|
|
58
|
+
|
|
59
|
+
La **couche applicative** — `forms`, `feedback`, `navigation`, `data`, `icons` —
|
|
60
|
+
compose une interface qui s'opère : champs, alertes, menus, tableaux. Elle
|
|
61
|
+
est plus dense, et dispose de son échelle propre (`--app`, `--mono`).
|
|
62
|
+
|
|
63
|
+
Une app n'a aucune raison de charger les deux. Seuls `tokens.css` et
|
|
64
|
+
`base.css` sont communs.
|
|
65
|
+
|
|
66
|
+
Le tableau est **à base de grille**, pas de `<table>` : le gabarit de
|
|
67
|
+
colonnes se pose en `--zv-cols` sur le conteneur, et sous 768px la rangée
|
|
68
|
+
s'effondre en carte, chaque valeur reprenant son intitulé.
|
|
69
|
+
|
|
47
70
|
## Le mouvement
|
|
48
71
|
|
|
49
72
|
Neuf animations, pas une de plus, sous le préfixe `zv-anim-`. Sept sont
|
|
@@ -172,6 +195,9 @@ ci-dessus fonctionne telle quelle.
|
|
|
172
195
|
l'index régénéré.
|
|
173
196
|
5. Publier une version : `npm version <patch|minor|major>` puis `npm publish`.
|
|
174
197
|
|
|
198
|
+
`demo/index.html` exerce la couche vitrine, `demo/app.html` la couche
|
|
199
|
+
applicative. Aucune des deux n'est publiée dans le paquet.
|
|
200
|
+
|
|
175
201
|
`reference/` conserve les maquettes HTML, le prototype animé et les fichiers
|
|
176
202
|
d'origine de la passation. Ce dossier n'est **pas publié** dans le paquet : il
|
|
177
203
|
sert d'archive et de référence visuelle, pas de dépendance.
|
package/icons/index.json
ADDED
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
{
|
|
2
|
+
"note": "Source de vérité du jeu d'icônes. Modifier ici, puis relancer scripts/build-icon-sprite.mjs.",
|
|
3
|
+
"trace": "trait courant (currentColor), épaisseur 2, bouts et jonctions arrondis, viewBox 24×24",
|
|
4
|
+
"icones": [
|
|
5
|
+
{
|
|
6
|
+
"id": "accueil",
|
|
7
|
+
"nom": "Accueil",
|
|
8
|
+
"viewBox": "0 0 24 24",
|
|
9
|
+
"corps": "<path d=\"M4 10.67 L12 4 L20 10.67 V20 H4 Z\" /><path d=\"M9.33 20 V13.33 H14.67 V20\" />"
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
"id": "activite",
|
|
13
|
+
"nom": "Activité (pouls)",
|
|
14
|
+
"viewBox": "0 0 24 24",
|
|
15
|
+
"corps": "<path d=\"M3.33 12 H8 L10.67 5.33 L14 18.67 L16 12 H20.67\" />"
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"id": "app-couches",
|
|
19
|
+
"nom": "Application (couches)",
|
|
20
|
+
"viewBox": "0 0 24 24",
|
|
21
|
+
"corps": "<path d=\"M12 2.67 L20 6.67 L12 10.67 L4 6.67 Z\" /><path d=\"M4 12 L12 16 L20 12\" /><path d=\"M4 17.33 L12 21.33 L20 17.33\" />"
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"id": "archiver",
|
|
25
|
+
"nom": "Archiver",
|
|
26
|
+
"viewBox": "0 0 24 24",
|
|
27
|
+
"corps": "<rect x=\"3.33\" y=\"4\" width=\"17.33\" height=\"4.67\" rx=\"1.07\" /><path d=\"M5.33 8.67 V18.93 A1.07 1.07 0 0 0 6.4 20 H17.6 A1.07 1.07 0 0 0 18.67 18.93 V8.67\" /><path d=\"M9.33 12.67 H14.67\" />"
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"id": "base-de-donnees",
|
|
31
|
+
"nom": "Base de données",
|
|
32
|
+
"viewBox": "0 0 24 24",
|
|
33
|
+
"corps": "<ellipse cx=\"12\" cy=\"6\" rx=\"7.33\" ry=\"2.67\" /><path d=\"M4.67 6 V12 C4.67 13.47 7.87 14.67 12 14.67 C16.13 14.67 19.33 13.47 19.33 12 V6\" /><path d=\"M4.67 12 V18 C4.67 19.47 7.87 20.67 12 20.67 C16.13 20.67 19.33 19.47 19.33 18 V12\" />"
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
"id": "bouclier-verifie",
|
|
37
|
+
"nom": "Bouclier vérifié (authentification)",
|
|
38
|
+
"viewBox": "0 0 24 24",
|
|
39
|
+
"corps": "<path d=\"M12 2.67 L20 6 V12 C20 16.67 16.67 19.73 12 21.33 C7.33 19.73 4 16.67 4 12 V6 Z\" /><path d=\"M8.67 12 L11.07 14.4 L15.33 10\" />"
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
"id": "cadenas",
|
|
43
|
+
"nom": "Cadenas (secret)",
|
|
44
|
+
"viewBox": "0 0 24 24",
|
|
45
|
+
"corps": "<rect x=\"4.67\" y=\"10.67\" width=\"14.67\" height=\"9.33\" rx=\"1.6\" /><path d=\"M8 10.67 V7.33 A4 4 0 0 1 16 7.33 V10.67\" /><circle cx=\"12\" cy=\"15.33\" r=\"1.33\" />"
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
"id": "cadrer",
|
|
49
|
+
"nom": "Cadrer (ajuster à la vue)",
|
|
50
|
+
"viewBox": "0 0 24 24",
|
|
51
|
+
"corps": "<path d=\"M4 8 V4 H8\" /><path d=\"M20 8 V4 H16\" /><path d=\"M4 16 V20 H8\" /><path d=\"M20 16 V20 H16\" />"
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
"id": "chevron-bas",
|
|
55
|
+
"nom": "Chevron bas",
|
|
56
|
+
"viewBox": "0 0 24 24",
|
|
57
|
+
"corps": "<path d=\"M6.67 9.33 L12 14.67 L17.33 9.33\" />"
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
"id": "chevron-droit",
|
|
61
|
+
"nom": "Chevron droit",
|
|
62
|
+
"viewBox": "0 0 24 24",
|
|
63
|
+
"corps": "<path d=\"M9.33 4 L17.33 12 L9.33 20\" />"
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
"id": "chevron-gauche",
|
|
67
|
+
"nom": "Chevron gauche",
|
|
68
|
+
"viewBox": "0 0 24 24",
|
|
69
|
+
"corps": "<path d=\"M14.67 4 L6.67 12 L14.67 20\" />"
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
"id": "coche",
|
|
73
|
+
"nom": "Coche",
|
|
74
|
+
"viewBox": "0 0 24 24",
|
|
75
|
+
"corps": "<path d=\"M5 12.4 L9.4 16.8 L19 6.8\" />"
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
"id": "copier",
|
|
79
|
+
"nom": "Copier",
|
|
80
|
+
"viewBox": "0 0 24 24",
|
|
81
|
+
"corps": "<rect x=\"4\" y=\"4\" width=\"12\" height=\"12\" rx=\"1.6\" /><path d=\"M8 16 V18.93 A1.07 1.07 0 0 0 9.07 20 H18.93 A1.07 1.07 0 0 0 20 18.93 V9.07 A1.07 1.07 0 0 0 18.93 8 H16\" />"
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
"id": "corbeille",
|
|
85
|
+
"nom": "Corbeille (supprimer)",
|
|
86
|
+
"viewBox": "0 0 24 24",
|
|
87
|
+
"corps": "<path d=\"M4 6.67 H20\" /><path d=\"M9.33 6.67 V4.67 A1.33 1.33 0 0 1 10.67 3.33 H13.33 A1.33 1.33 0 0 1 14.67 4.67 V6.67\" /><path d=\"M6 6.67 L6.93 18.93 A1.33 1.33 0 0 0 8.27 20 H15.73 A1.33 1.33 0 0 0 17.07 18.93 L18 6.67\" /><path d=\"M10 10.67 V16.67\" /><path d=\"M14 10.67 V16.67\" />"
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
"id": "cube",
|
|
91
|
+
"nom": "Cube (stockage objet)",
|
|
92
|
+
"viewBox": "0 0 24 24",
|
|
93
|
+
"corps": "<path d=\"M3.33 8 L12 4 L20.67 8 V16 L12 20 L3.33 16 Z\" /><path d=\"M3.33 8 L12 12 L20.67 8\" /><path d=\"M12 12 V20\" />"
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
"id": "deconnexion",
|
|
97
|
+
"nom": "Déconnexion",
|
|
98
|
+
"viewBox": "0 0 24 24",
|
|
99
|
+
"corps": "<path d=\"M14.67 4 H5.33 V20 H14.67\" /><path d=\"M10.67 12 H20\" /><path d=\"M16.67 8 L20.67 12 L16.67 16\" />"
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
"id": "depot-fichier",
|
|
103
|
+
"nom": "Dépôt de fichier (zone de glisser-déposer)",
|
|
104
|
+
"viewBox": "0 0 24 24",
|
|
105
|
+
"corps": "<path d=\"M12 3.2 V14.4\" /><polyline points=\"7.6,10 12,14.4 16.4,10\" /><path d=\"M4 16.8 v2.4 a1.6 1.6 0 0 0 1.6 1.6 h12.8 a1.6 1.6 0 0 0 1.6-1.6 v-2.4\" />"
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
"id": "dossier",
|
|
109
|
+
"nom": "Dossier",
|
|
110
|
+
"viewBox": "0 0 24 24",
|
|
111
|
+
"corps": "<path d=\"M1.41 6.64a1.69 1.69 0 0 1 1.69-1.69h4.8l2.12 2.4h10.87a1.69 1.69 0 0 1 1.69 1.69v9.88a1.69 1.69 0 0 1-1.69 1.69H3.11A1.69 1.69 0 0 1 1.41 20.33V6.64Z\" />"
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
"id": "eclair",
|
|
115
|
+
"nom": "Éclair (action rapide)",
|
|
116
|
+
"viewBox": "0 0 24 24",
|
|
117
|
+
"corps": "<path d=\"M13.33 2.67 L5.33 13.33 H12 L10.67 21.33 L18.67 10.67 H12 Z\" />"
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
"id": "equipe",
|
|
121
|
+
"nom": "Équipe (membres)",
|
|
122
|
+
"viewBox": "0 0 24 24",
|
|
123
|
+
"corps": "<circle cx=\"9.33\" cy=\"8\" r=\"3.33\" /><path d=\"M3.33 20 C3.33 15.33 6 13.33 9.33 13.33 C12.67 13.33 15.33 15.33 15.33 20\" /><path d=\"M16 5.33 A2.93 2.93 0 0 1 16 11.07\" /><path d=\"M17.33 13.6 C19.73 14.27 20.67 16.4 20.67 20\" />"
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
"id": "etincelles",
|
|
127
|
+
"nom": "Étincelles (IA)",
|
|
128
|
+
"viewBox": "0 0 24 24",
|
|
129
|
+
"corps": "<path d=\"M12 2.67 L13.87 8.8 L20 10.67 L13.87 12.53 L12 18.67 L10.13 12.53 L4 10.67 L10.13 8.8 Z\" /><path d=\"M19.33 16.67 L20 18.67 L22 19.33 L20 20 L19.33 22 L18.67 20 L16.67 19.33 L18.67 18.67 Z\" />"
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
"id": "fermer",
|
|
133
|
+
"nom": "Fermer",
|
|
134
|
+
"viewBox": "0 0 24 24",
|
|
135
|
+
"corps": "<path d=\"M5.33 5.33 L18.67 18.67\" /><path d=\"M18.67 5.33 L5.33 18.67\" />"
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
"id": "horloge",
|
|
139
|
+
"nom": "Horloge (intégration continue)",
|
|
140
|
+
"viewBox": "0 0 24 24",
|
|
141
|
+
"corps": "<circle cx=\"12\" cy=\"12\" r=\"8\" /><path d=\"M12 6.67 V12 L15.33 14\" />"
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
"id": "lien-externe",
|
|
145
|
+
"nom": "Lien externe",
|
|
146
|
+
"viewBox": "0 0 24 24",
|
|
147
|
+
"corps": "<path d=\"M10.67 4 H4 V20 H20 V13.33\" /><path d=\"M14.67 4 H20 V9.33\" /><path d=\"M20 4 L12 12\" />"
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
"id": "menu",
|
|
151
|
+
"nom": "Menu (hamburger)",
|
|
152
|
+
"viewBox": "0 0 24 24",
|
|
153
|
+
"corps": "<path d=\"M0 5.33 H24\" /><path d=\"M0 12 H24\" /><path d=\"M0 18.67 H24\" />"
|
|
154
|
+
},
|
|
155
|
+
{
|
|
156
|
+
"id": "moins",
|
|
157
|
+
"nom": "Moins",
|
|
158
|
+
"viewBox": "0 0 24 24",
|
|
159
|
+
"corps": "<path d=\"M4 12 H20\" />"
|
|
160
|
+
},
|
|
161
|
+
{
|
|
162
|
+
"id": "oeil",
|
|
163
|
+
"nom": "Œil (afficher)",
|
|
164
|
+
"viewBox": "0 0 24 24",
|
|
165
|
+
"corps": "<path d=\"M2 12 C5.33 6.67 8.67 4.67 12 4.67 C15.33 4.67 18.67 6.67 22 12 C18.67 17.33 15.33 19.33 12 19.33 C8.67 19.33 5.33 17.33 2 12 Z\" /><circle cx=\"12\" cy=\"12\" r=\"2.67\" />"
|
|
166
|
+
},
|
|
167
|
+
{
|
|
168
|
+
"id": "plus",
|
|
169
|
+
"nom": "Plus",
|
|
170
|
+
"viewBox": "0 0 24 24",
|
|
171
|
+
"corps": "<path d=\"M12 4 V20\" /><path d=\"M4 12 H20\" />"
|
|
172
|
+
},
|
|
173
|
+
{
|
|
174
|
+
"id": "recherche",
|
|
175
|
+
"nom": "Recherche (loupe)",
|
|
176
|
+
"viewBox": "0 0 24 24",
|
|
177
|
+
"corps": "<circle cx=\"10.67\" cy=\"10.67\" r=\"6\" /><path d=\"M15.33 15.33 L20 20\" />"
|
|
178
|
+
},
|
|
179
|
+
{
|
|
180
|
+
"id": "registre",
|
|
181
|
+
"nom": "Registre (serveurs empilés)",
|
|
182
|
+
"viewBox": "0 0 24 24",
|
|
183
|
+
"corps": "<rect x=\"3.33\" y=\"5.33\" width=\"17.33\" height=\"5.33\" rx=\"1.33\" /><rect x=\"3.33\" y=\"13.33\" width=\"17.33\" height=\"5.33\" rx=\"1.33\" /><circle cx=\"6.67\" cy=\"8\" r=\"0.8\" fill=\"currentColor\" stroke=\"none\" /><circle cx=\"6.67\" cy=\"16\" r=\"0.8\" fill=\"currentColor\" stroke=\"none\" />"
|
|
184
|
+
},
|
|
185
|
+
{
|
|
186
|
+
"id": "reglages",
|
|
187
|
+
"nom": "Réglages",
|
|
188
|
+
"viewBox": "0 0 24 24",
|
|
189
|
+
"corps": "<circle cx=\"12\" cy=\"12\" r=\"2.93\" /><path d=\"M12 2 V4.67 M12 19.33 V22 M2 12 H4.67 M19.33 12 H22 M4.8 4.8 L6.67 6.67 M17.33 17.33 L19.2 19.2 M19.2 4.8 L17.33 6.67 M6.67 17.33 L4.8 19.2\" />"
|
|
190
|
+
},
|
|
191
|
+
{
|
|
192
|
+
"id": "reseau",
|
|
193
|
+
"nom": "Réseau (entrée / globe)",
|
|
194
|
+
"viewBox": "0 0 24 24",
|
|
195
|
+
"corps": "<circle cx=\"12\" cy=\"12\" r=\"8\" /><path d=\"M4 12 H20\" /><path d=\"M12 4 C14.67 8 14.67 16 12 20\" /><path d=\"M12 4 C9.33 8 9.33 16 12 20\" />"
|
|
196
|
+
},
|
|
197
|
+
{
|
|
198
|
+
"id": "taches",
|
|
199
|
+
"nom": "Tâches (liste à cocher)",
|
|
200
|
+
"viewBox": "0 0 24 24",
|
|
201
|
+
"corps": "<path d=\"M4.67 6.67 L6.67 8.67 L10 5.33\" /><path d=\"M4.67 16 L6.67 18 L10 14.67\" /><path d=\"M13.33 7.33 H20\" /><path d=\"M13.33 16.67 H20\" />"
|
|
202
|
+
},
|
|
203
|
+
{
|
|
204
|
+
"id": "trois-points",
|
|
205
|
+
"nom": "Trois points (menu contextuel)",
|
|
206
|
+
"viewBox": "0 0 24 24",
|
|
207
|
+
"corps": "<circle cx=\"5.33\" cy=\"12\" r=\"1.33\" fill=\"currentColor\" stroke=\"none\" /><circle cx=\"12\" cy=\"12\" r=\"1.33\" fill=\"currentColor\" stroke=\"none\" /><circle cx=\"18.67\" cy=\"12\" r=\"1.33\" fill=\"currentColor\" stroke=\"none\" />"
|
|
208
|
+
}
|
|
209
|
+
]
|
|
210
|
+
}
|
package/icons/sprite.svg
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" style="display:none" aria-hidden="true">
|
|
2
|
+
<symbol id="zv-accueil" viewBox="0 0 24 24"><path d="M4 10.67 L12 4 L20 10.67 V20 H4 Z" /><path d="M9.33 20 V13.33 H14.67 V20" /></symbol>
|
|
3
|
+
<symbol id="zv-activite" viewBox="0 0 24 24"><path d="M3.33 12 H8 L10.67 5.33 L14 18.67 L16 12 H20.67" /></symbol>
|
|
4
|
+
<symbol id="zv-app-couches" viewBox="0 0 24 24"><path d="M12 2.67 L20 6.67 L12 10.67 L4 6.67 Z" /><path d="M4 12 L12 16 L20 12" /><path d="M4 17.33 L12 21.33 L20 17.33" /></symbol>
|
|
5
|
+
<symbol id="zv-archiver" viewBox="0 0 24 24"><rect x="3.33" y="4" width="17.33" height="4.67" rx="1.07" /><path d="M5.33 8.67 V18.93 A1.07 1.07 0 0 0 6.4 20 H17.6 A1.07 1.07 0 0 0 18.67 18.93 V8.67" /><path d="M9.33 12.67 H14.67" /></symbol>
|
|
6
|
+
<symbol id="zv-base-de-donnees" viewBox="0 0 24 24"><ellipse cx="12" cy="6" rx="7.33" ry="2.67" /><path d="M4.67 6 V12 C4.67 13.47 7.87 14.67 12 14.67 C16.13 14.67 19.33 13.47 19.33 12 V6" /><path d="M4.67 12 V18 C4.67 19.47 7.87 20.67 12 20.67 C16.13 20.67 19.33 19.47 19.33 18 V12" /></symbol>
|
|
7
|
+
<symbol id="zv-bouclier-verifie" viewBox="0 0 24 24"><path d="M12 2.67 L20 6 V12 C20 16.67 16.67 19.73 12 21.33 C7.33 19.73 4 16.67 4 12 V6 Z" /><path d="M8.67 12 L11.07 14.4 L15.33 10" /></symbol>
|
|
8
|
+
<symbol id="zv-cadenas" viewBox="0 0 24 24"><rect x="4.67" y="10.67" width="14.67" height="9.33" rx="1.6" /><path d="M8 10.67 V7.33 A4 4 0 0 1 16 7.33 V10.67" /><circle cx="12" cy="15.33" r="1.33" /></symbol>
|
|
9
|
+
<symbol id="zv-cadrer" viewBox="0 0 24 24"><path d="M4 8 V4 H8" /><path d="M20 8 V4 H16" /><path d="M4 16 V20 H8" /><path d="M20 16 V20 H16" /></symbol>
|
|
10
|
+
<symbol id="zv-chevron-bas" viewBox="0 0 24 24"><path d="M6.67 9.33 L12 14.67 L17.33 9.33" /></symbol>
|
|
11
|
+
<symbol id="zv-chevron-droit" viewBox="0 0 24 24"><path d="M9.33 4 L17.33 12 L9.33 20" /></symbol>
|
|
12
|
+
<symbol id="zv-chevron-gauche" viewBox="0 0 24 24"><path d="M14.67 4 L6.67 12 L14.67 20" /></symbol>
|
|
13
|
+
<symbol id="zv-coche" viewBox="0 0 24 24"><path d="M5 12.4 L9.4 16.8 L19 6.8" /></symbol>
|
|
14
|
+
<symbol id="zv-copier" viewBox="0 0 24 24"><rect x="4" y="4" width="12" height="12" rx="1.6" /><path d="M8 16 V18.93 A1.07 1.07 0 0 0 9.07 20 H18.93 A1.07 1.07 0 0 0 20 18.93 V9.07 A1.07 1.07 0 0 0 18.93 8 H16" /></symbol>
|
|
15
|
+
<symbol id="zv-corbeille" viewBox="0 0 24 24"><path d="M4 6.67 H20" /><path d="M9.33 6.67 V4.67 A1.33 1.33 0 0 1 10.67 3.33 H13.33 A1.33 1.33 0 0 1 14.67 4.67 V6.67" /><path d="M6 6.67 L6.93 18.93 A1.33 1.33 0 0 0 8.27 20 H15.73 A1.33 1.33 0 0 0 17.07 18.93 L18 6.67" /><path d="M10 10.67 V16.67" /><path d="M14 10.67 V16.67" /></symbol>
|
|
16
|
+
<symbol id="zv-cube" viewBox="0 0 24 24"><path d="M3.33 8 L12 4 L20.67 8 V16 L12 20 L3.33 16 Z" /><path d="M3.33 8 L12 12 L20.67 8" /><path d="M12 12 V20" /></symbol>
|
|
17
|
+
<symbol id="zv-deconnexion" viewBox="0 0 24 24"><path d="M14.67 4 H5.33 V20 H14.67" /><path d="M10.67 12 H20" /><path d="M16.67 8 L20.67 12 L16.67 16" /></symbol>
|
|
18
|
+
<symbol id="zv-depot-fichier" viewBox="0 0 24 24"><path d="M12 3.2 V14.4" /><polyline points="7.6,10 12,14.4 16.4,10" /><path d="M4 16.8 v2.4 a1.6 1.6 0 0 0 1.6 1.6 h12.8 a1.6 1.6 0 0 0 1.6-1.6 v-2.4" /></symbol>
|
|
19
|
+
<symbol id="zv-dossier" viewBox="0 0 24 24"><path d="M1.41 6.64a1.69 1.69 0 0 1 1.69-1.69h4.8l2.12 2.4h10.87a1.69 1.69 0 0 1 1.69 1.69v9.88a1.69 1.69 0 0 1-1.69 1.69H3.11A1.69 1.69 0 0 1 1.41 20.33V6.64Z" /></symbol>
|
|
20
|
+
<symbol id="zv-eclair" viewBox="0 0 24 24"><path d="M13.33 2.67 L5.33 13.33 H12 L10.67 21.33 L18.67 10.67 H12 Z" /></symbol>
|
|
21
|
+
<symbol id="zv-equipe" viewBox="0 0 24 24"><circle cx="9.33" cy="8" r="3.33" /><path d="M3.33 20 C3.33 15.33 6 13.33 9.33 13.33 C12.67 13.33 15.33 15.33 15.33 20" /><path d="M16 5.33 A2.93 2.93 0 0 1 16 11.07" /><path d="M17.33 13.6 C19.73 14.27 20.67 16.4 20.67 20" /></symbol>
|
|
22
|
+
<symbol id="zv-etincelles" viewBox="0 0 24 24"><path d="M12 2.67 L13.87 8.8 L20 10.67 L13.87 12.53 L12 18.67 L10.13 12.53 L4 10.67 L10.13 8.8 Z" /><path d="M19.33 16.67 L20 18.67 L22 19.33 L20 20 L19.33 22 L18.67 20 L16.67 19.33 L18.67 18.67 Z" /></symbol>
|
|
23
|
+
<symbol id="zv-fermer" viewBox="0 0 24 24"><path d="M5.33 5.33 L18.67 18.67" /><path d="M18.67 5.33 L5.33 18.67" /></symbol>
|
|
24
|
+
<symbol id="zv-horloge" viewBox="0 0 24 24"><circle cx="12" cy="12" r="8" /><path d="M12 6.67 V12 L15.33 14" /></symbol>
|
|
25
|
+
<symbol id="zv-lien-externe" viewBox="0 0 24 24"><path d="M10.67 4 H4 V20 H20 V13.33" /><path d="M14.67 4 H20 V9.33" /><path d="M20 4 L12 12" /></symbol>
|
|
26
|
+
<symbol id="zv-menu" viewBox="0 0 24 24"><path d="M0 5.33 H24" /><path d="M0 12 H24" /><path d="M0 18.67 H24" /></symbol>
|
|
27
|
+
<symbol id="zv-moins" viewBox="0 0 24 24"><path d="M4 12 H20" /></symbol>
|
|
28
|
+
<symbol id="zv-oeil" viewBox="0 0 24 24"><path d="M2 12 C5.33 6.67 8.67 4.67 12 4.67 C15.33 4.67 18.67 6.67 22 12 C18.67 17.33 15.33 19.33 12 19.33 C8.67 19.33 5.33 17.33 2 12 Z" /><circle cx="12" cy="12" r="2.67" /></symbol>
|
|
29
|
+
<symbol id="zv-plus" viewBox="0 0 24 24"><path d="M12 4 V20" /><path d="M4 12 H20" /></symbol>
|
|
30
|
+
<symbol id="zv-recherche" viewBox="0 0 24 24"><circle cx="10.67" cy="10.67" r="6" /><path d="M15.33 15.33 L20 20" /></symbol>
|
|
31
|
+
<symbol id="zv-registre" viewBox="0 0 24 24"><rect x="3.33" y="5.33" width="17.33" height="5.33" rx="1.33" /><rect x="3.33" y="13.33" width="17.33" height="5.33" rx="1.33" /><circle cx="6.67" cy="8" r="0.8" fill="currentColor" stroke="none" /><circle cx="6.67" cy="16" r="0.8" fill="currentColor" stroke="none" /></symbol>
|
|
32
|
+
<symbol id="zv-reglages" viewBox="0 0 24 24"><circle cx="12" cy="12" r="2.93" /><path d="M12 2 V4.67 M12 19.33 V22 M2 12 H4.67 M19.33 12 H22 M4.8 4.8 L6.67 6.67 M17.33 17.33 L19.2 19.2 M19.2 4.8 L17.33 6.67 M6.67 17.33 L4.8 19.2" /></symbol>
|
|
33
|
+
<symbol id="zv-reseau" viewBox="0 0 24 24"><circle cx="12" cy="12" r="8" /><path d="M4 12 H20" /><path d="M12 4 C14.67 8 14.67 16 12 20" /><path d="M12 4 C9.33 8 9.33 16 12 20" /></symbol>
|
|
34
|
+
<symbol id="zv-taches" viewBox="0 0 24 24"><path d="M4.67 6.67 L6.67 8.67 L10 5.33" /><path d="M4.67 16 L6.67 18 L10 14.67" /><path d="M13.33 7.33 H20" /><path d="M13.33 16.67 H20" /></symbol>
|
|
35
|
+
<symbol id="zv-trois-points" viewBox="0 0 24 24"><circle cx="5.33" cy="12" r="1.33" fill="currentColor" stroke="none" /><circle cx="12" cy="12" r="1.33" fill="currentColor" stroke="none" /><circle cx="18.67" cy="12" r="1.33" fill="currentColor" stroke="none" /></symbol>
|
|
36
|
+
</svg>
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zevra/ui",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "Design system Zevra « Encre & Papier » — tokens, CSS des composants et logos officiels.",
|
|
5
5
|
"license": "UNLICENSED",
|
|
6
6
|
"private": false,
|
|
@@ -29,12 +29,19 @@
|
|
|
29
29
|
"./layout.css": "./src/layout.css",
|
|
30
30
|
"./surfaces.css": "./src/surfaces.css",
|
|
31
31
|
"./motion.css": "./src/motion.css",
|
|
32
|
-
"./logos/*": "./logos/*"
|
|
32
|
+
"./logos/*": "./logos/*",
|
|
33
|
+
"./icons.css": "./src/icons.css",
|
|
34
|
+
"./forms.css": "./src/forms.css",
|
|
35
|
+
"./feedback.css": "./src/feedback.css",
|
|
36
|
+
"./navigation.css": "./src/navigation.css",
|
|
37
|
+
"./data.css": "./src/data.css",
|
|
38
|
+
"./icons/*": "./icons/*"
|
|
33
39
|
},
|
|
34
40
|
"files": [
|
|
35
41
|
"src",
|
|
36
42
|
"tokens",
|
|
37
43
|
"logos",
|
|
44
|
+
"icons",
|
|
38
45
|
"README.md",
|
|
39
46
|
"DECISIONS.md"
|
|
40
47
|
],
|
package/src/components.css
CHANGED
|
@@ -232,14 +232,13 @@
|
|
|
232
232
|
padding: 32px;
|
|
233
233
|
}
|
|
234
234
|
|
|
235
|
-
/* Carte de statut.
|
|
236
|
-
* pas de --err-line, là où --ok-line existe. Asymétrie du jeu de tokens. */
|
|
235
|
+
/* Carte de statut. Les trois familles d'état ont désormais leur filet. */
|
|
237
236
|
.zv-card--ok {
|
|
238
237
|
border-color: var(--ok-line);
|
|
239
238
|
}
|
|
240
239
|
|
|
241
240
|
.zv-card--err {
|
|
242
|
-
border-color:
|
|
241
|
+
border-color: var(--err-line);
|
|
243
242
|
}
|
|
244
243
|
|
|
245
244
|
/* Carte flottante : celle qui se détache au-dessus d'une scène. */
|