@nuvia/tokens 0.1.0 → 0.5.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.
@@ -0,0 +1,731 @@
1
+ /**
2
+ * Nuvia Design System - Global Tokens
3
+ *
4
+ * This file provides all CSS variables, theme configuration, and base styles
5
+ * for the Nuvia Design System. Compatible with Tailwind CSS v4.
6
+ *
7
+ * Usage in consumer apps:
8
+ * @import "tailwindcss";
9
+ * @import "@nuvia/tokens/styles/globals.css";
10
+ */
11
+
12
+ /* Dark mode variant for Tailwind v4 */
13
+ @custom-variant dark (&:is(.dark *));
14
+
15
+ /* ============================================
16
+ THEME CONFIGURATION FOR TAILWIND V4
17
+ Maps CSS variables to utility classes
18
+ ============================================ */
19
+ @theme inline {
20
+ /* Border radius */
21
+ --radius-sm: calc(var(--radius) - 4px);
22
+ --radius-md: calc(var(--radius) - 2px);
23
+ --radius-lg: var(--radius);
24
+ --radius-xl: calc(var(--radius) + 4px);
25
+
26
+ /* Base colors */
27
+ --color-background: hsl(var(--background));
28
+ --color-foreground: hsl(var(--foreground));
29
+
30
+ /* Card */
31
+ --color-card: hsl(var(--card));
32
+ --color-card-foreground: hsl(var(--card-foreground));
33
+
34
+ /* Popover */
35
+ --color-popover: hsl(var(--popover));
36
+ --color-popover-foreground: hsl(var(--popover-foreground));
37
+
38
+ /* Primary */
39
+ --color-primary: hsl(var(--primary));
40
+ --color-primary-foreground: hsl(var(--primary-foreground));
41
+
42
+ /* Secondary */
43
+ --color-secondary: hsl(var(--secondary));
44
+ --color-secondary-foreground: hsl(var(--secondary-foreground));
45
+
46
+ /* Muted */
47
+ --color-muted: hsl(var(--muted));
48
+ --color-muted-foreground: hsl(var(--muted-foreground));
49
+
50
+ /* Accent */
51
+ --color-accent: hsl(var(--accent));
52
+ --color-accent-foreground: hsl(var(--accent-foreground));
53
+
54
+ /* Destructive */
55
+ --color-destructive: hsl(var(--destructive));
56
+ --color-destructive-foreground: hsl(var(--destructive-foreground));
57
+
58
+ /* Success */
59
+ --color-success: hsl(var(--success));
60
+ --color-success-foreground: hsl(var(--success-foreground));
61
+
62
+ /* Warning */
63
+ --color-warning: hsl(var(--warning));
64
+ --color-warning-foreground: hsl(var(--warning-foreground));
65
+
66
+ /* Danger */
67
+ --color-danger: hsl(var(--danger));
68
+ --color-danger-foreground: hsl(var(--danger-foreground));
69
+
70
+ /* Border, Input, Ring */
71
+ --color-border: hsl(var(--border));
72
+ --color-input: hsl(var(--input));
73
+ --color-ring: hsl(var(--ring));
74
+
75
+ /* Sidebar */
76
+ --color-sidebar: hsl(var(--sidebar-background));
77
+ --color-sidebar-foreground: hsl(var(--sidebar-foreground));
78
+ --color-sidebar-primary: hsl(var(--sidebar-primary));
79
+ --color-sidebar-primary-foreground: hsl(var(--sidebar-primary-foreground));
80
+ --color-sidebar-accent: hsl(var(--sidebar-accent));
81
+ --color-sidebar-accent-foreground: hsl(var(--sidebar-accent-foreground));
82
+ --color-sidebar-border: hsl(var(--sidebar-border));
83
+ --color-sidebar-ring: hsl(var(--sidebar-ring));
84
+
85
+ /* Chart colors */
86
+ --color-chart-1: hsl(var(--chart-1));
87
+ --color-chart-2: hsl(var(--chart-2));
88
+ --color-chart-3: hsl(var(--chart-3));
89
+ --color-chart-4: hsl(var(--chart-4));
90
+ --color-chart-5: hsl(var(--chart-5));
91
+
92
+ /* Nuvia Brand Colors - Zafiro */
93
+ --color-nuvia-zafiro-100: hsl(var(--color-zafiro-100));
94
+ --color-nuvia-zafiro-200: hsl(var(--color-zafiro-200));
95
+ --color-nuvia-zafiro-300: hsl(var(--color-zafiro-300));
96
+ --color-nuvia-zafiro-400: hsl(var(--color-zafiro-400));
97
+ --color-nuvia-zafiro-500: hsl(var(--color-zafiro-500));
98
+ --color-nuvia-zafiro-600: hsl(var(--color-zafiro-600));
99
+ --color-nuvia-zafiro-700: hsl(var(--color-zafiro-700));
100
+ --color-nuvia-zafiro-800: hsl(var(--color-zafiro-800));
101
+
102
+ /* Nuvia Brand Colors - Madrugada */
103
+ --color-nuvia-madrugada-100: hsl(var(--color-madrugada-100));
104
+ --color-nuvia-madrugada-200: hsl(var(--color-madrugada-200));
105
+ --color-nuvia-madrugada-300: hsl(var(--color-madrugada-300));
106
+ --color-nuvia-madrugada-400: hsl(var(--color-madrugada-400));
107
+ --color-nuvia-madrugada-500: hsl(var(--color-madrugada-500));
108
+ --color-nuvia-madrugada-600: hsl(var(--color-madrugada-600));
109
+ --color-nuvia-madrugada-700: hsl(var(--color-madrugada-700));
110
+ --color-nuvia-madrugada-800: hsl(var(--color-madrugada-800));
111
+
112
+ /* Nuvia Brand Colors - Nimbus */
113
+ --color-nuvia-nimbus-200: hsl(var(--color-nimbus-200));
114
+ --color-nuvia-nimbus-300: hsl(var(--color-nimbus-300));
115
+ --color-nuvia-nimbus-400: hsl(var(--color-nimbus-400));
116
+ --color-nuvia-nimbus-500: hsl(var(--color-nimbus-500));
117
+ --color-nuvia-nimbus-600: hsl(var(--color-nimbus-600));
118
+
119
+ /* Nuvia Brand Colors - Indigo */
120
+ --color-nuvia-indigo-100: hsl(var(--color-indigo-100));
121
+ --color-nuvia-indigo-200: hsl(var(--color-indigo-200));
122
+ --color-nuvia-indigo-300: hsl(var(--color-indigo-300));
123
+ --color-nuvia-indigo-400: hsl(var(--color-indigo-400));
124
+ --color-nuvia-indigo-500: hsl(var(--color-indigo-500));
125
+ --color-nuvia-indigo-600: hsl(var(--color-indigo-600));
126
+ --color-nuvia-indigo-700: hsl(var(--color-indigo-700));
127
+ --color-nuvia-indigo-800: hsl(var(--color-indigo-800));
128
+
129
+ /* Nuvia Brand Colors - Lumen */
130
+ --color-nuvia-lumen-100: hsl(var(--color-lumen-100));
131
+ --color-nuvia-lumen-200: hsl(var(--color-lumen-200));
132
+ --color-nuvia-lumen-300: hsl(var(--color-lumen-300));
133
+ --color-nuvia-lumen-400: hsl(var(--color-lumen-400));
134
+ --color-nuvia-lumen-500: hsl(var(--color-lumen-500));
135
+ --color-nuvia-lumen-600: hsl(var(--color-lumen-600));
136
+ --color-nuvia-lumen-700: hsl(var(--color-lumen-700));
137
+ --color-nuvia-lumen-800: hsl(var(--color-lumen-800));
138
+
139
+ /* Nuvia Brand Colors - Lilas */
140
+ --color-nuvia-lilas-100: hsl(var(--color-lilas-100));
141
+ --color-nuvia-lilas-200: hsl(var(--color-lilas-200));
142
+ --color-nuvia-lilas-300: hsl(var(--color-lilas-300));
143
+ --color-nuvia-lilas-400: hsl(var(--color-lilas-400));
144
+ --color-nuvia-lilas-500: hsl(var(--color-lilas-500));
145
+ --color-nuvia-lilas-600: hsl(var(--color-lilas-600));
146
+ --color-nuvia-lilas-700: hsl(var(--color-lilas-700));
147
+ --color-nuvia-lilas-800: hsl(var(--color-lilas-800));
148
+
149
+ /* Nuvia Brand Colors - Magenta */
150
+ --color-nuvia-magenta-100: hsl(var(--color-magenta-100));
151
+ --color-nuvia-magenta-200: hsl(var(--color-magenta-200));
152
+ --color-nuvia-magenta-300: hsl(var(--color-magenta-300));
153
+ --color-nuvia-magenta-400: hsl(var(--color-magenta-400));
154
+ --color-nuvia-magenta-500: hsl(var(--color-magenta-500));
155
+ --color-nuvia-magenta-600: hsl(var(--color-magenta-600));
156
+ --color-nuvia-magenta-700: hsl(var(--color-magenta-700));
157
+ --color-nuvia-magenta-800: hsl(var(--color-magenta-800));
158
+
159
+ /* Nuvia Brand Colors - Magma */
160
+ --color-nuvia-magma-100: hsl(var(--color-magma-100));
161
+ --color-nuvia-magma-200: hsl(var(--color-magma-200));
162
+ --color-nuvia-magma-300: hsl(var(--color-magma-300));
163
+ --color-nuvia-magma-400: hsl(var(--color-magma-400));
164
+ --color-nuvia-magma-500: hsl(var(--color-magma-500));
165
+ --color-nuvia-magma-600: hsl(var(--color-magma-600));
166
+ --color-nuvia-magma-700: hsl(var(--color-magma-700));
167
+ --color-nuvia-magma-800: hsl(var(--color-magma-800));
168
+
169
+ /* Support Colors - Light */
170
+ --color-light-100: hsl(var(--color-light-100));
171
+ --color-light-200: hsl(var(--color-light-200));
172
+ --color-light-300: hsl(var(--color-light-300));
173
+ --color-light-400: hsl(var(--color-light-400));
174
+ --color-light-500: hsl(var(--color-light-500));
175
+ --color-light-600: hsl(var(--color-light-600));
176
+ --color-light-700: hsl(var(--color-light-700));
177
+
178
+ /* Support Colors - Dark */
179
+ --color-dark-100: hsl(var(--color-dark-100));
180
+ --color-dark-200: hsl(var(--color-dark-200));
181
+ --color-dark-300: hsl(var(--color-dark-300));
182
+ --color-dark-400: hsl(var(--color-dark-400));
183
+ --color-dark-500: hsl(var(--color-dark-500));
184
+ --color-dark-600: hsl(var(--color-dark-600));
185
+ --color-dark-700: hsl(var(--color-dark-700));
186
+
187
+ /* Support Colors - Error */
188
+ --color-error-100: hsl(var(--color-error-100));
189
+ --color-error-200: hsl(var(--color-error-200));
190
+ --color-error-300: hsl(var(--color-error-300));
191
+ --color-error-500: hsl(var(--color-error-500));
192
+ --color-error-700: hsl(var(--color-error-700));
193
+ }
194
+
195
+ /* ============================================
196
+ CSS VARIABLES - BASE TOKENS
197
+ ============================================ */
198
+ @layer base {
199
+ :root,
200
+ .dark {
201
+ /* Font family - consumers should load Plus Jakarta Sans from Google Fonts */
202
+ --font-plus-jakarta-sans: "Plus Jakarta Sans", ui-sans-serif, system-ui,
203
+ -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue",
204
+ Arial, sans-serif;
205
+
206
+ /*==== Nuvia Brand Colors ====*/
207
+ /* Zafiro */
208
+ --color-zafiro-100: 233 100% 98%;
209
+ --color-zafiro-200: 228 75% 89%;
210
+ --color-zafiro-300: 228 71% 80%;
211
+ --color-zafiro-400: 228 71% 71%;
212
+ --color-zafiro-500: 228 45% 55%;
213
+ --color-zafiro-600: 228 48% 40%;
214
+ --color-zafiro-700: 228 76% 24%;
215
+ --color-zafiro-800: 227 44% 13%;
216
+
217
+ /* Madrugada */
218
+ --color-madrugada-100: 235 100% 96%;
219
+ --color-madrugada-200: 236 71% 89%;
220
+ --color-madrugada-300: 236 64% 83%;
221
+ --color-madrugada-400: 235 58% 78%;
222
+ --color-madrugada-500: 235 41% 64%;
223
+ --color-madrugada-600: 235 34% 49%;
224
+ --color-madrugada-700: 235 51% 36%;
225
+ --color-madrugada-800: 235 51% 23%;
226
+
227
+ /* Nimbus */
228
+ --color-nimbus-200: 221 66% 94%;
229
+ --color-nimbus-300: 220 55% 91%;
230
+ --color-nimbus-400: 220 46% 88%;
231
+ --color-nimbus-500: 220 35% 80%;
232
+ --color-nimbus-600: 220 29% 71%;
233
+
234
+ /* Indigo */
235
+ --color-indigo-100: 217 100% 90%;
236
+ --color-indigo-200: 218 98% 76%;
237
+ --color-indigo-300: 218 99% 63%;
238
+ --color-indigo-400: 218 98% 50%;
239
+ --color-indigo-500: 217 98% 41%;
240
+ --color-indigo-600: 218 99% 32%;
241
+ --color-indigo-700: 218 100% 22%;
242
+ --color-indigo-800: 218 100% 12%;
243
+
244
+ /* Lumen */
245
+ --color-lumen-100: 152 81% 92%;
246
+ --color-lumen-200: 153 80% 76%;
247
+ --color-lumen-300: 153 81% 61%;
248
+ --color-lumen-400: 153 100% 45%;
249
+ --color-lumen-500: 153 99% 35%;
250
+ --color-lumen-600: 153 98% 24%;
251
+ --color-lumen-700: 154 100% 13%;
252
+ --color-lumen-800: 155 100% 6%;
253
+
254
+ /* Lilas */
255
+ --color-lilas-100: 295 59% 88%;
256
+ --color-lilas-200: 295 58% 79%;
257
+ --color-lilas-300: 295 59% 70%;
258
+ --color-lilas-400: 295 59% 61%;
259
+ --color-lilas-500: 295 37% 47%;
260
+ --color-lilas-600: 295 37% 33%;
261
+ --color-lilas-700: 295 38% 18%;
262
+ --color-lilas-800: 295 38% 18%;
263
+
264
+ /* Magenta */
265
+ --color-magenta-100: 337 83% 93%;
266
+ --color-magenta-200: 337 82% 80%;
267
+ --color-magenta-300: 337 83% 67%;
268
+ --color-magenta-400: 337 84% 55%;
269
+ --color-magenta-500: 337 70% 42%;
270
+ --color-magenta-600: 337 70% 29%;
271
+ --color-magenta-700: 337 69% 16%;
272
+ --color-magenta-800: 337 69% 16%;
273
+
274
+ /* Magma */
275
+ --color-magma-100: 22 100% 93%;
276
+ --color-magma-200: 21 100% 79%;
277
+ --color-magma-300: 22 100% 64%;
278
+ --color-magma-400: 22 100% 50%;
279
+ --color-magma-500: 22 100% 38%;
280
+ --color-magma-600: 22 100% 27%;
281
+ --color-magma-700: 22 100% 15%;
282
+ --color-magma-800: 22 100% 6%;
283
+
284
+ /* Off Black */
285
+ --color-off-black-400: 82% 76% 0% 85%;
286
+
287
+ /*==== Support Colors ====*/
288
+
289
+ /* Light */
290
+ --color-light-100: 0 0% 100%;
291
+ --color-light-200: 0 0% 98%;
292
+ --color-light-300: 240 5% 96%;
293
+ --color-light-400: 240 6% 90%;
294
+ --color-light-500: 240 5% 84%;
295
+ --color-light-600: 0 0% 68%;
296
+ --color-light-700: 240 5% 65%;
297
+
298
+ /* Dark */
299
+ --color-dark-100: 240 4% 46%;
300
+ --color-dark-200: 240 4% 39%;
301
+ --color-dark-300: 240 4% 32%;
302
+ --color-dark-400: 240 4% 25%;
303
+ --color-dark-500: 240 4% 18%;
304
+ --color-dark-600: 240 5% 11%;
305
+ --color-dark-700: 240 10% 4%;
306
+
307
+ /* Error */
308
+ --color-error-100: 0 100% 97%;
309
+ --color-error-200: 0 45% 78%;
310
+ --color-error-300: 0 100% 84%;
311
+ --color-error-500: 0 84% 60%;
312
+ --color-error-700: 0 28% 28%;
313
+ }
314
+
315
+ :root {
316
+ /*==== Interface Colors - LIGHT ====*/
317
+ --background: var(--color-light-100);
318
+ --background-default-light: var(--color-light-100);
319
+ --background-default-medium: var(--color-light-200);
320
+ --background-default-heavy: var(--color-light-300);
321
+ --background-default-accent: var(--color-light-400);
322
+ --background-primary-light: var(--color-zafiro-100);
323
+ --background-primary-medium: var(--color-zafiro-200);
324
+ --background-primary-heavy: var(--color-zafiro-300);
325
+ --background-secondary-light: var(--color-madrugada-100);
326
+ --background-secondary-medium: var(--color-madrugada-200);
327
+ --background-secondary-heavy: var(--color-madrugada-300);
328
+ --background-accent-light: var(--color-indigo-100);
329
+ --background-accent-medium: var(--color-indigo-200);
330
+ --background-accent-heavy: var(--color-indigo-300);
331
+ --background-accent-primary: var(--color-zafiro-400);
332
+ --background-accent-secondary: var(--color-madrugada-400);
333
+
334
+ --foreground: var(--color-dark-700);
335
+ --foreground-default-light: var(--color-light-300);
336
+ --foreground-default-xlight: var(--color-light-600);
337
+ --foreground-default-heavy: var(--color-dark-700);
338
+ --foreground-default-medium: var(--color-dark-500);
339
+ --foreground-primary-light: var(--color-zafiro-400);
340
+ --foreground-primary-heavy: var(--color-zafiro-600);
341
+ --foreground-primary-medium: var(--color-zafiro-500);
342
+ --foreground-secondary-light: var(--color-madrugada-500);
343
+ --foreground-secondary-heavy: var(--color-madrugada-700);
344
+ --foreground-secondary-medium: var(--color-madrugada-600);
345
+ --foreground-accent-light: var(--color-indigo-400);
346
+ --foreground-accent-heavy: var(--color-indigo-600);
347
+ --foreground-accent-medium: var(--color-indigo-500);
348
+
349
+ --card: var(--color-light-100);
350
+ --card-foreground: var(--color-dark-700);
351
+
352
+ --popover: var(--color-light-100);
353
+ --popover-foreground: 240 8% 9%;
354
+
355
+ --primary: var(--color-zafiro-500);
356
+ --primary-foreground: 218 100% 98%;
357
+
358
+ --secondary: var(--color-madrugada-100);
359
+ --secondary-foreground: var(--color-dark-600);
360
+ --secondary-card: var(--color-light-100);
361
+
362
+ --muted: var(--color-light-300);
363
+ --muted-foreground: var(--color-dark-100);
364
+
365
+ --accent: var(--color-light-300);
366
+ --accent-foreground: var(--color-dark-600);
367
+
368
+ --destructive: 0 84% 60%;
369
+ --destructive-foreground: var(--color-light-200);
370
+
371
+ --success: var(--color-lumen-100);
372
+ --success-foreground: var(--color-lumen-500);
373
+ --success-outline: var(--color-lumen-500);
374
+
375
+ --warning: var(--color-magma-100);
376
+ --warning-foreground: var(--color-magma-500);
377
+ --warning-outline: var(--color-magma-500);
378
+
379
+ --danger: var(--color-error-100);
380
+ --danger-foreground: var(--color-error-500);
381
+ --danger-outline: var(--color-error-500);
382
+
383
+ --border: var(--color-light-400);
384
+ --border-default-light: var(--color-light-300);
385
+ --border-default-medium: var(--color-light-400);
386
+ --border-default-heavy: var(--color-light-500);
387
+ --border-primary-light: var(--color-zafiro-200);
388
+ --border-primary-medium: var(--color-zafiro-300);
389
+ --border-primary-heavy: var(--color-zafiro-400);
390
+ --border-accent-light: var(--color-indigo-200);
391
+ --border-accent-medium: var(--color-indigo-300);
392
+ --border-accent-heavy: var(--color-indigo-400);
393
+
394
+ --border-medium: var(--color-light-600);
395
+ --input: var(--color-madrugada-200);
396
+ --ring: var(--color-dark-600);
397
+ --radius: 0.5rem;
398
+
399
+ --chart-1: 12 76% 61%;
400
+ --chart-2: 173 58% 39%;
401
+ --chart-3: 197 37% 24%;
402
+ --chart-4: 43 74% 66%;
403
+ --chart-5: 27 87% 67%;
404
+
405
+ --sidebar-background: var(--color-light-200);
406
+ --sidebar-foreground: 240 5.3% 26.1%;
407
+ --sidebar-primary: 240 5.9% 10%;
408
+ --sidebar-primary-foreground: var(--color-light-200);
409
+ --sidebar-accent: 240 4.8% 95.9%;
410
+ --sidebar-accent-foreground: 240 5.9% 10%;
411
+ --sidebar-border: 220 13% 91%;
412
+ --sidebar-ring: 217.2 91.2% 59.8%;
413
+
414
+ --text-default-primary: var(--color-dark-700);
415
+ --text-default-secondary: var(--color-dark-100);
416
+ --text-brand-primary: var(--color-zafiro-600);
417
+ --text-brand-secondary: var(--color-madrugada-500);
418
+ --text-links: var(--color-indigo-400);
419
+ --text-disabled: var(--color-light-600);
420
+ --text-default-inverted: var(--color-light-200);
421
+ --text-general-light: var(--color-light-100);
422
+ --text-general-dark: var(--color-dark-700);
423
+ }
424
+
425
+ .dark {
426
+ /*==== Interface Colors - DARK ====*/
427
+ --background: var(--color-dark-700);
428
+ --background-default-light: var(--color-dark-700);
429
+ --background-default-medium: var(--color-dark-600);
430
+ --background-default-heavy: var(--color-dark-500);
431
+ --background-default-accent: var(--color-dark-400);
432
+ --background-primary-light: var(--color-zafiro-900);
433
+ --background-primary-medium: var(--color-zafiro-800);
434
+ --background-primary-heavy: var(--color-zafiro-700);
435
+ --background-secondary-light: var(--color-madrugada-800);
436
+ --background-secondary-medium: var(--color-madrugada-700);
437
+ --background-secondary-heavy: var(--color-madrugada-600);
438
+ --background-accent-light: var(--color-indigo-600);
439
+ --background-accent-medium: var(--color-indigo-500);
440
+ --background-accent-heavy: var(--color-indigo-400);
441
+ --background-accent-primary: var(--color-zafiro-400);
442
+ --background-accent-secondary: var(--color-madrugada-400);
443
+
444
+ --foreground: var(--color-light-200);
445
+ --foreground-default-light: var(--color-light-500);
446
+ --foreground-default-xlight: var(--color-light-900);
447
+ --foreground-default-heavy: var(--color-dark-100);
448
+ --foreground-default-medium: var(--color-dark-300);
449
+ --foreground-primary-light: var(--color-zafiro-500);
450
+ --foreground-primary-heavy: var(--color-zafiro-300);
451
+ --foreground-primary-medium: var(--color-zafiro-400);
452
+ --foreground-secondary-light: var(--color-madrugada-300);
453
+ --foreground-secondary-heavy: var(--color-madrugada-100);
454
+ --foreground-secondary-medium: var(--color-madrugada-200);
455
+ --foreground-accent-light: var(--color-indigo-300);
456
+ --foreground-accent-heavy: var(--color-indigo-100);
457
+ --foreground-accent-medium: var(--color-indigo-200);
458
+
459
+ --card: var(--color-dark-700);
460
+ --card-foreground: var(--color-light-200);
461
+
462
+ --popover: var(--color-dark-500);
463
+ --popover-foreground: var(--color-light-200);
464
+
465
+ --primary: var(--color-zafiro-500);
466
+ --primary-foreground: 230 43% 5%;
467
+
468
+ --secondary: var(--color-madrugada-500);
469
+ --secondary-foreground: var(--color-light-200);
470
+ --secondary-card: 224 31% 7%;
471
+
472
+ --muted: var(--color-dark-500);
473
+ --muted-foreground: var(--color-light-700);
474
+
475
+ --accent: var(--color-dark-500);
476
+ --accent-foreground: var(--color-light-200);
477
+
478
+ --success: var(--color-lumen-800);
479
+ --success-foreground: var(--color-lumen-500);
480
+ --success-outline: var(--color-lumen-600);
481
+
482
+ --warning: var(--color-magma-800);
483
+ --warning-foreground: var(--color-magma-200);
484
+ --warning-outline: var(--color-magma-200);
485
+
486
+ --danger: var(--color-error-700);
487
+ --danger-foreground: var(--color-error-200);
488
+ --danger-outline: var(--color-error-200);
489
+
490
+ --border: var(--color-dark-500);
491
+ --border-default-light: var(--color-dark-500);
492
+ --border-default-medium: var(--color-dark-400);
493
+ --border-default-heavy: var(--color-dark-300);
494
+ --border-primary-light: var(--color-zafiro-700);
495
+ --border-primary-medium: var(--color-zafiro-700);
496
+ --border-primary-heavy: var(--color-zafiro-600);
497
+ --border-accent-light: var(--color-indigo-600);
498
+ --border-accent-medium: var(--color-indigo-500);
499
+ --border-accent-heavy: var(--color-indigo-400);
500
+
501
+ --border-medium: var(--color-dark-400);
502
+ --input: 238 30% 20%;
503
+ --ring: var(--color-light-500);
504
+ --radius: 0.5rem;
505
+
506
+ --chart-1: 220 70% 50%;
507
+ --chart-2: 160 60% 45%;
508
+ --chart-3: 30 80% 55%;
509
+ --chart-4: 280 65% 60%;
510
+ --chart-5: 340 75% 55%;
511
+
512
+ --sidebar-background: 240 5.9% 10%;
513
+ --sidebar-foreground: 240 4.8% 95.9%;
514
+ --sidebar-primary: 224.3 76.3% 48%;
515
+ --sidebar-primary-foreground: var(--color-light-100);
516
+ --sidebar-accent: 240 3.7% 15.9%;
517
+ --sidebar-accent-foreground: 240 4.8% 95.9%;
518
+ --sidebar-border: 240 3.7% 15.9%;
519
+ --sidebar-ring: 217.2 91.2% 59.8%;
520
+
521
+ --text-default-primary: var(--color-light-100);
522
+ --text-default-secondary: var(--color-light-600);
523
+ --text-brand-primary: var(--color-zafiro-200);
524
+ --text-brand-secondary: var(--color-madrugada-400);
525
+ --text-links: var(--color-indigo-300);
526
+ --text-disabled: var(--color-dark-200);
527
+ --text-default-inverted: var(--color-dark-700);
528
+ --text-general-light: var(--color-light-100);
529
+ --text-general-dark: var(--color-dark-800);
530
+ }
531
+
532
+ /* Base element styles */
533
+ * {
534
+ border-color: hsl(var(--border));
535
+ }
536
+
537
+ body {
538
+ background-color: hsl(var(--background));
539
+ color: hsl(var(--foreground));
540
+ }
541
+ }
542
+
543
+ /* ============================================
544
+ GLOBAL STYLES
545
+ ============================================ */
546
+ * {
547
+ font-family: var(--font-plus-jakarta-sans);
548
+ overscroll-behavior-x: none;
549
+ min-width: 0;
550
+ }
551
+
552
+ html {
553
+ text-rendering: optimizelegibility;
554
+ }
555
+
556
+ body {
557
+ min-height: 100dvh;
558
+ }
559
+
560
+ /* ============================================
561
+ ANIMATIONS
562
+ ============================================ */
563
+ .spin-bg-animation {
564
+ background-size: 150% 150%;
565
+ animation: spin-bg 20s ease infinite;
566
+ background-origin: center;
567
+ }
568
+
569
+ .slide-up {
570
+ animation: slide-up 0.5s ease-in-out forwards;
571
+ }
572
+
573
+ @keyframes slide-up {
574
+ from {
575
+ transform: translateY(100%);
576
+ opacity: 0;
577
+ }
578
+ to {
579
+ transform: translateY(0);
580
+ opacity: 1;
581
+ }
582
+ }
583
+
584
+ @keyframes spin-bg {
585
+ 0% {
586
+ background-position: 0% 0%;
587
+ }
588
+ 25% {
589
+ background-position: 100% 0%;
590
+ }
591
+ 50% {
592
+ background-position: 100% 100%;
593
+ }
594
+ 75% {
595
+ background-position: 0% 100%;
596
+ }
597
+ 100% {
598
+ background-position: 0% 0%;
599
+ }
600
+ }
601
+
602
+ /* ============================================
603
+ UTILITY CLASSES
604
+ Uses @apply with Tailwind v4 theme colors
605
+ ============================================ */
606
+ @layer utilities {
607
+ .flex-center {
608
+ @apply flex items-center justify-center;
609
+ }
610
+
611
+ .flex-center-col {
612
+ @apply flex flex-col items-center justify-center;
613
+ }
614
+
615
+ .flex-center-row {
616
+ @apply flex flex-row items-center justify-center;
617
+ }
618
+
619
+ /* Typography tokens */
620
+ .token-font-heading-1 {
621
+ @apply scroll-m-20 text-4xl leading-[46px] font-extrabold tracking-tight;
622
+ }
623
+
624
+ .token-font-heading-2 {
625
+ @apply scroll-m-20 pb-2 text-3xl font-semibold tracking-tight first:mt-0;
626
+ }
627
+
628
+ .token-font-heading-3 {
629
+ @apply scroll-m-20 text-2xl font-semibold tracking-tight;
630
+ }
631
+
632
+ .token-font-heading-4 {
633
+ @apply scroll-m-20 text-xl font-semibold tracking-tight;
634
+ }
635
+
636
+ .token-font-paragraph {
637
+ @apply leading-7 [&:not(:first-child)]:mt-6;
638
+ }
639
+
640
+ .token-font-blockquote {
641
+ @apply mt-6 border-l-2 pl-6 italic;
642
+ }
643
+
644
+ .token-font-inline-code {
645
+ @apply relative rounded bg-muted px-[0.3rem] py-[0.2rem] font-mono text-sm font-semibold;
646
+ }
647
+
648
+ .token-font-lead {
649
+ @apply text-base font-bold;
650
+ }
651
+
652
+ .token-font-large {
653
+ @apply text-lg font-semibold;
654
+ }
655
+
656
+ .token-font-medium {
657
+ @apply text-base leading-normal;
658
+ }
659
+
660
+ .token-font-small {
661
+ @apply text-sm;
662
+ }
663
+
664
+ .token-font-small-title {
665
+ @apply text-sm leading-[0.875rem] font-medium;
666
+ }
667
+
668
+ .token-font-extra-small-title {
669
+ @apply text-xs font-semibold;
670
+ }
671
+
672
+ .token-font-extra-small {
673
+ @apply text-xs;
674
+ }
675
+
676
+ .token-font-minimum {
677
+ @apply text-[0.5625rem];
678
+ }
679
+
680
+ .token-font-subtle {
681
+ @apply text-sm leading-tight;
682
+ }
683
+
684
+ .token-font-muted {
685
+ @apply text-sm text-muted-foreground;
686
+ }
687
+
688
+ /* Gradient utilities */
689
+ .nuvia-gradient-1 {
690
+ @apply bg-gradient-to-r from-nuvia-indigo-400 to-nuvia-lilas-400;
691
+ }
692
+
693
+ .nuvia-gradient-2 {
694
+ @apply bg-gradient-to-r from-nuvia-magenta-400 to-nuvia-magma-400;
695
+ }
696
+
697
+ .marketing-gradient {
698
+ @apply bg-gradient-to-r from-nuvia-magenta-400 to-nuvia-magma-400;
699
+ }
700
+
701
+ .fade-in-gradient-to-t {
702
+ @apply bg-gradient-to-t from-transparent to-background;
703
+ }
704
+
705
+ .fade-in-gradient-to-b {
706
+ @apply bg-gradient-to-b from-transparent to-background;
707
+ }
708
+
709
+ .fade-in-gradient-to-r {
710
+ @apply bg-gradient-to-r from-transparent to-background;
711
+ }
712
+
713
+ .fade-in-gradient-to-l {
714
+ @apply bg-gradient-to-l from-transparent to-background;
715
+ }
716
+ }
717
+
718
+ /* ============================================
719
+ ICON GRADIENT
720
+ ============================================ */
721
+ .icon-gradient {
722
+ background-image: linear-gradient(to right, #e72c83, #a742c6);
723
+ font-size: 40px;
724
+ }
725
+
726
+ .icon-gradient:not(svg) {
727
+ -webkit-background-clip: text;
728
+ background-clip: text;
729
+ -webkit-text-fill-color: transparent;
730
+ color: transparent;
731
+ }
package/package.json CHANGED
@@ -1,21 +1,22 @@
1
1
  {
2
2
  "name": "@nuvia/tokens",
3
- "version": "0.1.0",
3
+ "version": "0.5.0",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.js",
7
7
  "types": "./dist/index.d.ts",
8
8
  "exports": {
9
9
  ".": {
10
+ "types": "./dist/index.d.ts",
10
11
  "import": "./dist/index.js",
11
- "require": "./dist/index.cjs",
12
- "types": "./dist/index.d.ts"
12
+ "require": "./dist/index.cjs"
13
13
  },
14
+ "./styles/globals.css": "./dist/styles/globals.css",
14
15
  "./styles/*": "./dist/styles/*",
15
16
  "./colors": {
17
+ "types": "./dist/colors.d.ts",
16
18
  "import": "./dist/colors.js",
17
- "require": "./dist/colors.cjs",
18
- "types": "./dist/colors.d.ts"
19
+ "require": "./dist/colors.cjs"
19
20
  }
20
21
  },
21
22
  "files": [