@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/src/icons.css ADDED
@@ -0,0 +1,81 @@
1
+ /* Zevra UI — icônes
2
+ * Dépend de tokens.css. Le jeu lui-même vit dans icons/ (index + sprite).
3
+ *
4
+ * Les icônes sont TRACÉES, jamais pleines : trait à l'épaisseur 2, bouts et
5
+ * jonctions arrondis, sur une grille de 24. Elles héritent de la couleur du
6
+ * texte — c'est ce qui leur permet de fonctionner sur papier comme sur la
7
+ * bande manifeste sans qu'on ait à les décliner.
8
+ *
9
+ * Deux façons de les poser :
10
+ *
11
+ * <svg class="zv-icon"><use href="…/icons/sprite.svg#zv-recherche"/></svg>
12
+ *
13
+ * ou, là où les ressources distantes sont interdites — un canvas Claude
14
+ * Design —, en collant le corps de l'icône depuis icons/index.json.
15
+ */
16
+
17
+ .zv-icon {
18
+ display: inline-block;
19
+ width: 16px;
20
+ height: 16px;
21
+ /* `flex: none` évite l'écrasement quand l'icône est posée à côté d'un
22
+ * libellé long dans un conteneur flex — le cas le plus fréquent, et la
23
+ * déformation la plus visible. */
24
+ flex: none;
25
+ vertical-align: middle;
26
+ fill: none;
27
+ stroke: currentColor;
28
+ stroke-width: 2;
29
+ stroke-linecap: round;
30
+ stroke-linejoin: round;
31
+ }
32
+
33
+ /* Accolée à du texte dense : métadonnée, puce de source, cellule. */
34
+ .zv-icon--sm {
35
+ width: 13px;
36
+ height: 13px;
37
+ /* Le trait s'épaissit optiquement quand l'icône rétrécit : on le compense,
38
+ * sinon une rangée d'icônes de tailles mêlées paraît déséquilibrée. */
39
+ stroke-width: 1.75;
40
+ }
41
+
42
+ /* Entrée de navigation, bouton de chrome. */
43
+ .zv-icon--lg {
44
+ width: 20px;
45
+ height: 20px;
46
+ }
47
+
48
+ /* Illustration d'un état vide, en tête de panneau. */
49
+ .zv-icon--xl {
50
+ width: 28px;
51
+ height: 28px;
52
+ stroke-width: 1.5;
53
+ }
54
+
55
+ /* Une icône seule dans un bouton n'a pas de libellé pour la nommer : elle
56
+ * doit porter un titre accessible. Cette classe ne fait que réserver la
57
+ * cible tactile ; le nom, lui, se pose en aria-label côté balisage. */
58
+ .zv-icon-btn {
59
+ display: inline-flex;
60
+ align-items: center;
61
+ justify-content: center;
62
+ width: var(--tap);
63
+ height: var(--tap);
64
+ padding: 0;
65
+ border: 0;
66
+ border-radius: var(--r-panel);
67
+ background: transparent;
68
+ color: var(--muted);
69
+ cursor: pointer;
70
+ }
71
+
72
+ .zv-icon-btn:hover {
73
+ background: var(--panel);
74
+ color: var(--ink);
75
+ }
76
+
77
+ /* Icône décorative posée à côté d'un libellé qui la nomme déjà : elle est
78
+ * atténuée pour que le mot reste le point d'entrée du regard. */
79
+ .zv-icon--quiet {
80
+ color: var(--label);
81
+ }
package/src/index.css CHANGED
@@ -9,3 +9,8 @@
9
9
  @import "./layout.css";
10
10
  @import "./surfaces.css";
11
11
  @import "./motion.css";
12
+ @import "./icons.css";
13
+ @import "./forms.css";
14
+ @import "./feedback.css";
15
+ @import "./navigation.css";
16
+ @import "./data.css";