gradient-forge 1.0.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.
Files changed (56) hide show
  1. package/.eslintrc.json +3 -0
  2. package/.github/FUNDING.yml +2 -0
  3. package/README.md +140 -0
  4. package/app/docs/page.tsx +417 -0
  5. package/app/gallery/page.tsx +398 -0
  6. package/app/globals.css +1155 -0
  7. package/app/layout.tsx +36 -0
  8. package/app/page.tsx +600 -0
  9. package/app/showcase/page.tsx +730 -0
  10. package/app/studio/page.tsx +1310 -0
  11. package/cli/index.mjs +1141 -0
  12. package/cli/templates/theme-context.tsx +120 -0
  13. package/cli/templates/theme-engine.ts +237 -0
  14. package/cli/templates/themes.css +512 -0
  15. package/components/site/component-showcase.tsx +623 -0
  16. package/components/site/site-data.ts +103 -0
  17. package/components/site/site-header.tsx +270 -0
  18. package/components/templates/blog.tsx +198 -0
  19. package/components/templates/components-showcase.tsx +298 -0
  20. package/components/templates/dashboard.tsx +246 -0
  21. package/components/templates/ecommerce.tsx +199 -0
  22. package/components/templates/mail.tsx +275 -0
  23. package/components/templates/saas-landing.tsx +169 -0
  24. package/components/theme/studio-code-panel.tsx +485 -0
  25. package/components/theme/theme-context.tsx +120 -0
  26. package/components/theme/theme-engine.ts +237 -0
  27. package/components/theme/theme-exporter.tsx +369 -0
  28. package/components/theme/theme-panel.tsx +268 -0
  29. package/components/theme/token-export-utils.ts +1211 -0
  30. package/components/ui/animated.tsx +55 -0
  31. package/components/ui/avatar.tsx +38 -0
  32. package/components/ui/badge.tsx +32 -0
  33. package/components/ui/button.tsx +65 -0
  34. package/components/ui/card.tsx +56 -0
  35. package/components/ui/checkbox.tsx +19 -0
  36. package/components/ui/command-palette.tsx +245 -0
  37. package/components/ui/gsap-animated.tsx +436 -0
  38. package/components/ui/input.tsx +17 -0
  39. package/components/ui/select.tsx +176 -0
  40. package/components/ui/skeleton.tsx +102 -0
  41. package/components/ui/switch.tsx +43 -0
  42. package/components/ui/tabs.tsx +115 -0
  43. package/components/ui/toast.tsx +119 -0
  44. package/gradient-forge/theme-context.tsx +119 -0
  45. package/gradient-forge/theme-engine.ts +236 -0
  46. package/gradient-forge/themes.css +556 -0
  47. package/lib/animations.ts +50 -0
  48. package/lib/gsap.ts +426 -0
  49. package/lib/utils.ts +6 -0
  50. package/next-env.d.ts +6 -0
  51. package/next.config.mjs +6 -0
  52. package/package.json +53 -0
  53. package/postcss.config.mjs +5 -0
  54. package/tailwind.config.ts +15 -0
  55. package/tsconfig.json +43 -0
  56. package/tsconfig.tsbuildinfo +1 -0
@@ -0,0 +1,1155 @@
1
+ @import url("https://fonts.googleapis.com/css2?family=Instrument+Sans:wght@400..700&family=Space+Grotesk:wght@400..700&display=swap")
2
+ layer(base);
3
+ @import "tailwindcss";
4
+
5
+ @custom-variant dark (&:is(.dark *));
6
+
7
+ @theme {
8
+ --color-background: hsl(var(--background));
9
+ --color-foreground: hsl(var(--foreground));
10
+ --color-card: hsl(var(--card));
11
+ --color-card-foreground: hsl(var(--card-foreground));
12
+ --color-popover: hsl(var(--popover));
13
+ --color-popover-foreground: hsl(var(--popover-foreground));
14
+ --color-primary: hsl(var(--primary));
15
+ --color-primary-foreground: hsl(var(--primary-foreground));
16
+ --color-secondary: hsl(var(--secondary));
17
+ --color-secondary-foreground: hsl(var(--secondary-foreground));
18
+ --color-muted: hsl(var(--muted));
19
+ --color-muted-foreground: hsl(var(--muted-foreground));
20
+ --color-accent: hsl(var(--accent));
21
+ --color-accent-foreground: hsl(var(--accent-foreground));
22
+ --color-destructive: hsl(var(--destructive));
23
+ --color-destructive-foreground: hsl(var(--destructive-foreground));
24
+ --color-border: hsl(var(--border));
25
+ --color-input: hsl(var(--input));
26
+ --color-ring: hsl(var(--ring));
27
+ --color-chart-1: hsl(var(--chart-1));
28
+ --color-chart-2: hsl(var(--chart-2));
29
+ --color-chart-3: hsl(var(--chart-3));
30
+ --color-chart-4: hsl(var(--chart-4));
31
+ --color-chart-5: hsl(var(--chart-5));
32
+ --color-sidebar: hsl(var(--sidebar-background));
33
+ --color-sidebar-foreground: hsl(var(--sidebar-foreground));
34
+ --color-sidebar-primary: hsl(var(--sidebar-primary));
35
+ --color-sidebar-primary-foreground: hsl(var(--sidebar-primary-foreground));
36
+ --color-sidebar-accent: hsl(var(--sidebar-accent));
37
+ --color-sidebar-accent-foreground: hsl(var(--sidebar-accent-foreground));
38
+ --color-sidebar-border: hsl(var(--sidebar-border));
39
+ --color-sidebar-ring: hsl(var(--sidebar-ring));
40
+ --radius-lg: var(--radius);
41
+ --radius-md: calc(var(--radius) - 2px);
42
+ --radius-sm: calc(var(--radius) - 4px);
43
+ }
44
+
45
+ @layer base {
46
+ *,
47
+ ::after,
48
+ ::before,
49
+ ::backdrop,
50
+ ::file-selector-button {
51
+ border-color: var(--color-gray-200, currentcolor);
52
+ }
53
+
54
+ html {
55
+ font-family: "Instrument Sans", system-ui, sans-serif;
56
+ text-rendering: optimizeLegibility;
57
+ scroll-behavior: smooth;
58
+ }
59
+
60
+ body {
61
+ min-height: 100vh;
62
+ position: relative;
63
+ isolation: isolate;
64
+ background-color: hsl(var(--background) / 0.9);
65
+ background-image: var(--app-gradient);
66
+ background-attachment: fixed;
67
+ background-repeat: no-repeat;
68
+ background-size: cover;
69
+ color: hsl(var(--foreground));
70
+ }
71
+
72
+ h1,
73
+ h2,
74
+ h3,
75
+ h4,
76
+ h5 {
77
+ font-family: "Space Grotesk", system-ui, sans-serif;
78
+ }
79
+
80
+ @keyframes float {
81
+ 0%,
82
+ 100% {
83
+ transform: translateY(0px);
84
+ }
85
+ 50% {
86
+ transform: translateY(-10px);
87
+ }
88
+ }
89
+
90
+ .animate-float {
91
+ animation: float 6s ease-in-out infinite;
92
+ }
93
+
94
+ .animate-float-slow {
95
+ animation: float 9s ease-in-out infinite;
96
+ }
97
+
98
+ body::before {
99
+ content: "";
100
+ position: fixed;
101
+ inset: 0;
102
+ pointer-events: none;
103
+ z-index: -2;
104
+ background-image: var(--app-gradient);
105
+ background-size: cover;
106
+ background-repeat: no-repeat;
107
+ background-attachment: fixed;
108
+ }
109
+
110
+ .dark body::after {
111
+ content: "";
112
+ position: fixed;
113
+ inset: -18%;
114
+ pointer-events: none;
115
+ z-index: -1;
116
+ background-image:
117
+ radial-gradient(48% 40% at 8% 8%, hsl(var(--primary) / 0.5), transparent 65%),
118
+ radial-gradient(45% 45% at 92% 12%, hsl(var(--accent) / 0.4), transparent 64%),
119
+ radial-gradient(55% 50% at 50% 110%, hsl(251 92% 62% / 0.28), transparent 68%);
120
+ filter: blur(14px) saturate(1.18);
121
+ }
122
+
123
+ .light body::after {
124
+ content: "";
125
+ position: fixed;
126
+ inset: -20%;
127
+ pointer-events: none;
128
+ z-index: -1;
129
+ background-image:
130
+ radial-gradient(48% 40% at 8% 8%, hsl(var(--primary) / 0.25), transparent 65%),
131
+ radial-gradient(45% 45% at 92% 12%, hsl(var(--accent) / 0.2), transparent 64%);
132
+ filter: blur(18px) saturate(1.05);
133
+ }
134
+
135
+ .bg-background,
136
+ .bg-card,
137
+ .bg-popover,
138
+ .bg-sidebar {
139
+ background-color: hsl(var(--background) / 0.34);
140
+ background-image: linear-gradient(var(--app-surface-tint), var(--app-surface-tint));
141
+ backdrop-filter: blur(16px);
142
+ }
143
+ }
144
+
145
+ @layer base {
146
+ :root {
147
+ --background: 0 0% 100%;
148
+ --foreground: 0 0% 3.9%;
149
+ --card: 0 0% 100%;
150
+ --card-foreground: 0 0% 3.9%;
151
+ --popover: 0 0% 100%;
152
+ --popover-foreground: 0 0% 3.9%;
153
+ --primary: 0 0% 9%;
154
+ --primary-foreground: 0 0% 98%;
155
+ --secondary: 0 0% 96.1%;
156
+ --secondary-foreground: 0 0% 9%;
157
+ --muted: 0 0% 96.1%;
158
+ --muted-foreground: 0 0% 45.1%;
159
+ --accent: 0 0% 96.1%;
160
+ --accent-foreground: 0 0% 9%;
161
+ --destructive: 0 84.2% 60.2%;
162
+ --destructive-foreground: 0 0% 98%;
163
+ --border: 0 0% 89.8%;
164
+ --input: 0 0% 89.8%;
165
+ --ring: 0 0% 3.9%;
166
+ --chart-1: 12 76% 61%;
167
+ --chart-2: 173 58% 39%;
168
+ --chart-3: 197 37% 24%;
169
+ --chart-4: 43 74% 66%;
170
+ --chart-5: 27 87% 67%;
171
+ --radius: 0.9rem;
172
+ --sidebar-background: 0 0% 98%;
173
+ --sidebar-foreground: 240 5.3% 26.1%;
174
+ --sidebar-primary: 240 5.9% 10%;
175
+ --sidebar-primary-foreground: 0 0% 98%;
176
+ --sidebar-accent: 240 4.8% 95.9%;
177
+ --sidebar-accent-foreground: 240 5.9% 10%;
178
+ --sidebar-border: 220 13% 91%;
179
+ --sidebar-ring: 217.2 91.2% 59.8%;
180
+ }
181
+
182
+ .light {
183
+ --background: 0 0% 100%;
184
+ --foreground: 225 18% 12%;
185
+ --card: 0 0% 100%;
186
+ --card-foreground: 225 18% 12%;
187
+ --popover: 0 0% 100%;
188
+ --popover-foreground: 225 18% 12%;
189
+ --secondary: 220 26% 94%;
190
+ --secondary-foreground: 225 18% 16%;
191
+ --muted: 220 26% 94%;
192
+ --muted-foreground: 224 14% 40%;
193
+ --accent-foreground: 225 18% 12%;
194
+ --border: 220 22% 88%;
195
+ --input: 220 22% 88%;
196
+ --sidebar-background: 0 0% 99%;
197
+ --sidebar-foreground: 225 18% 14%;
198
+ --sidebar-accent: 220 25% 95%;
199
+ --sidebar-accent-foreground: 225 18% 14%;
200
+ --sidebar-border: 220 20% 88%;
201
+ }
202
+
203
+ .dark {
204
+ --background: 0 0% 3.9%;
205
+ --foreground: 0 0% 98%;
206
+ --card: 0 0% 3.9%;
207
+ --card-foreground: 0 0% 98%;
208
+ --popover: 0 0% 3.9%;
209
+ --popover-foreground: 0 0% 98%;
210
+ --primary: 0 0% 98%;
211
+ --primary-foreground: 0 0% 9%;
212
+ --secondary: 0 0% 14.9%;
213
+ --secondary-foreground: 0 0% 98%;
214
+ --muted: 0 0% 14.9%;
215
+ --muted-foreground: 0 0% 63.9%;
216
+ --accent: 0 0% 14.9%;
217
+ --accent-foreground: 0 0% 98%;
218
+ --destructive: 0 62.8% 30.6%;
219
+ --destructive-foreground: 0 0% 98%;
220
+ --border: 0 0% 14.9%;
221
+ --input: 0 0% 14.9%;
222
+ --ring: 0 0% 83.1%;
223
+ --chart-1: 220 70% 50%;
224
+ --chart-2: 160 60% 45%;
225
+ --chart-3: 30 80% 55%;
226
+ --chart-4: 280 65% 60%;
227
+ --chart-5: 340 75% 55%;
228
+ --sidebar-background: 240 5.9% 10%;
229
+ --sidebar-foreground: 240 4.8% 95.9%;
230
+ --sidebar-primary: 224.3 76.3% 48%;
231
+ --sidebar-primary-foreground: 0 0% 100%;
232
+ --sidebar-accent: 240 3.7% 15.9%;
233
+ --sidebar-accent-foreground: 240 4.8% 95.9%;
234
+ --sidebar-border: 240 3.7% 15.9%;
235
+ --sidebar-ring: 217.2 91.2% 59.8%;
236
+ }
237
+
238
+ .dark {
239
+ --app-gradient:
240
+ radial-gradient(1100px 560px at -10% -20%, hsl(250 90% 66% / 0.28), transparent 60%),
241
+ radial-gradient(980px 560px at 112% 0%, hsl(205 92% 63% / 0.22), transparent 58%),
242
+ linear-gradient(160deg, hsl(232 30% 12%) 0%, hsl(228 27% 11%) 52%, hsl(222 24% 9%) 100%);
243
+ --app-surface-tint: hsl(250 85% 65% / 0.08);
244
+ }
245
+
246
+ .theme-nitro-mint-apple {
247
+ --background: 153 22% 12%;
248
+ --card: 153 19% 14%;
249
+ --popover: 153 19% 14%;
250
+ --sidebar-background: 153 20% 13%;
251
+ --primary: 151 52% 63%;
252
+ --accent: 95 58% 66%;
253
+ --ring: 151 52% 63%;
254
+ --app-gradient:
255
+ radial-gradient(1100px 560px at -8% -20%, hsl(156 58% 60% / 0.3), transparent 60%),
256
+ radial-gradient(940px 520px at 114% 0%, hsl(96 64% 62% / 0.22), transparent 58%),
257
+ linear-gradient(160deg, hsl(156 27% 13%) 0%, hsl(149 23% 13%) 50%, hsl(136 21% 10%) 100%);
258
+ --app-surface-tint: hsl(151 52% 63% / 0.09);
259
+ }
260
+
261
+ .theme-nitro-citrus-sherbert {
262
+ --background: 35 26% 12%;
263
+ --card: 35 22% 14%;
264
+ --popover: 35 22% 14%;
265
+ --sidebar-background: 35 23% 13%;
266
+ --primary: 33 95% 66%;
267
+ --accent: 49 96% 70%;
268
+ --ring: 33 95% 66%;
269
+ --app-gradient:
270
+ radial-gradient(1060px 560px at -10% -20%, hsl(28 97% 66% / 0.3), transparent 58%),
271
+ radial-gradient(920px 520px at 112% 4%, hsl(53 95% 68% / 0.22), transparent 58%),
272
+ linear-gradient(160deg, hsl(34 29% 12%) 0%, hsl(32 24% 13%) 50%, hsl(27 21% 10%) 100%);
273
+ --app-surface-tint: hsl(34 95% 66% / 0.09);
274
+ }
275
+
276
+ .theme-nitro-retro-raincloud {
277
+ --background: 216 18% 12%;
278
+ --card: 216 16% 14%;
279
+ --popover: 216 16% 14%;
280
+ --sidebar-background: 216 16% 13%;
281
+ --primary: 214 34% 68%;
282
+ --accent: 208 28% 63%;
283
+ --ring: 214 34% 68%;
284
+ --app-gradient:
285
+ radial-gradient(1080px 560px at -8% -20%, hsl(215 36% 66% / 0.28), transparent 60%),
286
+ radial-gradient(940px 520px at 114% 2%, hsl(206 30% 64% / 0.2), transparent 58%),
287
+ linear-gradient(160deg, hsl(217 21% 13%) 0%, hsl(214 18% 13%) 52%, hsl(211 16% 10%) 100%);
288
+ --app-surface-tint: hsl(214 34% 68% / 0.08);
289
+ }
290
+
291
+ .theme-nitro-hanami {
292
+ --background: 322 23% 12%;
293
+ --card: 322 21% 14%;
294
+ --popover: 322 21% 14%;
295
+ --sidebar-background: 322 21% 13%;
296
+ --primary: 327 62% 72%;
297
+ --accent: 338 56% 76%;
298
+ --ring: 327 62% 72%;
299
+ --app-gradient:
300
+ radial-gradient(1040px 560px at -10% -20%, hsl(319 65% 69% / 0.3), transparent 58%),
301
+ radial-gradient(920px 520px at 112% 2%, hsl(339 58% 75% / 0.22), transparent 58%),
302
+ linear-gradient(160deg, hsl(323 27% 12%) 0%, hsl(315 23% 13%) 50%, hsl(304 19% 10%) 100%);
303
+ --app-surface-tint: hsl(327 62% 72% / 0.09);
304
+ }
305
+
306
+ .theme-nitro-sunrise {
307
+ --background: 12 27% 12%;
308
+ --card: 12 24% 14%;
309
+ --popover: 12 24% 14%;
310
+ --sidebar-background: 12 24% 13%;
311
+ --primary: 12 90% 66%;
312
+ --accent: 36 96% 69%;
313
+ --ring: 12 90% 66%;
314
+ --app-gradient:
315
+ radial-gradient(1080px 560px at -12% -20%, hsl(2 88% 66% / 0.28), transparent 58%),
316
+ radial-gradient(920px 520px at 114% 4%, hsl(35 96% 67% / 0.24), transparent 58%),
317
+ linear-gradient(160deg, hsl(9 30% 12%) 0%, hsl(13 26% 13%) 50%, hsl(21 21% 10%) 100%);
318
+ --app-surface-tint: hsl(12 90% 66% / 0.09);
319
+ }
320
+
321
+ .theme-nitro-cotton-candy {
322
+ --background: 252 24% 12%;
323
+ --card: 252 21% 14%;
324
+ --popover: 252 21% 14%;
325
+ --sidebar-background: 252 21% 13%;
326
+ --primary: 263 86% 74%;
327
+ --accent: 332 82% 74%;
328
+ --ring: 263 86% 74%;
329
+ --app-gradient:
330
+ radial-gradient(1040px 560px at -10% -20%, hsl(208 95% 74% / 0.28), transparent 58%),
331
+ radial-gradient(940px 520px at 112% 4%, hsl(328 87% 73% / 0.24), transparent 58%),
332
+ linear-gradient(160deg, hsl(247 30% 12%) 0%, hsl(258 26% 13%) 48%, hsl(286 20% 10%) 100%);
333
+ --app-surface-tint: hsl(263 86% 74% / 0.09);
334
+ }
335
+
336
+ .theme-nitro-lofi-vibes {
337
+ --background: 236 22% 12%;
338
+ --card: 236 19% 14%;
339
+ --popover: 236 19% 14%;
340
+ --sidebar-background: 236 19% 13%;
341
+ --primary: 229 37% 67%;
342
+ --accent: 264 36% 66%;
343
+ --ring: 229 37% 67%;
344
+ --app-gradient:
345
+ radial-gradient(1060px 560px at -10% -20%, hsl(228 44% 63% / 0.26), transparent 60%),
346
+ radial-gradient(940px 520px at 112% 2%, hsl(267 38% 64% / 0.2), transparent 58%),
347
+ linear-gradient(160deg, hsl(236 26% 13%) 0%, hsl(232 22% 13%) 50%, hsl(258 16% 10%) 100%);
348
+ --app-surface-tint: hsl(229 37% 67% / 0.08);
349
+ }
350
+
351
+ .theme-nitro-desert-khaki {
352
+ --background: 36 21% 12%;
353
+ --card: 36 19% 14%;
354
+ --popover: 36 19% 14%;
355
+ --sidebar-background: 36 19% 13%;
356
+ --primary: 37 45% 64%;
357
+ --accent: 45 34% 66%;
358
+ --ring: 37 45% 64%;
359
+ --app-gradient:
360
+ radial-gradient(1060px 560px at -10% -18%, hsl(34 44% 58% / 0.26), transparent 58%),
361
+ radial-gradient(920px 520px at 112% 2%, hsl(48 33% 63% / 0.18), transparent 58%),
362
+ linear-gradient(160deg, hsl(37 23% 13%) 0%, hsl(34 20% 13%) 52%, hsl(30 16% 10%) 100%);
363
+ --app-surface-tint: hsl(37 45% 64% / 0.08);
364
+ }
365
+
366
+ .theme-nitro-sunset {
367
+ --background: 308 25% 12%;
368
+ --card: 308 22% 14%;
369
+ --popover: 308 22% 14%;
370
+ --sidebar-background: 308 22% 13%;
371
+ --primary: 19 96% 67%;
372
+ --accent: 337 84% 65%;
373
+ --ring: 19 96% 67%;
374
+ --app-gradient:
375
+ radial-gradient(1040px 560px at -12% -20%, hsl(325 84% 62% / 0.31), transparent 58%),
376
+ radial-gradient(900px 520px at 112% 6%, hsl(24 97% 66% / 0.24), transparent 58%),
377
+ linear-gradient(160deg, hsl(304 29% 12%) 0%, hsl(298 24% 13%) 50%, hsl(287 22% 10%) 100%);
378
+ --app-surface-tint: hsl(19 96% 67% / 0.09);
379
+ }
380
+
381
+ .theme-nitro-chroma-glow {
382
+ --background: 246 33% 11%;
383
+ --card: 246 28% 13%;
384
+ --popover: 246 28% 13%;
385
+ --sidebar-background: 246 28% 12%;
386
+ --primary: 286 94% 67%;
387
+ --accent: 195 100% 61%;
388
+ --ring: 286 94% 67%;
389
+ --app-gradient:
390
+ radial-gradient(1020px 560px at -12% -18%, hsl(226 95% 63% / 0.32), transparent 58%),
391
+ radial-gradient(940px 520px at 112% 2%, hsl(194 100% 62% / 0.28), transparent 58%),
392
+ linear-gradient(160deg, hsl(246 36% 12%) 0%, hsl(272 30% 12%) 50%, hsl(305 24% 10%) 100%);
393
+ --app-surface-tint: hsl(286 94% 67% / 0.1);
394
+ }
395
+
396
+ .theme-nitro-forest {
397
+ --background: 148 27% 11%;
398
+ --card: 148 23% 13%;
399
+ --popover: 148 23% 13%;
400
+ --sidebar-background: 148 23% 12%;
401
+ --primary: 145 58% 57%;
402
+ --accent: 166 52% 57%;
403
+ --ring: 145 58% 57%;
404
+ --app-gradient:
405
+ radial-gradient(1080px 560px at -10% -20%, hsl(145 62% 53% / 0.3), transparent 60%),
406
+ radial-gradient(920px 520px at 112% 2%, hsl(170 48% 53% / 0.22), transparent 58%),
407
+ linear-gradient(160deg, hsl(149 30% 12%) 0%, hsl(146 26% 12%) 52%, hsl(160 21% 10%) 100%);
408
+ --app-surface-tint: hsl(145 58% 57% / 0.09);
409
+ }
410
+
411
+ .theme-nitro-crimson {
412
+ --background: 350 34% 10%;
413
+ --card: 350 29% 12%;
414
+ --popover: 350 29% 12%;
415
+ --sidebar-background: 350 29% 11%;
416
+ --primary: 350 82% 62%;
417
+ --accent: 8 82% 61%;
418
+ --ring: 350 82% 62%;
419
+ --app-gradient:
420
+ radial-gradient(1040px 560px at -12% -18%, hsl(352 85% 59% / 0.34), transparent 58%),
421
+ radial-gradient(900px 520px at 112% 4%, hsl(9 84% 58% / 0.22), transparent 58%),
422
+ linear-gradient(160deg, hsl(349 37% 11%) 0%, hsl(342 31% 12%) 50%, hsl(326 24% 10%) 100%);
423
+ --app-surface-tint: hsl(350 82% 62% / 0.1);
424
+ }
425
+
426
+ .theme-nitro-midnight-blurple {
427
+ --background: 234 34% 11%;
428
+ --card: 234 29% 13%;
429
+ --popover: 234 29% 13%;
430
+ --sidebar-background: 234 29% 12%;
431
+ --primary: 247 90% 67%;
432
+ --accent: 214 92% 66%;
433
+ --ring: 247 90% 67%;
434
+ --app-gradient:
435
+ radial-gradient(1100px 560px at -8% -20%, hsl(248 93% 69% / 0.3), transparent 60%),
436
+ radial-gradient(980px 560px at 112% 0%, hsl(210 92% 64% / 0.24), transparent 58%),
437
+ linear-gradient(160deg, hsl(234 35% 12%) 0%, hsl(228 29% 11%) 52%, hsl(222 25% 9%) 100%);
438
+ --app-surface-tint: hsl(247 90% 67% / 0.09);
439
+ }
440
+
441
+ .theme-nitro-mars {
442
+ --background: 14 33% 11%;
443
+ --card: 14 28% 13%;
444
+ --popover: 14 28% 13%;
445
+ --sidebar-background: 14 28% 12%;
446
+ --primary: 15 74% 58%;
447
+ --accent: 29 64% 56%;
448
+ --ring: 15 74% 58%;
449
+ --app-gradient:
450
+ radial-gradient(1040px 560px at -12% -20%, hsl(11 72% 55% / 0.31), transparent 58%),
451
+ radial-gradient(940px 520px at 112% 4%, hsl(30 66% 52% / 0.2), transparent 58%),
452
+ linear-gradient(160deg, hsl(14 35% 12%) 0%, hsl(16 30% 13%) 50%, hsl(24 23% 10%) 100%);
453
+ --app-surface-tint: hsl(15 74% 58% / 0.09);
454
+ }
455
+
456
+ .theme-nitro-dusk {
457
+ --background: 259 27% 11%;
458
+ --card: 259 23% 13%;
459
+ --popover: 259 23% 13%;
460
+ --sidebar-background: 259 23% 12%;
461
+ --primary: 266 58% 66%;
462
+ --accent: 223 42% 65%;
463
+ --ring: 266 58% 66%;
464
+ --app-gradient:
465
+ radial-gradient(1060px 560px at -8% -20%, hsl(271 62% 64% / 0.3), transparent 58%),
466
+ radial-gradient(940px 520px at 112% 4%, hsl(226 43% 63% / 0.22), transparent 58%),
467
+ linear-gradient(160deg, hsl(261 30% 12%) 0%, hsl(252 24% 13%) 50%, hsl(235 20% 10%) 100%);
468
+ --app-surface-tint: hsl(266 58% 66% / 0.09);
469
+ }
470
+
471
+ .theme-nitro-under-the-sea {
472
+ --background: 197 35% 10%;
473
+ --card: 197 30% 12%;
474
+ --popover: 197 30% 12%;
475
+ --sidebar-background: 197 30% 11%;
476
+ --primary: 189 70% 58%;
477
+ --accent: 168 58% 54%;
478
+ --ring: 189 70% 58%;
479
+ --app-gradient:
480
+ radial-gradient(1100px 560px at -8% -20%, hsl(202 80% 56% / 0.3), transparent 60%),
481
+ radial-gradient(940px 520px at 114% 2%, hsl(168 58% 51% / 0.24), transparent 58%),
482
+ linear-gradient(160deg, hsl(200 36% 11%) 0%, hsl(194 32% 12%) 50%, hsl(185 27% 10%) 100%);
483
+ --app-surface-tint: hsl(189 70% 58% / 0.09);
484
+ }
485
+
486
+ .theme-nitro-retro-storm {
487
+ --background: 214 21% 11%;
488
+ --card: 214 18% 13%;
489
+ --popover: 214 18% 13%;
490
+ --sidebar-background: 214 18% 12%;
491
+ --primary: 213 30% 65%;
492
+ --accent: 201 25% 63%;
493
+ --ring: 213 30% 65%;
494
+ --app-gradient:
495
+ radial-gradient(1060px 560px at -8% -20%, hsl(212 30% 62% / 0.28), transparent 58%),
496
+ radial-gradient(920px 520px at 112% 2%, hsl(198 24% 60% / 0.18), transparent 58%),
497
+ linear-gradient(160deg, hsl(214 24% 12%) 0%, hsl(212 20% 13%) 52%, hsl(208 18% 10%) 100%);
498
+ --app-surface-tint: hsl(213 30% 65% / 0.08);
499
+ }
500
+
501
+ .theme-nitro-neon-nights {
502
+ --background: 245 36% 10%;
503
+ --card: 245 31% 12%;
504
+ --popover: 245 31% 12%;
505
+ --sidebar-background: 245 31% 11%;
506
+ --primary: 287 100% 67%;
507
+ --accent: 191 100% 60%;
508
+ --ring: 287 100% 67%;
509
+ --app-gradient:
510
+ radial-gradient(1040px 560px at -12% -20%, hsl(288 100% 65% / 0.32), transparent 58%),
511
+ radial-gradient(900px 520px at 112% 2%, hsl(192 100% 58% / 0.28), transparent 58%),
512
+ linear-gradient(160deg, hsl(243 38% 11%) 0%, hsl(252 32% 12%) 50%, hsl(224 28% 9%) 100%);
513
+ --app-surface-tint: hsl(287 100% 67% / 0.1);
514
+ }
515
+
516
+ .theme-nitro-strawberry-lemonade {
517
+ --background: 339 30% 11%;
518
+ --card: 339 25% 13%;
519
+ --popover: 339 25% 13%;
520
+ --sidebar-background: 339 25% 12%;
521
+ --primary: 341 84% 64%;
522
+ --accent: 48 93% 63%;
523
+ --ring: 341 84% 64%;
524
+ --app-gradient:
525
+ radial-gradient(1040px 560px at -10% -20%, hsl(338 88% 63% / 0.31), transparent 58%),
526
+ radial-gradient(940px 520px at 112% 6%, hsl(49 95% 61% / 0.24), transparent 58%),
527
+ linear-gradient(160deg, hsl(339 33% 12%) 0%, hsl(332 28% 12%) 50%, hsl(20 20% 10%) 100%);
528
+ --app-surface-tint: hsl(341 84% 64% / 0.09);
529
+ }
530
+
531
+ .theme-nitro-aurora {
532
+ --background: 175 30% 11%;
533
+ --card: 175 26% 13%;
534
+ --popover: 175 26% 13%;
535
+ --sidebar-background: 175 26% 12%;
536
+ --primary: 168 67% 58%;
537
+ --accent: 123 56% 63%;
538
+ --ring: 168 67% 58%;
539
+ --app-gradient:
540
+ radial-gradient(1100px 560px at -8% -20%, hsl(178 72% 56% / 0.3), transparent 60%),
541
+ radial-gradient(960px 540px at 114% 2%, hsl(124 56% 61% / 0.22), transparent 58%),
542
+ linear-gradient(160deg, hsl(182 33% 11%) 0%, hsl(167 30% 12%) 50%, hsl(145 24% 10%) 100%);
543
+ --app-surface-tint: hsl(168 67% 58% / 0.09);
544
+ }
545
+
546
+ .theme-nitro-sepia {
547
+ --background: 29 24% 11%;
548
+ --card: 29 21% 13%;
549
+ --popover: 29 21% 13%;
550
+ --sidebar-background: 29 21% 12%;
551
+ --primary: 30 39% 58%;
552
+ --accent: 22 33% 54%;
553
+ --ring: 30 39% 58%;
554
+ --app-gradient:
555
+ radial-gradient(1040px 560px at -10% -20%, hsl(33 42% 52% / 0.24), transparent 58%),
556
+ radial-gradient(920px 520px at 112% 2%, hsl(20 34% 49% / 0.2), transparent 58%),
557
+ linear-gradient(160deg, hsl(29 28% 12%) 0%, hsl(26 23% 13%) 50%, hsl(22 19% 10%) 100%);
558
+ --app-surface-tint: hsl(30 39% 58% / 0.08);
559
+ }
560
+
561
+ .theme-nitro-memory-lane {
562
+ --background: 264 24% 11%;
563
+ --card: 264 21% 13%;
564
+ --popover: 264 21% 13%;
565
+ --sidebar-background: 264 21% 12%;
566
+ --primary: 277 62% 71%;
567
+ --accent: 196 56% 63%;
568
+ --ring: 277 62% 71%;
569
+ --app-gradient:
570
+ radial-gradient(1020px 560px at -10% -20%, hsl(283 62% 70% / 0.31), transparent 58%),
571
+ radial-gradient(920px 520px at 112% 0%, hsl(197 59% 63% / 0.23), transparent 58%),
572
+ linear-gradient(160deg, hsl(269 30% 12%) 0%, hsl(257 25% 13%) 48%, hsl(203 22% 10%) 100%);
573
+ --app-surface-tint: hsl(277 62% 71% / 0.09);
574
+ }
575
+
576
+ .light[class*="theme-nitro-"] {
577
+ --background: 0 0% 100%;
578
+ --foreground: 225 22% 12%;
579
+ --card: 0 0% 100%;
580
+ --card-foreground: 225 22% 12%;
581
+ --popover: 0 0% 100%;
582
+ --popover-foreground: 225 22% 12%;
583
+ --secondary: 220 28% 94%;
584
+ --secondary-foreground: 225 18% 16%;
585
+ --muted: 220 28% 95%;
586
+ --muted-foreground: 224 14% 40%;
587
+ --border: 220 24% 88%;
588
+ --input: 220 24% 88%;
589
+ --sidebar-background: 0 0% 99%;
590
+ --sidebar-foreground: 225 18% 16%;
591
+ --sidebar-accent: 220 28% 95%;
592
+ --sidebar-accent-foreground: 225 18% 16%;
593
+ --sidebar-border: 220 24% 88%;
594
+ --app-gradient:
595
+ radial-gradient(1100px 580px at -10% -15%, hsl(var(--primary) / 0.27), transparent 58%),
596
+ radial-gradient(980px 560px at 112% 0%, hsl(var(--accent) / 0.22), transparent 58%),
597
+ linear-gradient(165deg, hsl(0 0% 100%) 0%, hsl(220 32% 97%) 52%, hsl(220 36% 94%) 100%);
598
+ --app-surface-tint: hsl(var(--primary) / 0.05);
599
+ }
600
+ }
601
+
602
+ @layer utilities {
603
+ html[data-theme] body {
604
+ background-image: var(--app-gradient) !important;
605
+ background-color: hsl(var(--background) / 0.82) !important;
606
+ }
607
+
608
+ html[data-theme] .group\/sidebar-wrapper,
609
+ html[data-theme] [data-sidebar="sidebar"] {
610
+ background-image:
611
+ radial-gradient(130% 100% at 0% 0%, hsl(var(--primary) / 0.45), transparent 54%),
612
+ radial-gradient(120% 100% at 100% 0%, hsl(var(--accent) / 0.34), transparent 55%),
613
+ linear-gradient(170deg, hsl(var(--background) / 0.94), hsl(var(--background) / 0.7)) !important;
614
+ background-color: transparent !important;
615
+ background-size: cover;
616
+ backdrop-filter: blur(20px) saturate(1.08);
617
+ }
618
+
619
+ html[data-theme] .bg-background,
620
+ html[data-theme] .bg-card,
621
+ html[data-theme] .bg-popover,
622
+ html[data-theme] .bg-sidebar {
623
+ background-image:
624
+ linear-gradient(var(--app-surface-tint), var(--app-surface-tint)),
625
+ radial-gradient(120% 100% at 0% 0%, hsl(var(--primary) / 0.24), transparent 55%),
626
+ radial-gradient(120% 100% at 100% 0%, hsl(var(--accent) / 0.2), transparent 55%) !important;
627
+ background-color: hsl(var(--background) / 0.22) !important;
628
+ backdrop-filter: blur(18px) saturate(1.06);
629
+ }
630
+
631
+ html[data-theme] .bg-muted,
632
+ html[data-theme] .bg-secondary {
633
+ background-image:
634
+ radial-gradient(100% 100% at 0% 0%, hsl(var(--primary) / 0.14), transparent 58%),
635
+ radial-gradient(100% 100% at 100% 0%, hsl(var(--accent) / 0.12), transparent 58%) !important;
636
+ background-color: hsl(var(--background) / 0.34) !important;
637
+ }
638
+ }
639
+
640
+ /* gradient-forge theme start */
641
+
642
+ @layer base {
643
+ *,
644
+ ::after,
645
+ ::before,
646
+ ::backdrop,
647
+ ::file-selector-button {
648
+ border-color: var(--color-gray-200, currentcolor);
649
+ }
650
+
651
+ html {
652
+ font-family: "Instrument Sans", system-ui, sans-serif;
653
+ text-rendering: optimizeLegibility;
654
+ }
655
+
656
+ body {
657
+ min-height: 100vh;
658
+ position: relative;
659
+ isolation: isolate;
660
+ background-color: hsl(var(--background) / 0.9);
661
+ background-image: var(--app-gradient);
662
+ background-attachment: fixed;
663
+ background-repeat: no-repeat;
664
+ background-size: cover;
665
+ color: hsl(var(--foreground));
666
+ }
667
+
668
+ h1,
669
+ h2,
670
+ h3,
671
+ h4,
672
+ h5 {
673
+ font-family: "Space Grotesk", system-ui, sans-serif;
674
+ }
675
+
676
+ body::before {
677
+ content: "";
678
+ position: fixed;
679
+ inset: 0;
680
+ pointer-events: none;
681
+ z-index: -2;
682
+ background-image: var(--app-gradient);
683
+ background-size: cover;
684
+ background-repeat: no-repeat;
685
+ background-attachment: fixed;
686
+ }
687
+
688
+ .dark body::after {
689
+ content: "";
690
+ position: fixed;
691
+ inset: -18%;
692
+ pointer-events: none;
693
+ z-index: -1;
694
+ background-image:
695
+ radial-gradient(48% 40% at 8% 8%, hsl(var(--primary) / 0.5), transparent 65%),
696
+ radial-gradient(45% 45% at 92% 12%, hsl(var(--accent) / 0.4), transparent 64%),
697
+ radial-gradient(55% 50% at 50% 110%, hsl(251 92% 62% / 0.28), transparent 68%);
698
+ filter: blur(14px) saturate(1.18);
699
+ }
700
+
701
+ .light body::after {
702
+ content: "";
703
+ position: fixed;
704
+ inset: -20%;
705
+ pointer-events: none;
706
+ z-index: -1;
707
+ background-image:
708
+ radial-gradient(48% 40% at 8% 8%, hsl(var(--primary) / 0.25), transparent 65%),
709
+ radial-gradient(45% 45% at 92% 12%, hsl(var(--accent) / 0.2), transparent 64%);
710
+ filter: blur(18px) saturate(1.05);
711
+ }
712
+
713
+ .bg-background,
714
+ .bg-card,
715
+ .bg-popover,
716
+ .bg-sidebar {
717
+ background-color: hsl(var(--background) / 0.34);
718
+ background-image: linear-gradient(var(--app-surface-tint), var(--app-surface-tint));
719
+ backdrop-filter: blur(16px);
720
+ }
721
+ }
722
+
723
+ @layer base {
724
+ :root {
725
+ --background: 0 0% 100%;
726
+ --foreground: 0 0% 3.9%;
727
+ --card: 0 0% 100%;
728
+ --card-foreground: 0 0% 3.9%;
729
+ --popover: 0 0% 100%;
730
+ --popover-foreground: 0 0% 3.9%;
731
+ --primary: 0 0% 9%;
732
+ --primary-foreground: 0 0% 98%;
733
+ --secondary: 0 0% 96.1%;
734
+ --secondary-foreground: 0 0% 9%;
735
+ --muted: 0 0% 96.1%;
736
+ --muted-foreground: 0 0% 45.1%;
737
+ --accent: 0 0% 96.1%;
738
+ --accent-foreground: 0 0% 9%;
739
+ --destructive: 0 84.2% 60.2%;
740
+ --destructive-foreground: 0 0% 98%;
741
+ --border: 0 0% 89.8%;
742
+ --input: 0 0% 89.8%;
743
+ --ring: 0 0% 3.9%;
744
+ --chart-1: 12 76% 61%;
745
+ --chart-2: 173 58% 39%;
746
+ --chart-3: 197 37% 24%;
747
+ --chart-4: 43 74% 66%;
748
+ --chart-5: 27 87% 67%;
749
+ --radius: 0.9rem;
750
+ --sidebar-background: 0 0% 98%;
751
+ --sidebar-foreground: 240 5.3% 26.1%;
752
+ --sidebar-primary: 240 5.9% 10%;
753
+ --sidebar-primary-foreground: 0 0% 98%;
754
+ --sidebar-accent: 240 4.8% 95.9%;
755
+ --sidebar-accent-foreground: 240 5.9% 10%;
756
+ --sidebar-border: 220 13% 91%;
757
+ --sidebar-ring: 217.2 91.2% 59.8%;
758
+ }
759
+
760
+ .light {
761
+ --background: 0 0% 100%;
762
+ --foreground: 225 18% 12%;
763
+ --card: 0 0% 100%;
764
+ --card-foreground: 225 18% 12%;
765
+ --popover: 0 0% 100%;
766
+ --popover-foreground: 225 18% 12%;
767
+ --secondary: 220 26% 94%;
768
+ --secondary-foreground: 225 18% 16%;
769
+ --muted: 220 26% 94%;
770
+ --muted-foreground: 224 14% 40%;
771
+ --accent-foreground: 225 18% 12%;
772
+ --border: 220 22% 88%;
773
+ --input: 220 22% 88%;
774
+ --sidebar-background: 0 0% 99%;
775
+ --sidebar-foreground: 225 18% 14%;
776
+ --sidebar-accent: 220 25% 95%;
777
+ --sidebar-accent-foreground: 225 18% 14%;
778
+ --sidebar-border: 220 20% 88%;
779
+ }
780
+
781
+ .dark {
782
+ --background: 0 0% 3.9%;
783
+ --foreground: 0 0% 98%;
784
+ --card: 0 0% 3.9%;
785
+ --card-foreground: 0 0% 98%;
786
+ --popover: 0 0% 3.9%;
787
+ --popover-foreground: 0 0% 98%;
788
+ --primary: 0 0% 98%;
789
+ --primary-foreground: 0 0% 9%;
790
+ --secondary: 0 0% 14.9%;
791
+ --secondary-foreground: 0 0% 98%;
792
+ --muted: 0 0% 14.9%;
793
+ --muted-foreground: 0 0% 63.9%;
794
+ --accent: 0 0% 14.9%;
795
+ --accent-foreground: 0 0% 98%;
796
+ --destructive: 0 62.8% 30.6%;
797
+ --destructive-foreground: 0 0% 98%;
798
+ --border: 0 0% 14.9%;
799
+ --input: 0 0% 14.9%;
800
+ --ring: 0 0% 83.1%;
801
+ --chart-1: 220 70% 50%;
802
+ --chart-2: 160 60% 45%;
803
+ --chart-3: 30 80% 55%;
804
+ --chart-4: 280 65% 60%;
805
+ --chart-5: 340 75% 55%;
806
+ --sidebar-background: 240 5.9% 10%;
807
+ --sidebar-foreground: 240 4.8% 95.9%;
808
+ --sidebar-primary: 224.3 76.3% 48%;
809
+ --sidebar-primary-foreground: 0 0% 100%;
810
+ --sidebar-accent: 240 3.7% 15.9%;
811
+ --sidebar-accent-foreground: 240 4.8% 95.9%;
812
+ --sidebar-border: 240 3.7% 15.9%;
813
+ --sidebar-ring: 217.2 91.2% 59.8%;
814
+ }
815
+
816
+ .dark {
817
+ --app-gradient:
818
+ radial-gradient(1100px 560px at -10% -20%, hsl(250 90% 66% / 0.28), transparent 60%),
819
+ radial-gradient(980px 560px at 112% 0%, hsl(205 92% 63% / 0.22), transparent 58%),
820
+ linear-gradient(160deg, hsl(232 30% 12%) 0%, hsl(228 27% 11%) 52%, hsl(222 24% 9%) 100%);
821
+ --app-surface-tint: hsl(250 85% 65% / 0.08);
822
+ }
823
+
824
+ .theme-nitro-mint-apple {
825
+ --background: 153 22% 12%;
826
+ --card: 153 19% 14%;
827
+ --popover: 153 19% 14%;
828
+ --sidebar-background: 153 20% 13%;
829
+ --primary: 151 52% 63%;
830
+ --accent: 95 58% 66%;
831
+ --ring: 151 52% 63%;
832
+ --app-gradient:
833
+ radial-gradient(1100px 560px at -8% -20%, hsl(156 58% 60% / 0.3), transparent 60%),
834
+ radial-gradient(940px 520px at 114% 0%, hsl(96 64% 62% / 0.22), transparent 58%),
835
+ linear-gradient(160deg, hsl(156 27% 13%) 0%, hsl(149 23% 13%) 50%, hsl(136 21% 10%) 100%);
836
+ --app-surface-tint: hsl(151 52% 63% / 0.09);
837
+ }
838
+
839
+ .theme-nitro-citrus-sherbert {
840
+ --background: 35 26% 12%;
841
+ --card: 35 22% 14%;
842
+ --popover: 35 22% 14%;
843
+ --sidebar-background: 35 23% 13%;
844
+ --primary: 33 95% 66%;
845
+ --accent: 49 96% 70%;
846
+ --ring: 33 95% 66%;
847
+ --app-gradient:
848
+ radial-gradient(1060px 560px at -10% -20%, hsl(28 97% 66% / 0.3), transparent 58%),
849
+ radial-gradient(920px 520px at 112% 4%, hsl(53 95% 68% / 0.22), transparent 58%),
850
+ linear-gradient(160deg, hsl(34 29% 12%) 0%, hsl(32 24% 13%) 50%, hsl(27 21% 10%) 100%);
851
+ --app-surface-tint: hsl(34 95% 66% / 0.09);
852
+ }
853
+
854
+ .theme-nitro-retro-raincloud {
855
+ --background: 216 18% 12%;
856
+ --card: 216 16% 14%;
857
+ --popover: 216 16% 14%;
858
+ --sidebar-background: 216 16% 13%;
859
+ --primary: 214 34% 68%;
860
+ --accent: 208 28% 63%;
861
+ --ring: 214 34% 68%;
862
+ --app-gradient:
863
+ radial-gradient(1080px 560px at -8% -20%, hsl(215 36% 66% / 0.28), transparent 60%),
864
+ radial-gradient(940px 520px at 114% 2%, hsl(206 30% 64% / 0.2), transparent 58%),
865
+ linear-gradient(160deg, hsl(217 21% 13%) 0%, hsl(214 18% 13%) 52%, hsl(211 16% 10%) 100%);
866
+ --app-surface-tint: hsl(214 34% 68% / 0.08);
867
+ }
868
+
869
+ .theme-nitro-hanami {
870
+ --background: 322 23% 12%;
871
+ --card: 322 21% 14%;
872
+ --popover: 322 21% 14%;
873
+ --sidebar-background: 322 21% 13%;
874
+ --primary: 327 62% 72%;
875
+ --accent: 338 56% 76%;
876
+ --ring: 327 62% 72%;
877
+ --app-gradient:
878
+ radial-gradient(1040px 560px at -10% -20%, hsl(319 65% 69% / 0.3), transparent 58%),
879
+ radial-gradient(920px 520px at 112% 2%, hsl(339 58% 75% / 0.22), transparent 58%),
880
+ linear-gradient(160deg, hsl(323 27% 12%) 0%, hsl(315 23% 13%) 50%, hsl(304 19% 10%) 100%);
881
+ --app-surface-tint: hsl(327 62% 72% / 0.09);
882
+ }
883
+
884
+ .theme-nitro-sunrise {
885
+ --background: 12 27% 12%;
886
+ --card: 12 24% 14%;
887
+ --popover: 12 24% 14%;
888
+ --sidebar-background: 12 24% 13%;
889
+ --primary: 12 90% 66%;
890
+ --accent: 36 96% 69%;
891
+ --ring: 12 90% 66%;
892
+ --app-gradient:
893
+ radial-gradient(1080px 560px at -12% -20%, hsl(2 88% 66% / 0.28), transparent 58%),
894
+ radial-gradient(920px 520px at 114% 4%, hsl(35 96% 67% / 0.24), transparent 58%),
895
+ linear-gradient(160deg, hsl(9 30% 12%) 0%, hsl(13 26% 13%) 50%, hsl(21 21% 10%) 100%);
896
+ --app-surface-tint: hsl(12 90% 66% / 0.09);
897
+ }
898
+
899
+ .theme-nitro-cotton-candy {
900
+ --background: 252 24% 12%;
901
+ --card: 252 21% 14%;
902
+ --popover: 252 21% 14%;
903
+ --sidebar-background: 252 21% 13%;
904
+ --primary: 263 86% 74%;
905
+ --accent: 332 82% 74%;
906
+ --ring: 263 86% 74%;
907
+ --app-gradient:
908
+ radial-gradient(1040px 560px at -10% -20%, hsl(208 95% 74% / 0.28), transparent 58%),
909
+ radial-gradient(940px 520px at 112% 4%, hsl(328 87% 73% / 0.24), transparent 58%),
910
+ linear-gradient(160deg, hsl(247 30% 12%) 0%, hsl(258 26% 13%) 48%, hsl(286 20% 10%) 100%);
911
+ --app-surface-tint: hsl(263 86% 74% / 0.09);
912
+ }
913
+
914
+ .theme-nitro-lofi-vibes {
915
+ --background: 236 22% 12%;
916
+ --card: 236 19% 14%;
917
+ --popover: 236 19% 14%;
918
+ --sidebar-background: 236 19% 13%;
919
+ --primary: 229 37% 67%;
920
+ --accent: 264 36% 66%;
921
+ --ring: 229 37% 67%;
922
+ --app-gradient:
923
+ radial-gradient(1060px 560px at -10% -20%, hsl(228 44% 63% / 0.26), transparent 60%),
924
+ radial-gradient(940px 520px at 112% 2%, hsl(267 38% 64% / 0.2), transparent 58%),
925
+ linear-gradient(160deg, hsl(236 26% 13%) 0%, hsl(232 22% 13%) 50%, hsl(258 16% 10%) 100%);
926
+ --app-surface-tint: hsl(229 37% 67% / 0.08);
927
+ }
928
+
929
+ .theme-nitro-desert-khaki {
930
+ --background: 36 21% 12%;
931
+ --card: 36 19% 14%;
932
+ --popover: 36 19% 14%;
933
+ --sidebar-background: 36 19% 13%;
934
+ --primary: 37 45% 64%;
935
+ --accent: 45 34% 66%;
936
+ --ring: 37 45% 64%;
937
+ --app-gradient:
938
+ radial-gradient(1060px 560px at -10% -18%, hsl(34 44% 58% / 0.26), transparent 58%),
939
+ radial-gradient(920px 520px at 112% 2%, hsl(48 33% 63% / 0.18), transparent 58%),
940
+ linear-gradient(160deg, hsl(37 23% 13%) 0%, hsl(34 20% 13%) 52%, hsl(30 16% 10%) 100%);
941
+ --app-surface-tint: hsl(37 45% 64% / 0.08);
942
+ }
943
+
944
+ .theme-nitro-sunset {
945
+ --background: 308 25% 12%;
946
+ --card: 308 22% 14%;
947
+ --popover: 308 22% 14%;
948
+ --sidebar-background: 308 22% 13%;
949
+ --primary: 19 96% 67%;
950
+ --accent: 337 84% 65%;
951
+ --ring: 19 96% 67%;
952
+ --app-gradient:
953
+ radial-gradient(1040px 560px at -12% -20%, hsl(325 84% 62% / 0.31), transparent 58%),
954
+ radial-gradient(900px 520px at 112% 6%, hsl(24 97% 66% / 0.24), transparent 58%),
955
+ linear-gradient(160deg, hsl(304 29% 12%) 0%, hsl(298 24% 13%) 50%, hsl(287 22% 10%) 100%);
956
+ --app-surface-tint: hsl(19 96% 67% / 0.09);
957
+ }
958
+
959
+ .theme-nitro-chroma-glow {
960
+ --background: 246 33% 11%;
961
+ --card: 246 28% 13%;
962
+ --popover: 246 28% 13%;
963
+ --sidebar-background: 246 28% 12%;
964
+ --primary: 286 94% 67%;
965
+ --accent: 195 100% 61%;
966
+ --ring: 286 94% 67%;
967
+ --app-gradient:
968
+ radial-gradient(1020px 560px at -12% -18%, hsl(226 95% 63% / 0.32), transparent 58%),
969
+ radial-gradient(940px 520px at 112% 2%, hsl(194 100% 62% / 0.28), transparent 58%),
970
+ linear-gradient(160deg, hsl(246 36% 12%) 0%, hsl(272 30% 12%) 50%, hsl(305 24% 10%) 100%);
971
+ --app-surface-tint: hsl(286 94% 67% / 0.1);
972
+ }
973
+
974
+ .theme-nitro-forest {
975
+ --background: 148 27% 11%;
976
+ --card: 148 23% 13%;
977
+ --popover: 148 23% 13%;
978
+ --sidebar-background: 148 23% 12%;
979
+ --primary: 145 58% 57%;
980
+ --accent: 166 52% 57%;
981
+ --ring: 145 58% 57%;
982
+ --app-gradient:
983
+ radial-gradient(1080px 560px at -10% -20%, hsl(145 62% 53% / 0.3), transparent 60%),
984
+ radial-gradient(920px 520px at 112% 2%, hsl(170 48% 53% / 0.22), transparent 58%),
985
+ linear-gradient(160deg, hsl(149 30% 12%) 0%, hsl(146 26% 12%) 52%, hsl(160 21% 10%) 100%);
986
+ --app-surface-tint: hsl(145 58% 57% / 0.09);
987
+ }
988
+
989
+ .theme-nitro-crimson {
990
+ --background: 350 34% 10%;
991
+ --card: 350 29% 12%;
992
+ --popover: 350 29% 12%;
993
+ --sidebar-background: 350 29% 11%;
994
+ --primary: 350 82% 62%;
995
+ --accent: 8 82% 61%;
996
+ --ring: 350 82% 62%;
997
+ --app-gradient:
998
+ radial-gradient(1060px 560px at -10% -22%, hsl(352 88% 60% / 0.3), transparent 58%),
999
+ radial-gradient(920px 520px at 112% 2%, hsl(12 82% 58% / 0.22), transparent 58%),
1000
+ linear-gradient(160deg, hsl(349 30% 11%) 0%, hsl(346 25% 11%) 52%, hsl(343 21% 9%) 100%);
1001
+ --app-surface-tint: hsl(350 82% 62% / 0.1);
1002
+ }
1003
+
1004
+ .theme-nitro-midnight-blurple {
1005
+ --background: 235 26% 11%;
1006
+ --card: 235 22% 12%;
1007
+ --popover: 235 22% 12%;
1008
+ --sidebar-background: 235 22% 11%;
1009
+ --primary: 241 92% 70%;
1010
+ --accent: 210 92% 65%;
1011
+ --ring: 241 92% 70%;
1012
+ --app-gradient:
1013
+ radial-gradient(1050px 560px at -10% -20%, hsl(246 92% 66% / 0.3), transparent 60%),
1014
+ radial-gradient(920px 520px at 112% 2%, hsl(201 92% 63% / 0.22), transparent 58%),
1015
+ linear-gradient(160deg, hsl(232 29% 12%) 0%, hsl(231 24% 12%) 50%, hsl(228 22% 10%) 100%);
1016
+ --app-surface-tint: hsl(241 92% 70% / 0.1);
1017
+ }
1018
+
1019
+ .theme-nitro-mars {
1020
+ --background: 12 30% 10%;
1021
+ --card: 12 25% 12%;
1022
+ --popover: 12 25% 12%;
1023
+ --sidebar-background: 12 26% 11%;
1024
+ --primary: 14 74% 61%;
1025
+ --accent: 22 78% 62%;
1026
+ --ring: 14 74% 61%;
1027
+ --app-gradient:
1028
+ radial-gradient(1040px 560px at -10% -20%, hsl(12 78% 62% / 0.3), transparent 60%),
1029
+ radial-gradient(920px 520px at 112% 2%, hsl(22 78% 60% / 0.22), transparent 58%),
1030
+ linear-gradient(160deg, hsl(13 29% 11%) 0%, hsl(11 25% 11%) 52%, hsl(8 21% 9%) 100%);
1031
+ --app-surface-tint: hsl(14 74% 61% / 0.1);
1032
+ }
1033
+
1034
+ .theme-nitro-dusk {
1035
+ --background: 256 23% 11%;
1036
+ --card: 256 20% 13%;
1037
+ --popover: 256 20% 13%;
1038
+ --sidebar-background: 256 21% 12%;
1039
+ --primary: 263 53% 67%;
1040
+ --accent: 299 44% 64%;
1041
+ --ring: 263 53% 67%;
1042
+ --app-gradient:
1043
+ radial-gradient(1020px 560px at -10% -20%, hsl(262 60% 62% / 0.28), transparent 58%),
1044
+ radial-gradient(920px 520px at 112% 2%, hsl(298 48% 60% / 0.2), transparent 58%),
1045
+ linear-gradient(160deg, hsl(256 26% 12%) 0%, hsl(256 23% 12%) 50%, hsl(258 20% 10%) 100%);
1046
+ --app-surface-tint: hsl(263 53% 67% / 0.09);
1047
+ }
1048
+
1049
+ .theme-nitro-under-the-sea {
1050
+ --background: 205 33% 10%;
1051
+ --card: 205 28% 12%;
1052
+ --popover: 205 28% 12%;
1053
+ --sidebar-background: 205 28% 11%;
1054
+ --primary: 186 70% 58%;
1055
+ --accent: 197 74% 55%;
1056
+ --ring: 186 70% 58%;
1057
+ --app-gradient:
1058
+ radial-gradient(1040px 560px at -10% -20%, hsl(186 75% 58% / 0.3), transparent 58%),
1059
+ radial-gradient(920px 520px at 112% 2%, hsl(197 76% 55% / 0.22), transparent 58%),
1060
+ linear-gradient(160deg, hsl(204 30% 11%) 0%, hsl(205 26% 11%) 50%, hsl(206 22% 9%) 100%);
1061
+ --app-surface-tint: hsl(186 70% 58% / 0.1);
1062
+ }
1063
+
1064
+ .theme-nitro-retro-storm {
1065
+ --background: 216 20% 11%;
1066
+ --card: 216 18% 13%;
1067
+ --popover: 216 18% 13%;
1068
+ --sidebar-background: 216 18% 12%;
1069
+ --primary: 213 33% 66%;
1070
+ --accent: 214 26% 62%;
1071
+ --ring: 213 33% 66%;
1072
+ --app-gradient:
1073
+ radial-gradient(1040px 560px at -10% -20%, hsl(213 35% 64% / 0.26), transparent 58%),
1074
+ radial-gradient(920px 520px at 112% 2%, hsl(214 27% 62% / 0.2), transparent 58%),
1075
+ linear-gradient(160deg, hsl(216 24% 11%) 0%, hsl(215 20% 11%) 50%, hsl(214 18% 9%) 100%);
1076
+ --app-surface-tint: hsl(213 33% 66% / 0.08);
1077
+ }
1078
+
1079
+ .theme-nitro-neon-nights {
1080
+ --background: 233 43% 8%;
1081
+ --card: 233 38% 10%;
1082
+ --popover: 233 38% 10%;
1083
+ --sidebar-background: 233 38% 9%;
1084
+ --primary: 292 96% 66%;
1085
+ --accent: 190 94% 56%;
1086
+ --ring: 292 96% 66%;
1087
+ --app-gradient:
1088
+ radial-gradient(1040px 560px at -10% -20%, hsl(280 92% 62% / 0.28), transparent 58%),
1089
+ radial-gradient(920px 520px at 112% 2%, hsl(191 94% 56% / 0.24), transparent 58%),
1090
+ linear-gradient(160deg, hsl(233 36% 10%) 0%, hsl(229 32% 9%) 50%, hsl(227 28% 8%) 100%);
1091
+ --app-surface-tint: hsl(292 96% 66% / 0.1);
1092
+ }
1093
+
1094
+ .theme-nitro-strawberry-lemonade {
1095
+ --background: 334 31% 10%;
1096
+ --card: 334 27% 12%;
1097
+ --popover: 334 27% 12%;
1098
+ --sidebar-background: 334 27% 11%;
1099
+ --primary: 342 83% 67%;
1100
+ --accent: 46 89% 63%;
1101
+ --ring: 342 83% 67%;
1102
+ --app-gradient:
1103
+ radial-gradient(1040px 560px at -10% -20%, hsl(342 86% 64% / 0.3), transparent 58%),
1104
+ radial-gradient(920px 520px at 112% 2%, hsl(46 90% 62% / 0.24), transparent 58%),
1105
+ linear-gradient(160deg, hsl(334 30% 11%) 0%, hsl(333 26% 11%) 50%, hsl(331 22% 9%) 100%);
1106
+ --app-surface-tint: hsl(342 83% 67% / 0.1);
1107
+ }
1108
+
1109
+ .theme-nitro-aurora {
1110
+ --background: 174 25% 10%;
1111
+ --card: 174 22% 12%;
1112
+ --popover: 174 22% 12%;
1113
+ --sidebar-background: 174 22% 11%;
1114
+ --primary: 164 63% 57%;
1115
+ --accent: 145 62% 58%;
1116
+ --ring: 164 63% 57%;
1117
+ --app-gradient:
1118
+ radial-gradient(1040px 560px at -10% -20%, hsl(164 66% 56% / 0.28), transparent 58%),
1119
+ radial-gradient(920px 520px at 112% 2%, hsl(145 64% 56% / 0.22), transparent 58%),
1120
+ linear-gradient(160deg, hsl(176 28% 11%) 0%, hsl(172 24% 11%) 50%, hsl(169 20% 9%) 100%);
1121
+ --app-surface-tint: hsl(164 63% 57% / 0.09);
1122
+ }
1123
+
1124
+ .theme-nitro-sepia {
1125
+ --background: 27 24% 11%;
1126
+ --card: 27 21% 13%;
1127
+ --popover: 27 21% 13%;
1128
+ --sidebar-background: 27 21% 12%;
1129
+ --primary: 28 44% 62%;
1130
+ --accent: 36 39% 62%;
1131
+ --ring: 28 44% 62%;
1132
+ --app-gradient:
1133
+ radial-gradient(1040px 560px at -10% -20%, hsl(28 45% 60% / 0.26), transparent 58%),
1134
+ radial-gradient(920px 520px at 112% 2%, hsl(36 40% 60% / 0.2), transparent 58%),
1135
+ linear-gradient(160deg, hsl(27 25% 12%) 0%, hsl(26 22% 12%) 50%, hsl(24 19% 10%) 100%);
1136
+ --app-surface-tint: hsl(28 44% 62% / 0.08);
1137
+ }
1138
+
1139
+ .theme-nitro-memory-lane {
1140
+ --background: 280 20% 11%;
1141
+ --card: 280 18% 13%;
1142
+ --popover: 280 18% 13%;
1143
+ --sidebar-background: 280 18% 12%;
1144
+ --primary: 277 54% 68%;
1145
+ --accent: 195 48% 64%;
1146
+ --ring: 277 54% 68%;
1147
+ --app-gradient:
1148
+ radial-gradient(1040px 560px at -10% -20%, hsl(284 58% 64% / 0.28), transparent 58%),
1149
+ radial-gradient(920px 520px at 112% 2%, hsl(198 50% 62% / 0.22), transparent 58%),
1150
+ linear-gradient(160deg, hsl(280 24% 12%) 0%, hsl(275 21% 12%) 50%, hsl(270 18% 10%) 100%);
1151
+ --app-surface-tint: hsl(277 54% 68% / 0.09);
1152
+ }
1153
+ }
1154
+
1155
+ /* gradient-forge theme end */