@nuvia/components 0.4.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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nuvia/components",
3
- "version": "0.4.0",
3
+ "version": "0.5.0",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.js",
@@ -92,7 +92,8 @@
92
92
  "sonner": "^1.7.2",
93
93
  "tailwind-merge": "^2.6.0",
94
94
  "vaul": "^1.1.2",
95
- "zod": "^3.24.1"
95
+ "zod": "^3.24.1",
96
+ "@nuvia/tokens": "0.5.0"
96
97
  },
97
98
  "devDependencies": {
98
99
  "@tailwindcss/postcss": "^4.1.18",
@@ -1,531 +1,23 @@
1
- * {
2
- font-family: var(--font-plus-jakarta-sans);
3
- overscroll-behavior-x: none;
4
- }
5
-
6
- @layer base {
7
- :root,
8
- .dark {
9
- /* Font family - consumers should load Plus Jakarta Sans from Google Fonts */
10
- --font-plus-jakarta-sans: "Plus Jakarta Sans", ui-sans-serif, system-ui,
11
- -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue",
12
- Arial, sans-serif;
13
-
14
- /*==== Nuvia Brand Colors ====*/
15
- /* Zafiro */
16
- --color-zafiro-100: 233 100% 98%;
17
- --color-zafiro-200: 228 75% 89%;
18
- --color-zafiro-300: 228 71% 80%;
19
- --color-zafiro-400: 228 71% 71%;
20
- --color-zafiro-500: 228 45% 55%;
21
- --color-zafiro-600: 228 48% 40%;
22
- --color-zafiro-700: 228 76% 24%;
23
- --color-zafiro-800: 227 44% 13%;
24
-
25
- /* Madrugada */
26
- --color-madrugada-100: 235 100% 96%;
27
- --color-madrugada-200: 236 71% 89%;
28
- --color-madrugada-300: 236 64% 83%;
29
- --color-madrugada-400: 235 58% 78%;
30
- --color-madrugada-500: 235 41% 64%;
31
- --color-madrugada-600: 235 34% 49%;
32
- --color-madrugada-700: 235 51% 36%;
33
- --color-madrugada-800: 235 51% 23%;
34
-
35
- /* Nimbus */
36
- --color-nimbus-200: 221 66% 94%;
37
- --color-nimbus-300: 220 55% 91%;
38
- --color-nimbus-400: 220 46% 88%;
39
- --color-nimbus-500: 220 35% 80%;
40
- --color-nimbus-600: 220 29% 71%;
41
-
42
- /* Indigo */
43
- --color-indigo-100: 217 100% 90%;
44
- --color-indigo-200: 218 98% 76%;
45
- --color-indigo-300: 218 99% 63%;
46
- --color-indigo-400: 218 98% 50%;
47
- --color-indigo-500: 217 98% 41%;
48
- --color-indigo-600: 218 99% 32%;
49
- --color-indigo-700: 218 100% 22%;
50
- --color-indigo-800: 218 100% 12%;
51
-
52
- /* Lumen */
53
- --color-lumen-100: 152 81% 92%;
54
- --color-lumen-200: 153 80% 76%;
55
- --color-lumen-300: 153 81% 61%;
56
- --color-lumen-400: 153 100% 45%;
57
- --color-lumen-500: 153 99% 35%;
58
- --color-lumen-600: 153 98% 24%;
59
- --color-lumen-700: 154 100% 13%;
60
- --color-lumen-800: 155 100% 6%;
61
-
62
- /* Lilas */
63
- --color-lilas-100: 295 59% 88%;
64
- --color-lilas-200: 295 58% 79%;
65
- --color-lilas-300: 295 59% 70%;
66
- --color-lilas-400: 295 59% 61%;
67
- --color-lilas-500: 295 37% 47%;
68
- --color-lilas-600: 295 37% 33%;
69
- --color-lilas-700: 295 38% 18%;
70
- --color-lilas-800: 295 38% 18%;
71
-
72
- /* Magenta */
73
- --color-magenta-100: 337 83% 93%;
74
- --color-magenta-200: 337 82% 80%;
75
- --color-magenta-300: 337 83% 67%;
76
- --color-magenta-400: 337 84% 55%;
77
- --color-magenta-500: 337 70% 42%;
78
- --color-magenta-600: 337 70% 29%;
79
- --color-magenta-700: 337 69% 16%;
80
- --color-magenta-800: 337 69% 16%;
81
-
82
- /* Magma */
83
- --color-magma-100: 22 100% 93%;
84
- --color-magma-200: 21 100% 79%;
85
- --color-magma-300: 22 100% 64%;
86
- --color-magma-400: 22 100% 50%;
87
- --color-magma-500: 22 100% 38%;
88
- --color-magma-600: 22 100% 27%;
89
- --color-magma-700: 22 100% 15%;
90
- --color-magma-800: 22 100% 6%;
91
-
92
- /* Off Black */
93
- --color-off-black-400: 82% 76% 0% 85%;
94
-
95
- /*==== Support Colors ====*/
96
-
97
- /* Light */
98
- --color-light-100: 0 0% 100%;
99
- --color-light-200: 0 0% 98%;
100
- --color-light-300: 240 5% 96%;
101
- --color-light-400: 240 6% 90%;
102
- --color-light-500: 240 5% 84%;
103
- --color-light-600: 0 0% 68%;
104
- --color-light-700: 240 5% 65%;
105
-
106
- /* Dark */
107
- --color-dark-100: 240 4% 46%;
108
- --color-dark-200: 240 4% 39%;
109
- --color-dark-300: 240 4% 32%;
110
- --color-dark-400: 240 4% 25%;
111
- --color-dark-500: 240 4% 18%;
112
- --color-dark-600: 240 5% 11%;
113
- --color-dark-700: 240 10% 4%;
114
-
115
- /* Error */
116
- --color-error-100: 0 100% 97%;
117
- --color-error-200: 0 45% 78%;
118
- --color-error-300: 0 100% 84%;
119
- --color-error-500: 0 84% 60%;
120
- --color-error-700: 0 28% 28%;
121
- }
122
-
123
- :root {
124
- /*==== Interface Colors - LIGHT ====*/
125
- --background: var(--color-light-100);
126
- --background-default-light: var(--color-light-100);
127
- --background-default-medium: var(--color-light-200);
128
- --background-default-heavy: var(--color-light-300);
129
- --background-default-accent: var(--color-light-400);
130
- --background-primary-light: var(--color-zafiro-100);
131
- --background-primary-medium: var(--color-zafiro-200);
132
- --background-primary-heavy: var(--color-zafiro-300);
133
- --background-secondary-light: var(--color-madrugada-100);
134
- --background-secondary-medium: var(--color-madrugada-200);
135
- --background-secondary-heavy: var(--color-madrugada-300);
136
- --background-accent-light: var(--color-indigo-100);
137
- --background-accent-medium: var(--color-indigo-200);
138
- --background-accent-heavy: var(--color-indigo-300);
139
- --background-accent-primary: var(--color-zafiro-400);
140
- --background-accent-secondary: var(--color-madrugada-400);
141
-
142
- --foreground: var(--color-dark-700);
143
- --foreground-default-light: var(--color-light-300);
144
- --foreground-default-xlight: var(--color-light-600);
145
- --foreground-default-heavy: var(--color-dark-700);
146
- --foreground-default-medium: var(--color-dark-500);
147
- --foreground-primary-light: var(--color-zafiro-400);
148
- --foreground-primary-heavy: var(--color-zafiro-600);
149
- --foreground-primary-medium: var(--color-zafiro-500);
150
- --foreground-secondary-light: var(--color-madrugada-500);
151
- --foreground-secondary-heavy: var(--color-madrugada-700);
152
- --foreground-secondary-medium: var(--color-madrugada-600);
153
- --foreground-accent-light: var(--color-indigo-400);
154
- --foreground-accent-heavy: var(--color-indigo-600);
155
- --foreground-accent-medium: var(--color-indigo-500);
156
-
157
- --card: var(--color-light-100);
158
- --card-foreground: var(--color-dark-700);
159
-
160
- --popover: var(--color-light-100);
161
- --popover-foreground: 240 8% 9%;
162
-
163
- --primary: var(--color-zafiro-500);
164
- --primary-foreground: 218 100% 98%;
165
-
166
- --secondary: var(--color-madrugada-100);
167
- --secondary-foreground: var(--color-dark-600);
168
- --secondary-card: var(--color-light-100);
169
-
170
- --muted: var(--color-light-300);
171
- --muted-foreground: var(--color-dark-100);
172
-
173
- --accent: var(--color-light-300);
174
- --accent-foreground: var(--color-dark-600);
175
-
176
- --destructive: 0 84% 60%;
177
- --destructive-foreground: var(--color-light-200);
178
-
179
- --success: var(--color-lumen-100);
180
- --success-foreground: var(--color-lumen-500);
181
- --success-outline: var(--color-lumen-500);
182
-
183
- --warning: var(--color-magma-100);
184
- --warning-foreground: var(--color-magma-500);
185
- --warning-outline: var(--color-magma-500);
186
-
187
- --danger: var(--color-error-100);
188
- --danger-foreground: var(--color-error-500);
189
- --danger-outline: var(--color-error-500);
190
-
191
- --border: var(--color-light-400);
192
- --border-default-light: var(--color-light-300);
193
- --border-default-medium: var(--color-light-400);
194
- --border-default-heavy: var(--color-light-500);
195
- --border-primary-light: var(--color-zafiro-200);
196
- --border-primary-medium: var(--color-zafiro-300);
197
- --border-primary-heavy: var(--color-zafiro-400);
198
- --border-accent-light: var(--color-indigo-200);
199
- --border-accent-medium: var(--color-indigo-300);
200
- --border-accent-heavy: var(--color-indigo-400);
201
-
202
- --border-medium: var(--color-light-600);
203
- --input: var(--color-madrugada-200);
204
- --ring: var(--color-dark-600);
205
- --radius: 0.5rem;
206
-
207
- --chart-1: 12 76% 61%;
208
- --chart-2: 173 58% 39%;
209
- --chart-3: 197 37% 24%;
210
- --chart-4: 43 74% 66%;
211
- --chart-5: 27 87% 67%;
212
-
213
- --sidebar-background: var(--color-light-200);
214
- --sidebar-foreground: 240 5.3% 26.1%;
215
- --sidebar-primary: 240 5.9% 10%;
216
- --sidebar-primary-foreground: var(--color-light-200);
217
- --sidebar-accent: 240 4.8% 95.9%;
218
- --sidebar-accent-foreground: 240 5.9% 10%;
219
- --sidebar-border: 220 13% 91%;
220
- --sidebar-ring: 217.2 91.2% 59.8%;
221
-
222
- --text-default-primary: var(--color-dark-700);
223
- --text-default-secondary: var(--color-dark-100);
224
- --text-brand-primary: var(--color-zafiro-600);
225
- --text-brand-secondary: var(--color-madrugada-500);
226
- --text-links: var(--color-indigo-400);
227
- --text-disabled: var(--color-light-600);
228
- --text-default-inverted: var(--color-light-200);
229
- --text-general-light: var(--color-light-100);
230
- --text-general-dark: var(--color-dark-700);
231
- }
232
-
233
- .dark {
234
- /*==== Interface Colors - DARK ====*/
235
- --background: var(--color-dark-700);
236
- --background-default-light: var(--color-dark-700);
237
- --background-default-medium: var(--color-dark-600);
238
- --background-default-heavy: var(--color-dark-500);
239
- --background-default-accent: var(--color-dark-400);
240
- --background-primary-light: var(--color-zafiro-900);
241
- --background-primary-medium: var(--color-zafiro-800);
242
- --background-primary-heavy: var(--color-zafiro-700);
243
- --background-secondary-light: var(--color-madrugada-800);
244
- --background-secondary-medium: var(--color-madrugada-700);
245
- --background-secondary-heavy: var(--color-madrugada-600);
246
- --background-accent-light: var(--color-indigo-600);
247
- --background-accent-medium: var(--color-indigo-500);
248
- --background-accent-heavy: var(--color-indigo-400);
249
- --background-accent-primary: var(--color-zafiro-400);
250
- --background-accent-secondary: var(--color-madrugada-400);
251
-
252
- --foreground: var(--color-light-200);
253
- --foreground-default-light: var(--color-light-500);
254
- --foreground-default-xlight: var(--color-light-900);
255
- --foreground-default-heavy: var(--color-dark-100);
256
- --foreground-default-medium: var(--color-dark-300);
257
- --foreground-primary-light: var(--color-zafiro-500);
258
- --foreground-primary-heavy: var(--color-zafiro-300);
259
- --foreground-primary-medium: var(--color-zafiro-400);
260
- --foreground-secondary-light: var(--color-madrugada-300);
261
- --foreground-secondary-heavy: var(--color-madrugada-100);
262
- --foreground-secondary-medium: var(--color-madrugada-200);
263
- --foreground-accent-light: var(--color-indigo-300);
264
- --foreground-accent-heavy: var(--color-indigo-100);
265
- --foreground-accent-medium: var(--color-indigo-200);
266
-
267
- --card: var(--color-dark-700);
268
- --card-foreground: var(--color-light-200);
269
-
270
- --popover: var(--color-dark-500);
271
- --popover-foreground: var(--color-light-200);
272
-
273
- --primary: var(--color-zafiro-500);
274
- --primary-foreground: 230 43% 5%;
275
-
276
- --secondary: var(--color-madrugada-500);
277
- --secondary-foreground: var(--color-light-200);
278
- --secondary-card: 224 31% 7%;
279
-
280
- --muted: var(--color-dark-500);
281
- --muted-foreground: var(--color-light-700);
282
-
283
- --accent: var(--color-dark-500);
284
- --accent-foreground: var(--color-light-200);
285
-
286
- --success: var(--color-lumen-800);
287
- --success-foreground: var(--color-lumen-500);
288
- --success-outline: var(--color-lumen-600);
289
-
290
- --warning: var(--color-magma-800);
291
- --warning-foreground: var(--color-magma-200);
292
- --warning-outline: var(--color-magma-200);
293
-
294
- --danger: var(--color-error-700);
295
- --danger-foreground: var(--color-error-200);
296
- --danger-outline: var(--color-error-200);
297
-
298
- --border: var(--color-dark-500);
299
- --border-default-light: var(--color-dark-500);
300
- --border-default-medium: var(--color-dark-400);
301
- --border-default-heavy: var(--color-dark-300);
302
- --border-primary-light: var(--color-zafiro-700);
303
- --border-primary-medium: var(--color-zafiro-700);
304
- --border-primary-heavy: var(--color-zafiro-600);
305
- --border-accent-light: var(--color-indigo-600);
306
- --border-accent-medium: var(--color-indigo-500);
307
- --border-accent-heavy: var(--color-indigo-400);
308
-
309
- --border-medium: var(--color-dark-400);
310
- --input: 238 30% 20%;
311
- --ring: var(--color-light-500);
312
- --radius: 0.5rem;
313
-
314
- --chart-1: 220 70% 50%;
315
- --chart-2: 160 60% 45%;
316
- --chart-3: 30 80% 55%;
317
- --chart-4: 280 65% 60%;
318
- --chart-5: 340 75% 55%;
319
-
320
- --sidebar-background: 240 5.9% 10%;
321
- --sidebar-foreground: 240 4.8% 95.9%;
322
- --sidebar-primary: 224.3 76.3% 48%;
323
- --sidebar-primary-foreground: var(--color-light-100);
324
- --sidebar-accent: 240 3.7% 15.9%;
325
- --sidebar-accent-foreground: 240 4.8% 95.9%;
326
- --sidebar-border: 240 3.7% 15.9%;
327
- --sidebar-ring: 217.2 91.2% 59.8%;
328
-
329
- --text-default-primary: var(--color-light-100);
330
- --text-default-secondary: var(--color-light-600);
331
- --text-brand-primary: var(--color-zafiro-200);
332
- --text-brand-secondary: var(--color-madrugada-400);
333
- --text-links: var(--color-indigo-300);
334
- --text-disabled: var(--color-dark-200);
335
- --text-default-inverted: var(--color-dark-700);
336
- --text-general-light: var(--color-light-100);
337
- --text-general-dark: var(--color-dark-800);
338
- }
339
- }
340
-
341
- /* This layer is added by shadcn/ui */
342
- @layer base {
343
- * {
344
- border-color: hsl(var(--border));
345
- }
346
- body {
347
- background-color: hsl(var(--background));
348
- color: hsl(var(--foreground));
349
- }
350
- }
351
-
352
- /* This layer is by next-forge */
353
- @layer base {
354
- * {
355
- @apply min-w-0;
356
- }
357
- html {
358
- text-rendering: optimizelegibility;
359
- }
360
- body {
361
- @apply min-h-[100dvh];
362
- }
363
- }
364
-
365
- .spin-bg-animation {
366
- background-size: 150% 150%;
367
- animation: spin-bg 20s ease infinite;
368
- background-origin: center;
369
- }
370
-
371
- .slide-up {
372
- animation: slide-up 0.5s ease-in-out forwards;
373
- }
374
-
375
- @keyframes slide-up {
376
- from {
377
- transform: translateY(100%);
378
- opacity: 0;
379
- }
380
- to {
381
- transform: translateY(0);
382
- opacity: 1;
383
- }
384
- }
385
-
386
- @keyframes spin-bg {
387
- 0% {
388
- background-position: 0% 0%;
389
- }
390
- 25% {
391
- background-position: 100% 0%;
392
- }
393
- 50% {
394
- background-position: 100% 100%;
395
- }
396
- 75% {
397
- background-position: 0% 100%;
398
- }
399
- 100% {
400
- background-position: 0% 0%;
401
- }
402
- }
403
-
404
- @layer utilities {
405
- .flex-center {
406
- @apply flex items-center justify-center;
407
- }
408
-
409
- .flex-center-col {
410
- @apply flex flex-col items-center justify-center;
411
- }
412
-
413
- .flex-center-row {
414
- @apply flex flex-row items-center justify-center;
415
- }
416
-
417
- .token-font-heading-1 {
418
- @apply scroll-m-20 text-4xl leading-[46px] font-extrabold tracking-tight;
419
- }
420
-
421
- .token-font-heading-2 {
422
- @apply scroll-m-20 pb-2 text-3xl font-semibold tracking-tight first:mt-0;
423
- }
424
-
425
- .token-font-heading-3 {
426
- @apply scroll-m-20 text-2xl font-semibold tracking-tight;
427
- }
428
-
429
- .token-font-heading-4 {
430
- @apply scroll-m-20 text-xl font-semibold tracking-tight;
431
- }
432
-
433
- .token-font-paragraph {
434
- @apply leading-7 [&:not(:first-child)]:mt-6;
435
- }
436
-
437
- .token-font-blockquote {
438
- @apply mt-6 border-l-2 pl-6 italic;
439
- }
440
-
441
- .token-font-inline-code {
442
- @apply relative rounded bg-muted px-[0.3rem] py-[0.2rem] font-mono text-sm font-semibold;
443
- }
444
-
445
- .token-font-lead {
446
- @apply text-base font-bold;
447
- }
448
-
449
- .token-font-large {
450
- @apply text-lg font-semibold;
451
- }
452
-
453
- .token-font-medium {
454
- @apply text-base leading-normal;
455
- }
456
-
457
- .token-font-small {
458
- @apply text-sm;
459
- }
460
-
461
- .token-font-small-title {
462
- @apply text-sm leading-[0.875rem] font-medium;
463
- }
464
-
465
- .token-font-extra-small-title {
466
- @apply text-xs font-semibold;
467
- }
468
-
469
- .token-font-extra-small {
470
- @apply text-xs;
471
- }
472
-
473
- .token-font-minimum {
474
- @apply text-[0.5625rem];
475
- }
476
-
477
- .token-font-subtle {
478
- @apply text-sm leading-tight;
479
- }
480
-
481
- .token-font-muted {
482
- @apply text-sm text-muted-foreground;
483
- }
484
-
485
- /* Gradients */
486
- .nuvia-gradient-1 {
487
- @apply bg-gradient-to-r from-nuvia-indigo-400 to-nuvia-lilas-400;
488
- }
489
-
490
- .nuvia-gradient-2 {
491
- @apply bg-gradient-to-r from-nuvia-magenta-400 to-nuvia-magma-400;
492
- }
493
-
494
- .marketing-gradient {
495
- @apply bg-gradient-to-r from-nuvia-magenta-400 to-nuvia-magma-400;
496
- }
497
-
498
- .fade-in-gradient-to-t {
499
- @apply bg-gradient-to-t from-transparent to-background;
500
- }
501
-
502
- .fade-in-gradient-to-b {
503
- @apply bg-gradient-to-b from-transparent to-background;
504
- }
505
-
506
- .fade-in-gradient-to-r {
507
- @apply bg-gradient-to-r from-transparent to-background;
508
- }
509
-
510
- .fade-in-gradient-to-l {
511
- @apply bg-gradient-to-l from-transparent to-background;
512
- }
513
- }
514
-
515
- /*Icon Gradient*/
516
- .icon-gradient {
517
- /* 1. Set the background image to your gradient */
518
- background-image: linear-gradient(to right, #e72c83, #a742c6); /* */
519
- /* Optional: Adjust size and other properties */
520
- font-size: 40px;
521
- }
522
-
523
- /* Apply text gradient only for non-SVG elements to avoid transparent SVG icons */
524
- .icon-gradient:not(svg) {
525
- /* 2. Clip the background to the text shape */
526
- -webkit-background-clip: text;
527
- background-clip: text;
528
- /* 3. Make the actual text color transparent so the gradient shows through */
529
- -webkit-text-fill-color: transparent;
530
- color: transparent; /* */
531
- }
1
+ /**
2
+ * Nuvia Design System - Components Globals
3
+ *
4
+ * This file re-exports the tokens globals and adds any component-specific styles.
5
+ * For Tailwind v4, consumers should import this file after tailwindcss:
6
+ *
7
+ * @import "tailwindcss";
8
+ * @import "@nuvia/components/styles/globals.css";
9
+ *
10
+ * Or import tokens directly:
11
+ * @import "tailwindcss";
12
+ * @import "@nuvia/tokens/styles/globals.css";
13
+ */
14
+
15
+ /* Import all tokens (theme, variables, base styles, utilities) */
16
+ @import "@nuvia/tokens/styles/globals.css";
17
+
18
+ /* ============================================
19
+ COMPONENT-SPECIFIC STYLES
20
+ Additional styles specific to @nuvia/components
21
+ ============================================ */
22
+
23
+ /* Add any component-specific global styles here */