@syncupsuite/themes 0.2.2 → 0.3.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.
Files changed (39) hide show
  1. package/dist/index.cjs +11527 -1399
  2. package/dist/index.cjs.map +1 -1
  3. package/dist/index.d.cts +13 -1
  4. package/dist/index.d.ts +13 -1
  5. package/dist/index.js +11520 -1398
  6. package/dist/index.js.map +1 -1
  7. package/package.json +2 -2
  8. package/src/art-deco/meta.json +50 -0
  9. package/src/art-deco/tailwind.css +391 -0
  10. package/src/art-deco/tokens.css +319 -0
  11. package/src/art-deco/tokens.json +840 -0
  12. package/src/nihon-minimal/meta.json +44 -0
  13. package/src/nihon-minimal/tailwind.css +361 -0
  14. package/src/nihon-minimal/tokens.css +299 -0
  15. package/src/nihon-minimal/tokens.json +780 -0
  16. package/src/nihon-traditional/meta.json +1 -1
  17. package/src/nihon-traditional/tailwind.css +111 -89
  18. package/src/nihon-traditional/tokens.css +105 -91
  19. package/src/nihon-traditional/tokens.json +89 -89
  20. package/src/nordic-modern/meta.json +56 -0
  21. package/src/nordic-modern/tailwind.css +421 -0
  22. package/src/nordic-modern/tokens.css +339 -0
  23. package/src/nordic-modern/tokens.json +900 -0
  24. package/src/renaissance/meta.json +56 -0
  25. package/src/renaissance/tailwind.css +421 -0
  26. package/src/renaissance/tokens.css +339 -0
  27. package/src/renaissance/tokens.json +900 -0
  28. package/src/shuimo-modern/meta.json +56 -0
  29. package/src/shuimo-modern/tailwind.css +421 -0
  30. package/src/shuimo-modern/tokens.css +339 -0
  31. package/src/shuimo-modern/tokens.json +900 -0
  32. package/src/swiss-international/meta.json +1 -1
  33. package/src/swiss-international/tailwind.css +107 -85
  34. package/src/swiss-international/tokens.css +101 -87
  35. package/src/swiss-international/tokens.json +85 -85
  36. package/src/tang-imperial/meta.json +56 -0
  37. package/src/tang-imperial/tailwind.css +421 -0
  38. package/src/tang-imperial/tokens.css +339 -0
  39. package/src/tang-imperial/tokens.json +900 -0
@@ -0,0 +1,56 @@
1
+ {
2
+ "id": "renaissance",
3
+ "name": "Renaissance (Rinascimento)",
4
+ "description": "Renaissance (Rinascimento) — the rich humanist palette of Italian masters, from lapis lazuli ultramarine to Tuscan earth and gold leaf",
5
+ "foundation": {
6
+ "story": "The Italian Renaissance (14th–17th century) transformed art through oil painting, linear perspective, and a palette derived from mineral pigments traded across the Mediterranean. Ultramarine from Afghan lapis lazuli cost more than gold. Tuscan earth pigments — sienna, umber, ochre — grounded compositions in warmth. Gold leaf connected human achievement to divine light. The palette of Raphael, Titian, and Botticelli remains the Western canon's richest.",
7
+ "philosophy": "Rinascimento — the rebirth of classical learning, humanist confidence in beauty and proportion",
8
+ "era": "Italian Renaissance (14th–17th century)",
9
+ "harmonyMode": "triadic",
10
+ "radiusTendency": "moderate",
11
+ "typographyCategory": "modern-serif"
12
+ },
13
+ "seedColors": [
14
+ {
15
+ "hex": "#2F4A9E",
16
+ "name": "Oltremare (Ultramarine)",
17
+ "tradition": "From lapis lazuli mined in Badakhshan, Afghanistan — ground, purified, and mixed with oil. More expensive than gold per ounce, it was reserved for the Virgin Mary's robe.",
18
+ "source": "Color: A Natural History of the Palette, Victoria Finlay"
19
+ },
20
+ {
21
+ "hex": "#A0522D",
22
+ "name": "Terra di Siena (Sienna Earth)",
23
+ "tradition": "Burnt sienna — iron-rich earth from Tuscany, heated to deepen its red-brown warmth. The shadow tone in chiaroscuro painting from Leonardo to Caravaggio.",
24
+ "source": "The Materials and Techniques of Medieval Painting, Daniel V. Thompson"
25
+ },
26
+ {
27
+ "hex": "#B8952F",
28
+ "name": "Oro (Gold Leaf)",
29
+ "tradition": "Beaten gold applied to gesso grounds in tempera painting. From Giotto's haloes to Ghiberti's bronze doors, gold represented divine light breaking through the earthly plane.",
30
+ "source": "The Craftsman's Handbook (Il Libro dell'Arte), Cennino Cennini"
31
+ },
32
+ {
33
+ "hex": "#5E6B3A",
34
+ "name": "Verdaccio",
35
+ "tradition": "A green-grey earth underpainting used to model flesh tones before color layers. The structural skeleton of Renaissance portraiture.",
36
+ "source": "The Craftsman's Handbook, Cennino Cennini"
37
+ },
38
+ {
39
+ "hex": "#F2E8D5",
40
+ "name": "Pergamena (Parchment)",
41
+ "tradition": "Calfskin vellum — the surface for illuminated manuscripts from Petrarch's sonnets to Leonardo's notebooks. Warm, organic, never pure white.",
42
+ "source": "The Art of Renaissance Europe, Boskovits & Brown"
43
+ },
44
+ {
45
+ "hex": "#6B4423",
46
+ "name": "Ombra Naturale (Raw Umber)",
47
+ "tradition": "Manganese-rich earth from Umbria — the deep brown of shadow and depth. Essential for the sfumato technique of Leonardo da Vinci.",
48
+ "source": "The Materials and Techniques of Medieval Painting, Daniel V. Thompson"
49
+ }
50
+ ],
51
+ "validation": {
52
+ "schema": true,
53
+ "contrast": true,
54
+ "completeness": true
55
+ }
56
+ }
@@ -0,0 +1,421 @@
1
+ @import "tailwindcss";
2
+
3
+ @theme {
4
+ /* --- Colors --- */
5
+ /* Oltremare (Ultramarine) 50 */
6
+ --color-oltremare-ultramarine-50: #EAF5FF;
7
+ /* Oltremare (Ultramarine) 100 */
8
+ --color-oltremare-ultramarine-100: #C2D2F8;
9
+ /* Oltremare (Ultramarine) 200 */
10
+ --color-oltremare-ultramarine-200: #9AAFE2;
11
+ /* Oltremare (Ultramarine) 300 */
12
+ --color-oltremare-ultramarine-300: #748DCC;
13
+ /* Oltremare (Ultramarine) 400 */
14
+ --color-oltremare-ultramarine-400: #506CB5;
15
+ /* Oltremare (Ultramarine) 500 */
16
+ --color-oltremare-ultramarine-500: #2F4A9E;
17
+ /* Oltremare (Ultramarine) 600 */
18
+ --color-oltremare-ultramarine-600: #1F357E;
19
+ /* Oltremare (Ultramarine) 700 */
20
+ --color-oltremare-ultramarine-700: #10215F;
21
+ /* Oltremare (Ultramarine) 800 */
22
+ --color-oltremare-ultramarine-800: #040D41;
23
+ /* Oltremare (Ultramarine) 900 */
24
+ --color-oltremare-ultramarine-900: #010026;
25
+ /* Terra di Siena (Sienna Earth) 50 */
26
+ --color-terra-di-siena-sienna-earth-50: #FFF0E6;
27
+ /* Terra di Siena (Sienna Earth) 100 */
28
+ --color-terra-di-siena-sienna-earth-100: #F3CFC0;
29
+ /* Terra di Siena (Sienna Earth) 200 */
30
+ --color-terra-di-siena-sienna-earth-200: #DFAF9A;
31
+ /* Terra di Siena (Sienna Earth) 300 */
32
+ --color-terra-di-siena-sienna-earth-300: #CB9076;
33
+ /* Terra di Siena (Sienna Earth) 400 */
34
+ --color-terra-di-siena-sienna-earth-400: #B67152;
35
+ /* Terra di Siena (Sienna Earth) 500 */
36
+ --color-terra-di-siena-sienna-earth-500: #A0522D;
37
+ /* Terra di Siena (Sienna Earth) 600 */
38
+ --color-terra-di-siena-sienna-earth-600: #7B3817;
39
+ /* Terra di Siena (Sienna Earth) 700 */
40
+ --color-terra-di-siena-sienna-earth-700: #582001;
41
+ /* Terra di Siena (Sienna Earth) 800 */
42
+ --color-terra-di-siena-sienna-earth-800: #370800;
43
+ /* Terra di Siena (Sienna Earth) 900 */
44
+ --color-terra-di-siena-sienna-earth-900: #180000;
45
+ /* Oro (Gold Leaf) 50 */
46
+ --color-oro-gold-leaf-50: #FDF5DE;
47
+ /* Oro (Gold Leaf) 100 */
48
+ --color-oro-gold-leaf-100: #EFE1BE;
49
+ /* Oro (Gold Leaf) 200 */
50
+ --color-oro-gold-leaf-200: #E1CE9D;
51
+ /* Oro (Gold Leaf) 300 */
52
+ --color-oro-gold-leaf-300: #D3BB7C;
53
+ /* Oro (Gold Leaf) 400 */
54
+ --color-oro-gold-leaf-400: #C6A859;
55
+ /* Oro (Gold Leaf) 500 */
56
+ --color-oro-gold-leaf-500: #B8952F;
57
+ /* Oro (Gold Leaf) 600 */
58
+ --color-oro-gold-leaf-600: #896B01;
59
+ /* Oro (Gold Leaf) 700 */
60
+ --color-oro-gold-leaf-700: #5D4400;
61
+ /* Oro (Gold Leaf) 800 */
62
+ --color-oro-gold-leaf-800: #352000;
63
+ /* Oro (Gold Leaf) 900 */
64
+ --color-oro-gold-leaf-900: #100300;
65
+ /* Verdaccio 50 */
66
+ --color-verdaccio-50: #F3F7EA;
67
+ /* Verdaccio 100 */
68
+ --color-verdaccio-100: #D3DAC5;
69
+ /* Verdaccio 200 */
70
+ --color-verdaccio-200: #B4BDA1;
71
+ /* Verdaccio 300 */
72
+ --color-verdaccio-300: #96A17E;
73
+ /* Verdaccio 400 */
74
+ --color-verdaccio-400: #7A865C;
75
+ /* Verdaccio 500 */
76
+ --color-verdaccio-500: #5E6B3A;
77
+ /* Verdaccio 600 */
78
+ --color-verdaccio-600: #444F25;
79
+ /* Verdaccio 700 */
80
+ --color-verdaccio-700: #2C3510;
81
+ /* Verdaccio 800 */
82
+ --color-verdaccio-800: #161D00;
83
+ /* Verdaccio 900 */
84
+ --color-verdaccio-900: #040700;
85
+ /* Pergamena (Parchment) 50 */
86
+ --color-pergamena-parchment-50: #F7F5F0;
87
+ /* Pergamena (Parchment) 100 */
88
+ --color-pergamena-parchment-100: #F6F2EB;
89
+ /* Pergamena (Parchment) 200 */
90
+ --color-pergamena-parchment-200: #F5F0E5;
91
+ /* Pergamena (Parchment) 300 */
92
+ --color-pergamena-parchment-300: #F4EDE0;
93
+ /* Pergamena (Parchment) 400 */
94
+ --color-pergamena-parchment-400: #F3EBDA;
95
+ /* Pergamena (Parchment) 500 */
96
+ --color-pergamena-parchment-500: #F2E8D5;
97
+ /* Pergamena (Parchment) 600 */
98
+ --color-pergamena-parchment-600: #AFA797;
99
+ /* Pergamena (Parchment) 700 */
100
+ --color-pergamena-parchment-700: #716A5D;
101
+ /* Pergamena (Parchment) 800 */
102
+ --color-pergamena-parchment-800: #383329;
103
+ /* Pergamena (Parchment) 900 */
104
+ --color-pergamena-parchment-900: #080502;
105
+ /* Ombra Naturale (Raw Umber) 50 */
106
+ --color-ombra-naturale-raw-umber-50: #FFF3E9;
107
+ /* Ombra Naturale (Raw Umber) 100 */
108
+ --color-ombra-naturale-raw-umber-100: #E0CDBF;
109
+ /* Ombra Naturale (Raw Umber) 200 */
110
+ --color-ombra-naturale-raw-umber-200: #C2A996;
111
+ /* Ombra Naturale (Raw Umber) 300 */
112
+ --color-ombra-naturale-raw-umber-300: #A5866F;
113
+ /* Ombra Naturale (Raw Umber) 400 */
114
+ --color-ombra-naturale-raw-umber-400: #876449;
115
+ /* Ombra Naturale (Raw Umber) 500 */
116
+ --color-ombra-naturale-raw-umber-500: #6B4423;
117
+ /* Ombra Naturale (Raw Umber) 600 */
118
+ --color-ombra-naturale-raw-umber-600: #523114;
119
+ /* Ombra Naturale (Raw Umber) 700 */
120
+ --color-ombra-naturale-raw-umber-700: #3B1F05;
121
+ /* Ombra Naturale (Raw Umber) 800 */
122
+ --color-ombra-naturale-raw-umber-800: #250E00;
123
+ /* Ombra Naturale (Raw Umber) 900 */
124
+ --color-ombra-naturale-raw-umber-900: #110200;
125
+ /* Neutral 50 */
126
+ --color-neutral-50: #F5F8FF;
127
+ /* Neutral 100 */
128
+ --color-neutral-100: #EBEEF6;
129
+ /* Neutral 200 */
130
+ --color-neutral-200: #DBDEE6;
131
+ /* Neutral 300 */
132
+ --color-neutral-300: #C1C4CC;
133
+ /* Neutral 400 */
134
+ --color-neutral-400: #95989F;
135
+ /* Neutral 500 */
136
+ --color-neutral-500: #6C6F75;
137
+ /* Neutral 600 */
138
+ --color-neutral-600: #4A4D53;
139
+ /* Neutral 700 */
140
+ --color-neutral-700: #303339;
141
+ /* Neutral 800 */
142
+ --color-neutral-800: #181B20;
143
+ /* Neutral 900 */
144
+ --color-neutral-900: #06070C;
145
+ /* Accent 50 */
146
+ --color-accent-50: #FFECEF;
147
+ /* Accent 100 */
148
+ --color-accent-100: #F8C6CC;
149
+ /* Accent 200 */
150
+ --color-accent-200: #E3A0A9;
151
+ /* Accent 300 */
152
+ --color-accent-300: #CD7C88;
153
+ /* Accent 400 */
154
+ --color-accent-400: #B55768;
155
+ /* Accent 500 */
156
+ --color-accent-500: #9D2F4A;
157
+ /* Accent 600 */
158
+ --color-accent-600: #7A1A34;
159
+ /* Accent 700 */
160
+ --color-accent-700: #590320;
161
+ /* Accent 800 */
162
+ --color-accent-800: #3A000D;
163
+ /* Accent 900 */
164
+ --color-accent-900: #1C0001;
165
+
166
+ /* --- Spacing (8px grid) --- */
167
+ /* Spacing 0 (0px) */
168
+ --spacing-0: 0px;
169
+ /* Spacing 1 (4px) */
170
+ --spacing-1: 4px;
171
+ /* Spacing 2 (8px) */
172
+ --spacing-2: 8px;
173
+ /* Spacing 3 (12px) */
174
+ --spacing-3: 12px;
175
+ /* Spacing 4 (16px) */
176
+ --spacing-4: 16px;
177
+ /* Spacing 5 (20px) */
178
+ --spacing-5: 20px;
179
+ /* Spacing 6 (24px) */
180
+ --spacing-6: 24px;
181
+ /* Spacing 8 (32px) */
182
+ --spacing-8: 32px;
183
+ /* Spacing 10 (40px) */
184
+ --spacing-10: 40px;
185
+ /* Spacing 12 (48px) */
186
+ --spacing-12: 48px;
187
+ /* Spacing 16 (64px) */
188
+ --spacing-16: 64px;
189
+ /* Spacing 20 (80px) */
190
+ --spacing-20: 80px;
191
+ /* Spacing 0.5 (2px) */
192
+ --spacing-0-5: 2px;
193
+ /* Spacing 1.5 (6px) */
194
+ --spacing-1-5: 6px;
195
+
196
+ /* --- Font Families --- */
197
+ /* Heading font family */
198
+ --font-heading: "Cormorant Garamond", "Didot", Georgia, serif;
199
+ /* Body font family */
200
+ --font-body: "Source Serif 4", Georgia, serif;
201
+ /* Monospace font family */
202
+ --font-mono: "JetBrains Mono", "Fira Code", monospace;
203
+
204
+ /* --- Font Sizes --- */
205
+ /* Font size xs */
206
+ --text-xs: 0.75rem;
207
+ /* Font size sm */
208
+ --text-sm: 0.875rem;
209
+ /* Font size base */
210
+ --text-base: 1rem;
211
+ /* Font size lg */
212
+ --text-lg: 1.125rem;
213
+ /* Font size xl */
214
+ --text-xl: 1.25rem;
215
+ /* Font size 2xl */
216
+ --text-2xl: 1.5rem;
217
+ /* Font size 3xl */
218
+ --text-3xl: 1.875rem;
219
+ /* Font size 4xl */
220
+ --text-4xl: 2.25rem;
221
+
222
+ /* --- Border Radius --- */
223
+ /* Border radius none */
224
+ --radius-none: 0px;
225
+ /* Border radius sm */
226
+ --radius-sm: 4px;
227
+ /* Border radius md */
228
+ --radius-md: 8px;
229
+ /* Border radius lg */
230
+ --radius-lg: 12px;
231
+ /* Border radius xl */
232
+ --radius-xl: 16px;
233
+ /* Border radius full */
234
+ --radius-full: 9999px;
235
+
236
+ }
237
+
238
+ /* === Semantic Color API — theme-aware Tailwind utilities === */
239
+ @theme {
240
+ --color-canvas: var(--background-canvas);
241
+ --color-surface: var(--background-surface);
242
+ --color-muted: var(--background-muted);
243
+ --color-foreground: var(--text-primary);
244
+ --color-foreground-secondary: var(--text-secondary);
245
+ --color-foreground-muted: var(--text-muted);
246
+ --color-foreground-inverse: var(--text-inverse);
247
+ --color-primary: var(--interactive-primary);
248
+ --color-primary-hover: var(--interactive-primary-hover);
249
+ --color-primary-active: var(--interactive-primary-active);
250
+ --color-border: var(--border-default);
251
+ --color-border-strong: var(--border-strong);
252
+ --color-error: var(--status-error);
253
+ --color-success: var(--status-success);
254
+ --color-warning: var(--status-warning);
255
+ --color-info: var(--status-info);
256
+ --color-ring: var(--focus-ring);
257
+ --color-focus-visible: var(--accessibility-focus-visible);
258
+ }
259
+
260
+ /* Primitive aliases + light mode semantic tokens */
261
+ :root {
262
+ /* --primitive-color-* aliases → @theme --color-* (for semantic var() resolution) */
263
+ --primitive-color-oltremare-ultramarine-50: var(--color-oltremare-ultramarine-50);
264
+ --primitive-color-oltremare-ultramarine-100: var(--color-oltremare-ultramarine-100);
265
+ --primitive-color-oltremare-ultramarine-200: var(--color-oltremare-ultramarine-200);
266
+ --primitive-color-oltremare-ultramarine-300: var(--color-oltremare-ultramarine-300);
267
+ --primitive-color-oltremare-ultramarine-400: var(--color-oltremare-ultramarine-400);
268
+ --primitive-color-oltremare-ultramarine-500: var(--color-oltremare-ultramarine-500);
269
+ --primitive-color-oltremare-ultramarine-600: var(--color-oltremare-ultramarine-600);
270
+ --primitive-color-oltremare-ultramarine-700: var(--color-oltremare-ultramarine-700);
271
+ --primitive-color-oltremare-ultramarine-800: var(--color-oltremare-ultramarine-800);
272
+ --primitive-color-oltremare-ultramarine-900: var(--color-oltremare-ultramarine-900);
273
+ --primitive-color-terra-di-siena-sienna-earth-50: var(--color-terra-di-siena-sienna-earth-50);
274
+ --primitive-color-terra-di-siena-sienna-earth-100: var(--color-terra-di-siena-sienna-earth-100);
275
+ --primitive-color-terra-di-siena-sienna-earth-200: var(--color-terra-di-siena-sienna-earth-200);
276
+ --primitive-color-terra-di-siena-sienna-earth-300: var(--color-terra-di-siena-sienna-earth-300);
277
+ --primitive-color-terra-di-siena-sienna-earth-400: var(--color-terra-di-siena-sienna-earth-400);
278
+ --primitive-color-terra-di-siena-sienna-earth-500: var(--color-terra-di-siena-sienna-earth-500);
279
+ --primitive-color-terra-di-siena-sienna-earth-600: var(--color-terra-di-siena-sienna-earth-600);
280
+ --primitive-color-terra-di-siena-sienna-earth-700: var(--color-terra-di-siena-sienna-earth-700);
281
+ --primitive-color-terra-di-siena-sienna-earth-800: var(--color-terra-di-siena-sienna-earth-800);
282
+ --primitive-color-terra-di-siena-sienna-earth-900: var(--color-terra-di-siena-sienna-earth-900);
283
+ --primitive-color-oro-gold-leaf-50: var(--color-oro-gold-leaf-50);
284
+ --primitive-color-oro-gold-leaf-100: var(--color-oro-gold-leaf-100);
285
+ --primitive-color-oro-gold-leaf-200: var(--color-oro-gold-leaf-200);
286
+ --primitive-color-oro-gold-leaf-300: var(--color-oro-gold-leaf-300);
287
+ --primitive-color-oro-gold-leaf-400: var(--color-oro-gold-leaf-400);
288
+ --primitive-color-oro-gold-leaf-500: var(--color-oro-gold-leaf-500);
289
+ --primitive-color-oro-gold-leaf-600: var(--color-oro-gold-leaf-600);
290
+ --primitive-color-oro-gold-leaf-700: var(--color-oro-gold-leaf-700);
291
+ --primitive-color-oro-gold-leaf-800: var(--color-oro-gold-leaf-800);
292
+ --primitive-color-oro-gold-leaf-900: var(--color-oro-gold-leaf-900);
293
+ --primitive-color-verdaccio-50: var(--color-verdaccio-50);
294
+ --primitive-color-verdaccio-100: var(--color-verdaccio-100);
295
+ --primitive-color-verdaccio-200: var(--color-verdaccio-200);
296
+ --primitive-color-verdaccio-300: var(--color-verdaccio-300);
297
+ --primitive-color-verdaccio-400: var(--color-verdaccio-400);
298
+ --primitive-color-verdaccio-500: var(--color-verdaccio-500);
299
+ --primitive-color-verdaccio-600: var(--color-verdaccio-600);
300
+ --primitive-color-verdaccio-700: var(--color-verdaccio-700);
301
+ --primitive-color-verdaccio-800: var(--color-verdaccio-800);
302
+ --primitive-color-verdaccio-900: var(--color-verdaccio-900);
303
+ --primitive-color-pergamena-parchment-50: var(--color-pergamena-parchment-50);
304
+ --primitive-color-pergamena-parchment-100: var(--color-pergamena-parchment-100);
305
+ --primitive-color-pergamena-parchment-200: var(--color-pergamena-parchment-200);
306
+ --primitive-color-pergamena-parchment-300: var(--color-pergamena-parchment-300);
307
+ --primitive-color-pergamena-parchment-400: var(--color-pergamena-parchment-400);
308
+ --primitive-color-pergamena-parchment-500: var(--color-pergamena-parchment-500);
309
+ --primitive-color-pergamena-parchment-600: var(--color-pergamena-parchment-600);
310
+ --primitive-color-pergamena-parchment-700: var(--color-pergamena-parchment-700);
311
+ --primitive-color-pergamena-parchment-800: var(--color-pergamena-parchment-800);
312
+ --primitive-color-pergamena-parchment-900: var(--color-pergamena-parchment-900);
313
+ --primitive-color-ombra-naturale-raw-umber-50: var(--color-ombra-naturale-raw-umber-50);
314
+ --primitive-color-ombra-naturale-raw-umber-100: var(--color-ombra-naturale-raw-umber-100);
315
+ --primitive-color-ombra-naturale-raw-umber-200: var(--color-ombra-naturale-raw-umber-200);
316
+ --primitive-color-ombra-naturale-raw-umber-300: var(--color-ombra-naturale-raw-umber-300);
317
+ --primitive-color-ombra-naturale-raw-umber-400: var(--color-ombra-naturale-raw-umber-400);
318
+ --primitive-color-ombra-naturale-raw-umber-500: var(--color-ombra-naturale-raw-umber-500);
319
+ --primitive-color-ombra-naturale-raw-umber-600: var(--color-ombra-naturale-raw-umber-600);
320
+ --primitive-color-ombra-naturale-raw-umber-700: var(--color-ombra-naturale-raw-umber-700);
321
+ --primitive-color-ombra-naturale-raw-umber-800: var(--color-ombra-naturale-raw-umber-800);
322
+ --primitive-color-ombra-naturale-raw-umber-900: var(--color-ombra-naturale-raw-umber-900);
323
+ --primitive-color-neutral-50: var(--color-neutral-50);
324
+ --primitive-color-neutral-100: var(--color-neutral-100);
325
+ --primitive-color-neutral-200: var(--color-neutral-200);
326
+ --primitive-color-neutral-300: var(--color-neutral-300);
327
+ --primitive-color-neutral-400: var(--color-neutral-400);
328
+ --primitive-color-neutral-500: var(--color-neutral-500);
329
+ --primitive-color-neutral-600: var(--color-neutral-600);
330
+ --primitive-color-neutral-700: var(--color-neutral-700);
331
+ --primitive-color-neutral-800: var(--color-neutral-800);
332
+ --primitive-color-neutral-900: var(--color-neutral-900);
333
+ --primitive-color-accent-50: var(--color-accent-50);
334
+ --primitive-color-accent-100: var(--color-accent-100);
335
+ --primitive-color-accent-200: var(--color-accent-200);
336
+ --primitive-color-accent-300: var(--color-accent-300);
337
+ --primitive-color-accent-400: var(--color-accent-400);
338
+ --primitive-color-accent-500: var(--color-accent-500);
339
+ --primitive-color-accent-600: var(--color-accent-600);
340
+ --primitive-color-accent-700: var(--color-accent-700);
341
+ --primitive-color-accent-800: var(--color-accent-800);
342
+ --primitive-color-accent-900: var(--color-accent-900);
343
+
344
+ /* Semantic tokens */
345
+ /* Page background */
346
+ --background-canvas: var(--primitive-color-neutral-50);
347
+ /* Card/surface background */
348
+ --background-surface: #FFFFFF;
349
+ /* Muted background */
350
+ --background-muted: var(--primitive-color-neutral-100);
351
+ /* Primary text */
352
+ --text-primary: var(--primitive-color-neutral-900);
353
+ /* Secondary text */
354
+ --text-secondary: var(--primitive-color-neutral-600);
355
+ /* Muted/disabled text */
356
+ --text-muted: var(--primitive-color-neutral-500);
357
+ /* Text on dark backgrounds */
358
+ --text-inverse: var(--primitive-color-neutral-50);
359
+ /* Primary interactive (buttons, links) */
360
+ --interactive-primary: var(--primitive-color-oltremare-ultramarine-500);
361
+ /* Primary interactive hover */
362
+ --interactive-primary-hover: var(--primitive-color-oltremare-ultramarine-600);
363
+ /* Primary interactive active */
364
+ --interactive-primary-active: var(--primitive-color-oltremare-ultramarine-700);
365
+ /* Default border */
366
+ --border-default: var(--primitive-color-neutral-200);
367
+ /* Strong border */
368
+ --border-strong: var(--primitive-color-neutral-400);
369
+ /* Error — WCAG-compliant red */
370
+ --status-error: #DC2626;
371
+ /* Success — WCAG-compliant green */
372
+ --status-success: #16A34A;
373
+ /* Warning — WCAG AA amber (4.5:1+ on white) */
374
+ --status-warning: #A16207;
375
+ /* Info status */
376
+ --status-info: var(--primitive-color-oltremare-ultramarine-500);
377
+ /* Focus ring color */
378
+ --focus-ring: var(--primitive-color-oltremare-ultramarine-500);
379
+ /* Keyboard focus indicator */
380
+ --accessibility-focus-visible: var(--primitive-color-oltremare-ultramarine-500);
381
+ }
382
+
383
+ /* Dark mode semantic tokens */
384
+ [data-theme="dark"] {
385
+ /* Page background — dark */
386
+ --background-canvas: var(--primitive-color-neutral-900);
387
+ /* Card/surface — dark */
388
+ --background-surface: var(--primitive-color-neutral-800);
389
+ /* Muted background — dark */
390
+ --background-muted: var(--primitive-color-neutral-700);
391
+ /* Primary text — dark */
392
+ --text-primary: var(--primitive-color-neutral-50);
393
+ /* Secondary text — dark */
394
+ --text-secondary: var(--primitive-color-neutral-300);
395
+ /* Muted text — dark */
396
+ --text-muted: var(--primitive-color-neutral-500);
397
+ /* Text on light backgrounds — dark */
398
+ --text-inverse: var(--primitive-color-neutral-900);
399
+ /* Primary interactive — dark */
400
+ --interactive-primary: var(--primitive-color-oltremare-ultramarine-400);
401
+ /* Primary hover — dark */
402
+ --interactive-primary-hover: var(--primitive-color-oltremare-ultramarine-300);
403
+ /* Primary active — dark */
404
+ --interactive-primary-active: var(--primitive-color-oltremare-ultramarine-200);
405
+ /* Default border — dark */
406
+ --border-default: var(--primitive-color-neutral-700);
407
+ /* Strong border — dark */
408
+ --border-strong: var(--primitive-color-neutral-500);
409
+ /* Error — WCAG-compliant red (dark) */
410
+ --status-error: #EF4444;
411
+ /* Success — WCAG-compliant green (dark) */
412
+ --status-success: #22C55E;
413
+ /* Warning — WCAG-compliant amber (dark) */
414
+ --status-warning: #EAB308;
415
+ /* Info — dark */
416
+ --status-info: var(--primitive-color-oltremare-ultramarine-400);
417
+ /* Focus ring — dark */
418
+ --focus-ring: var(--primitive-color-oltremare-ultramarine-400);
419
+ /* Keyboard focus — dark */
420
+ --accessibility-focus-visible: var(--primitive-color-oltremare-ultramarine-400);
421
+ }