@marianmeres/design-tokens 1.0.4 → 1.1.3

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 (72) hide show
  1. package/AGENTS.md +20 -6
  2. package/API.md +25 -4
  3. package/README.md +14 -1
  4. package/dist/colors.d.ts +52 -0
  5. package/dist/colors.js +52 -0
  6. package/dist/css/blue-orange.css +215 -0
  7. package/dist/css/cyan-red.css +215 -0
  8. package/dist/css/cyan-slate.css +215 -0
  9. package/dist/css/emerald-amber-forest.css +215 -0
  10. package/dist/css/emerald-pink.css +215 -0
  11. package/dist/css/fuchsia-emerald.css +215 -0
  12. package/dist/css/gray.css +215 -0
  13. package/dist/css/indigo-amber.css +215 -0
  14. package/dist/css/lime-fuchsia-neon.css +215 -0
  15. package/dist/css/mauve-lime-electric.css +215 -0
  16. package/dist/css/mauve-teal.css +215 -0
  17. package/dist/css/mauve.css +215 -0
  18. package/dist/css/mist-indigo-fjord.css +215 -0
  19. package/dist/css/mist-violet-aurora.css +215 -0
  20. package/dist/css/mist.css +215 -0
  21. package/dist/css/monokai-cyan.css +215 -0
  22. package/dist/css/monokai-green.css +215 -0
  23. package/dist/css/monokai-pink.css +215 -0
  24. package/dist/css/olive-amber-safari.css +215 -0
  25. package/dist/css/olive.css +215 -0
  26. package/dist/css/orange-pink-sunset.css +215 -0
  27. package/dist/css/pink-emerald.css +215 -0
  28. package/dist/css/pink-teal.css +215 -0
  29. package/dist/css/purple-yellow.css +215 -0
  30. package/dist/css/rainbow.css +215 -0
  31. package/dist/css/red-blue.css +215 -0
  32. package/dist/css/red-cyan.css +215 -0
  33. package/dist/css/red-sky-slate.css +215 -0
  34. package/dist/css/red-sky.css +215 -0
  35. package/dist/css/rose-teal.css +215 -0
  36. package/dist/css/sky-amber.css +215 -0
  37. package/dist/css/slate-cyan.css +215 -0
  38. package/dist/css/slate-teal-ocean.css +215 -0
  39. package/dist/css/stone-orange-earth.css +215 -0
  40. package/dist/css/stone.css +215 -0
  41. package/dist/css/taupe-olive-clay.css +215 -0
  42. package/dist/css/taupe-rose-blush.css +215 -0
  43. package/dist/css/taupe.css +215 -0
  44. package/dist/css/teal-rose.css +215 -0
  45. package/dist/css/violet-lime.css +215 -0
  46. package/dist/css/violet-rose-dusk.css +215 -0
  47. package/dist/css/zinc.css +215 -0
  48. package/dist/themes/mauve-lime-electric.d.ts +4 -0
  49. package/dist/themes/mauve-lime-electric.js +118 -0
  50. package/dist/themes/mauve-teal.d.ts +4 -0
  51. package/dist/themes/mauve-teal.js +118 -0
  52. package/dist/themes/mauve.d.ts +4 -0
  53. package/dist/themes/mauve.js +73 -0
  54. package/dist/themes/mist-indigo-fjord.d.ts +4 -0
  55. package/dist/themes/mist-indigo-fjord.js +118 -0
  56. package/dist/themes/mist-violet-aurora.d.ts +4 -0
  57. package/dist/themes/mist-violet-aurora.js +118 -0
  58. package/dist/themes/mist.d.ts +4 -0
  59. package/dist/themes/mist.js +73 -0
  60. package/dist/themes/mod.d.ts +23 -1
  61. package/dist/themes/mod.js +23 -1
  62. package/dist/themes/olive-amber-safari.d.ts +4 -0
  63. package/dist/themes/olive-amber-safari.js +118 -0
  64. package/dist/themes/olive.d.ts +4 -0
  65. package/dist/themes/olive.js +73 -0
  66. package/dist/themes/taupe-olive-clay.d.ts +4 -0
  67. package/dist/themes/taupe-olive-clay.js +118 -0
  68. package/dist/themes/taupe-rose-blush.d.ts +4 -0
  69. package/dist/themes/taupe-rose-blush.js +118 -0
  70. package/dist/themes/taupe.d.ts +4 -0
  71. package/dist/themes/taupe.js +73 -0
  72. package/package.json +3 -2
package/AGENTS.md CHANGED
@@ -4,6 +4,8 @@
4
4
  - **Stack**: Deno / TypeScript
5
5
  - **Run**: `deno task test` | **Watch**: `deno task test:watch`
6
6
  - **Build (npm)**: `deno task npm:build`
7
+ - **Build (CSS)**: `deno task css:build` (generates pre-built CSS files + updates deno.json exports)
8
+ - **Build (preview)**: `deno task preview:build`
7
9
  - **Publish**: `deno task publish` (JSR + npm)
8
10
  - **Format**: `deno fmt` (tabs, 90 chars, indent 4)
9
11
 
@@ -13,10 +15,11 @@ CSS custom property generator for design token systems. Takes a structured
13
15
  `ThemeSchema` (light + optional dark mode) and produces CSS `--custom-property`
14
16
  declarations with automatic hover/active state derivation via `color-mix()`.
15
17
 
16
- Three entry points:
18
+ Entry points:
17
19
  - `.` — core generation functions, types, color palette
18
20
  - `./reboot` — Bootstrap Reboot `--bs-*` variable bridge
19
- - `./themes` — 31 pre-built theme definitions
21
+ - `./themes` — 42 pre-built theme definitions
22
+ - `./css/*.css` — pre-built CSS files with `stuic-` prefix (npm only, not on JSR)
20
23
 
21
24
  ## Project Structure
22
25
 
@@ -26,13 +29,16 @@ Three entry points:
26
29
  types.ts — core type definitions (ThemeSchema, TokenSchema, etc.)
27
30
  generate.ts — token generation + CSS output (generateCssTokens, toCssString, generateThemeCss)
28
31
  utils.ts — hex color parsing (hexToRgb, hexToRgbTriplet)
29
- colors.ts — complete Tailwind v3 color palette (hex values)
32
+ colors.ts — Tailwind color palette (v3 + v4.2 additions: taupe, mauve, mist, olive)
30
33
  reboot-bridge.ts — Bootstrap Reboot --bs-* variable mapping
31
34
  /themes
32
35
  mod.ts — re-exports all theme definitions
33
36
  *.ts — individual theme files (default export: ThemeSchema)
37
+ /css — pre-built CSS files (generated by scripts/build-css.ts)
34
38
  /tests — test files (deno test --allow-read)
35
- /scripts — npm build script
39
+ /scripts
40
+ build-npm.ts — npm package build (also copies css/ into dist)
41
+ build-css.ts — generates css/*.css from all themes with "stuic-" prefix
36
42
  /theme-preview-builder — HTML preview tool
37
43
  ```
38
44
 
@@ -66,7 +72,7 @@ Three entry points:
66
72
  ### Constants
67
73
  | Export | Purpose |
68
74
  |--------|---------|
69
- | `colors` | Complete Tailwind v3 hex palette (`colors.blue[600]`) |
75
+ | `colors` | Tailwind hex palette including v4.2 additions (`colors.blue[600]`, `colors.mauve[500]`) |
70
76
 
71
77
  ## Critical Conventions
72
78
 
@@ -77,9 +83,17 @@ Three entry points:
77
83
  5. Theme files use `export default` with `ThemeSchema` type annotation
78
84
  6. Formatting: tabs, 90-char line width, 4-space indent width (`deno fmt`)
79
85
 
86
+ ## Adding a New Theme
87
+
88
+ 1. Create `src/themes/{name}.ts` with `export default` of `ThemeSchema`
89
+ 2. Add re-export in `src/themes/mod.ts` (alphabetical order)
90
+ 3. Run `deno task css:build` to regenerate CSS files
91
+ 4. Run `deno task preview:build` to rebuild the preview tool
92
+ 5. If the theme uses new color families, update `COLOR_FAMILIES` in `theme-preview-builder/index.html`
93
+
80
94
  ## Before Making Changes
81
95
 
82
96
  - [ ] Read existing patterns in similar files
83
- - [ ] Run `deno task test` — all 37 tests must pass
97
+ - [ ] Run `deno task test` — all tests must pass
84
98
  - [ ] Follow `deno fmt` conventions
85
99
  - [ ] Ensure new exports have JSDoc + explicit return types
package/API.md CHANGED
@@ -251,13 +251,20 @@ type RoleSingleKey = "foreground" | "border" | "input" | "ring";
251
251
 
252
252
  ### `colors`
253
253
 
254
- Complete Tailwind CSS v3 color palette as hex values. Contains `black`, `white`, and 22 color scales (slate, gray, zinc, neutral, stone, red, orange, amber, yellow, lime, green, emerald, teal, cyan, sky, blue, indigo, violet, purple, fuchsia, pink, rose) each with shades 50–950.
254
+ Tailwind CSS color palette as hex values. Contains `black`, `white`, and 26 color scales each with shades 50–950:
255
+
256
+ - **Neutrals**: slate, gray, zinc, neutral, stone
257
+ - **Earthy/muted (v4.2)**: taupe, mauve, mist, olive
258
+ - **Warm**: red, orange, amber, yellow
259
+ - **Cool**: lime, green, emerald, teal, cyan, sky, blue, indigo
260
+ - **Vibrant**: violet, purple, fuchsia, pink, rose
255
261
 
256
262
  ```typescript
257
263
  import { colors } from "@marianmeres/design-tokens";
258
264
 
259
265
  colors.blue[600] // → "#2563eb"
260
- colors.white // → "#ffffff"
266
+ colors.mauve[500] // → "#79697b"
267
+ colors.white // → "#ffffff"
261
268
  ```
262
269
 
263
270
  ---
@@ -266,6 +273,20 @@ colors.white // → "#ffffff"
266
273
 
267
274
  *Import from `@marianmeres/design-tokens/themes`*
268
275
 
269
- 31 pre-built `ThemeSchema` definitions, each with light + dark mode:
276
+ 42 pre-built `ThemeSchema` definitions, each with light + dark mode:
277
+
278
+ `blueOrange`, `cyanRed`, `cyanSlate`, `emeraldAmberForest`, `emeraldPink`, `fuchsiaEmerald`, `gray`, `indigoAmber`, `limeFuchsiaNeon`, `mauve`, `mauveLimeElectric`, `mauveTeal`, `mist`, `mistIndigoFjord`, `mistVioletAurora`, `monokaiCyan`, `monokaiGreen`, `monokaiPink`, `olive`, `oliveAmberSafari`, `orangePinkSunset`, `pinkEmerald`, `pinkTeal`, `purpleYellow`, `rainbow`, `redBlue`, `redCyan`, `redSky`, `redSkySlate`, `roseTeal`, `skyAmber`, `slateCyan`, `slateTealOcean`, `stone`, `taupe`, `taupeOliveClay`, `taupeRoseBlush`, `stoneOrangeEarth`, `tealRose`, `violetLime`, `violetRoseDusk`, `zinc`
279
+
280
+ ---
281
+
282
+ ## Pre-built CSS
283
+
284
+ *npm only — not available on JSR*
285
+
286
+ All bundled themes are also distributed as pre-built CSS files using the `stuic-` prefix. Import via `@marianmeres/design-tokens/css/{theme-name}.css`.
287
+
288
+ ```typescript
289
+ import "@marianmeres/design-tokens/css/mauve-teal.css";
290
+ ```
270
291
 
271
- `blueOrange`, `cyanRed`, `cyanSlate`, `emeraldAmberForest`, `emeraldPink`, `fuchsiaEmerald`, `gray`, `indigoAmber`, `limeFuchsiaNeon`, `monokaiCyan`, `monokaiGreen`, `monokaiPink`, `orangePinkSunset`, `pinkEmerald`, `pinkTeal`, `purpleYellow`, `rainbow`, `redBlue`, `redCyan`, `redSky`, `redSkySlate`, `roseTeal`, `skyAmber`, `slateCyan`, `slateTealOcean`, `stone`, `stoneOrangeEarth`, `tealRose`, `violetLime`, `violetRoseDusk`, `zinc`
292
+ Available files: `blue-orange.css`, `cyan-red.css`, `mauve-teal.css`, `mist-indigo-fjord.css`, `taupe-rose-blush.css`, etc. (one per bundled theme)
package/README.md CHANGED
@@ -53,9 +53,22 @@ const css = generateThemeCss(theme, "my-");
53
53
  // → :root { --my-color-primary: #2563eb; ... }
54
54
  ```
55
55
 
56
+ ## Pre-built CSS
57
+
58
+ All bundled themes are available as pre-built CSS files with the `stuic-` prefix (npm only):
59
+
60
+ ```html
61
+ <link rel="stylesheet" href="node_modules/@marianmeres/design-tokens/css/mauve-teal.css">
62
+ ```
63
+
64
+ Or via bundler import:
65
+ ```ts
66
+ import "@marianmeres/design-tokens/css/mauve-teal.css";
67
+ ```
68
+
56
69
  ## Creating a custom theme
57
70
 
58
- Use the bundled `colors` map (complete Tailwind v3 palette) to avoid looking up hex values:
71
+ Use the bundled `colors` map (Tailwind palette including v4.2 additions) to avoid looking up hex values:
59
72
 
60
73
  ```ts
61
74
  import { colors, generateThemeCss } from "@marianmeres/design-tokens";
package/dist/colors.d.ts CHANGED
@@ -64,6 +64,19 @@ export declare const colors: {
64
64
  readonly 900: "#171717";
65
65
  readonly 950: "#0a0a0a";
66
66
  };
67
+ readonly olive: {
68
+ readonly 50: "#fbfbf9";
69
+ readonly 100: "#f4f4f0";
70
+ readonly 200: "#e8e8e3";
71
+ readonly 300: "#d8d8d0";
72
+ readonly 400: "#abab9c";
73
+ readonly 500: "#7c7c67";
74
+ readonly 600: "#5b5b4b";
75
+ readonly 700: "#474739";
76
+ readonly 800: "#2b2b22";
77
+ readonly 900: "#1d1d16";
78
+ readonly 950: "#0c0c09";
79
+ };
67
80
  readonly stone: {
68
81
  readonly 50: "#fafaf9";
69
82
  readonly 100: "#f5f5f4";
@@ -77,6 +90,19 @@ export declare const colors: {
77
90
  readonly 900: "#1c1917";
78
91
  readonly 950: "#0c0a09";
79
92
  };
93
+ readonly taupe: {
94
+ readonly 50: "#fbfaf9";
95
+ readonly 100: "#f3f1f1";
96
+ readonly 200: "#e8e4e3";
97
+ readonly 300: "#d8d2d0";
98
+ readonly 400: "#aba09c";
99
+ readonly 500: "#7c6d67";
100
+ readonly 600: "#5b4f4b";
101
+ readonly 700: "#473c39";
102
+ readonly 800: "#2b2422";
103
+ readonly 900: "#1d1816";
104
+ readonly 950: "#0c0a09";
105
+ };
80
106
  readonly red: {
81
107
  readonly 50: "#fef2f2";
82
108
  readonly 100: "#fee2e2";
@@ -142,6 +168,32 @@ export declare const colors: {
142
168
  readonly 900: "#365314";
143
169
  readonly 950: "#1a2e05";
144
170
  };
171
+ readonly mauve: {
172
+ readonly 50: "#fafafa";
173
+ readonly 100: "#f3f1f3";
174
+ readonly 200: "#e7e4e7";
175
+ readonly 300: "#d7d0d7";
176
+ readonly 400: "#a89ea9";
177
+ readonly 500: "#79697b";
178
+ readonly 600: "#594c5b";
179
+ readonly 700: "#463947";
180
+ readonly 800: "#2a212c";
181
+ readonly 900: "#1d161e";
182
+ readonly 950: "#0c090c";
183
+ };
184
+ readonly mist: {
185
+ readonly 50: "#f9fbfb";
186
+ readonly 100: "#f1f3f3";
187
+ readonly 200: "#e3e7e8";
188
+ readonly 300: "#d0d6d8";
189
+ readonly 400: "#9ca8ab";
190
+ readonly 500: "#67787c";
191
+ readonly 600: "#4b585b";
192
+ readonly 700: "#394447";
193
+ readonly 800: "#22292b";
194
+ readonly 900: "#161b1d";
195
+ readonly 950: "#090b0c";
196
+ };
145
197
  readonly green: {
146
198
  readonly 50: "#f0fdf4";
147
199
  readonly 100: "#dcfce7";
package/dist/colors.js CHANGED
@@ -64,6 +64,19 @@ export const colors = {
64
64
  900: "#171717",
65
65
  950: "#0a0a0a",
66
66
  },
67
+ olive: {
68
+ 50: "#fbfbf9",
69
+ 100: "#f4f4f0",
70
+ 200: "#e8e8e3",
71
+ 300: "#d8d8d0",
72
+ 400: "#abab9c",
73
+ 500: "#7c7c67",
74
+ 600: "#5b5b4b",
75
+ 700: "#474739",
76
+ 800: "#2b2b22",
77
+ 900: "#1d1d16",
78
+ 950: "#0c0c09",
79
+ },
67
80
  stone: {
68
81
  50: "#fafaf9",
69
82
  100: "#f5f5f4",
@@ -77,6 +90,19 @@ export const colors = {
77
90
  900: "#1c1917",
78
91
  950: "#0c0a09",
79
92
  },
93
+ taupe: {
94
+ 50: "#fbfaf9",
95
+ 100: "#f3f1f1",
96
+ 200: "#e8e4e3",
97
+ 300: "#d8d2d0",
98
+ 400: "#aba09c",
99
+ 500: "#7c6d67",
100
+ 600: "#5b4f4b",
101
+ 700: "#473c39",
102
+ 800: "#2b2422",
103
+ 900: "#1d1816",
104
+ 950: "#0c0a09",
105
+ },
80
106
  red: {
81
107
  50: "#fef2f2",
82
108
  100: "#fee2e2",
@@ -142,6 +168,32 @@ export const colors = {
142
168
  900: "#365314",
143
169
  950: "#1a2e05",
144
170
  },
171
+ mauve: {
172
+ 50: "#fafafa",
173
+ 100: "#f3f1f3",
174
+ 200: "#e7e4e7",
175
+ 300: "#d7d0d7",
176
+ 400: "#a89ea9",
177
+ 500: "#79697b",
178
+ 600: "#594c5b",
179
+ 700: "#463947",
180
+ 800: "#2a212c",
181
+ 900: "#1d161e",
182
+ 950: "#0c090c",
183
+ },
184
+ mist: {
185
+ 50: "#f9fbfb",
186
+ 100: "#f1f3f3",
187
+ 200: "#e3e7e8",
188
+ 300: "#d0d6d8",
189
+ 400: "#9ca8ab",
190
+ 500: "#67787c",
191
+ 600: "#4b585b",
192
+ 700: "#394447",
193
+ 800: "#22292b",
194
+ 900: "#161b1d",
195
+ 950: "#090b0c",
196
+ },
145
197
  green: {
146
198
  50: "#f0fdf4",
147
199
  100: "#dcfce7",
@@ -0,0 +1,215 @@
1
+ :root {
2
+ --stuic-color-primary: #2563eb;
3
+
4
+ --stuic-color-primary-hover: color-mix(in oklch, var(--stuic-color-primary), black 10%);
5
+ --stuic-color-primary-active: color-mix(in oklch, var(--stuic-color-primary), black 20%);
6
+ --stuic-color-primary-foreground: #ffffff;
7
+ --stuic-color-primary-foreground-hover: #ffffff;
8
+ --stuic-color-primary-foreground-active: #ffffff;
9
+
10
+ --stuic-color-accent: #f97316;
11
+
12
+ --stuic-color-accent-hover: color-mix(in oklch, var(--stuic-color-accent), black 10%);
13
+ --stuic-color-accent-active: color-mix(in oklch, var(--stuic-color-accent), black 20%);
14
+ --stuic-color-accent-foreground: #ffffff;
15
+ --stuic-color-accent-foreground-hover: #ffffff;
16
+ --stuic-color-accent-foreground-active: #ffffff;
17
+
18
+ --stuic-color-destructive: #e11d48;
19
+
20
+ --stuic-color-destructive-hover: color-mix(in oklch, var(--stuic-color-destructive), black 10%);
21
+ --stuic-color-destructive-active: color-mix(in oklch, var(--stuic-color-destructive), black 20%);
22
+ --stuic-color-destructive-foreground: #ffffff;
23
+ --stuic-color-destructive-foreground-hover: #ffffff;
24
+ --stuic-color-destructive-foreground-active: #ffffff;
25
+
26
+ --stuic-color-warning: #f97316;
27
+
28
+ --stuic-color-warning-hover: color-mix(in oklch, var(--stuic-color-warning), black 10%);
29
+ --stuic-color-warning-active: color-mix(in oklch, var(--stuic-color-warning), black 20%);
30
+ --stuic-color-warning-foreground: #ffffff;
31
+ --stuic-color-warning-foreground-hover: #ffffff;
32
+ --stuic-color-warning-foreground-active: #ffffff;
33
+
34
+ --stuic-color-success: #0d9488;
35
+
36
+ --stuic-color-success-hover: color-mix(in oklch, var(--stuic-color-success), black 10%);
37
+ --stuic-color-success-active: color-mix(in oklch, var(--stuic-color-success), black 20%);
38
+ --stuic-color-success-foreground: #ffffff;
39
+ --stuic-color-success-foreground-hover: #ffffff;
40
+ --stuic-color-success-foreground-active: #ffffff;
41
+
42
+ --stuic-color-surface-primary: color-mix(in srgb, var(--stuic-color-primary) 15%, var(--stuic-color-background));
43
+ --stuic-color-surface-primary-foreground: color-mix(in srgb, var(--stuic-color-primary), black 10%);
44
+ --stuic-color-surface-primary-border: color-mix(in srgb, var(--stuic-color-primary) 30%, var(--stuic-color-background));
45
+ --stuic-color-surface-accent: color-mix(in srgb, var(--stuic-color-accent) 15%, var(--stuic-color-background));
46
+ --stuic-color-surface-accent-foreground: color-mix(in srgb, var(--stuic-color-accent), black 10%);
47
+ --stuic-color-surface-accent-border: color-mix(in srgb, var(--stuic-color-accent) 30%, var(--stuic-color-background));
48
+ --stuic-color-surface-destructive: color-mix(in srgb, var(--stuic-color-destructive) 15%, var(--stuic-color-background));
49
+ --stuic-color-surface-destructive-foreground: color-mix(in srgb, var(--stuic-color-destructive), black 10%);
50
+ --stuic-color-surface-destructive-border: color-mix(in srgb, var(--stuic-color-destructive) 30%, var(--stuic-color-background));
51
+ --stuic-color-surface-warning: color-mix(in srgb, var(--stuic-color-warning) 15%, var(--stuic-color-background));
52
+ --stuic-color-surface-warning-foreground: color-mix(in srgb, var(--stuic-color-warning), black 10%);
53
+ --stuic-color-surface-warning-border: color-mix(in srgb, var(--stuic-color-warning) 30%, var(--stuic-color-background));
54
+ --stuic-color-surface-success: color-mix(in srgb, var(--stuic-color-success) 15%, var(--stuic-color-background));
55
+ --stuic-color-surface-success-foreground: color-mix(in srgb, var(--stuic-color-success), black 10%);
56
+ --stuic-color-surface-success-border: color-mix(in srgb, var(--stuic-color-success) 30%, var(--stuic-color-background));
57
+ --stuic-color-surface-hover: color-mix(in oklch, var(--stuic-color-surface), black 10%);
58
+ --stuic-color-surface-active: color-mix(in oklch, var(--stuic-color-surface), black 20%);
59
+ --stuic-color-surface-foreground: #1c1917;
60
+ --stuic-color-surface-foreground-hover: #1c1917;
61
+ --stuic-color-surface-foreground-active: #1c1917;
62
+
63
+ --stuic-color-background: #ffffff;
64
+
65
+ --stuic-color-background-hover: #ffffff;
66
+ --stuic-color-background-active: #ffffff;
67
+ --stuic-color-background-foreground: #1c1917;
68
+ --stuic-color-background-foreground-hover: #1c1917;
69
+ --stuic-color-background-foreground-active: #1c1917;
70
+
71
+ --stuic-color-muted: #f5f5f4;
72
+
73
+ --stuic-color-muted-hover: color-mix(in oklch, var(--stuic-color-muted), black 10%);
74
+ --stuic-color-muted-active: color-mix(in oklch, var(--stuic-color-muted), black 20%);
75
+ --stuic-color-muted-foreground: #78716c;
76
+ --stuic-color-muted-foreground-hover: #78716c;
77
+ --stuic-color-muted-foreground-active: #78716c;
78
+
79
+ --stuic-color-surface: #e7e5e4;
80
+
81
+ --stuic-color-surface-1: #d6d3d1;
82
+ --stuic-color-surface-1-hover: color-mix(in oklch, var(--stuic-color-surface-1), black 10%);
83
+ --stuic-color-surface-1-active: color-mix(in oklch, var(--stuic-color-surface-1), black 20%);
84
+ --stuic-color-surface-1-foreground: #1c1917;
85
+ --stuic-color-surface-1-foreground-hover: #1c1917;
86
+ --stuic-color-surface-1-foreground-active: #1c1917;
87
+
88
+ --stuic-color-foreground: #1c1917;
89
+
90
+ --stuic-color-foreground-hover: #1c1917;
91
+ --stuic-color-foreground-active: #1c1917;
92
+
93
+ --stuic-color-border: #d6d3d1;
94
+
95
+ --stuic-color-border-hover: color-mix(in oklch, var(--stuic-color-border), black 10%);
96
+ --stuic-color-border-active: color-mix(in oklch, var(--stuic-color-border), black 20%);
97
+
98
+ --stuic-color-input: #ffffff;
99
+
100
+ --stuic-color-input-hover: #fafaf9;
101
+ --stuic-color-input-active: color-mix(in oklch, var(--stuic-color-input), black 20%);
102
+
103
+ --stuic-color-ring: color-mix(in srgb, #2563eb 20%, transparent);
104
+
105
+ --stuic-color-ring-hover: color-mix(in srgb, #2563eb 20%, transparent);
106
+ --stuic-color-ring-active: color-mix(in srgb, #2563eb 20%, transparent);
107
+ }
108
+
109
+ :root.dark {
110
+ --stuic-color-primary: #3b82f6;
111
+
112
+ --stuic-color-primary-hover: color-mix(in oklch, var(--stuic-color-primary), white 10%);
113
+ --stuic-color-primary-active: color-mix(in oklch, var(--stuic-color-primary), white 20%);
114
+ --stuic-color-primary-foreground: #ffffff;
115
+ --stuic-color-primary-foreground-hover: #ffffff;
116
+ --stuic-color-primary-foreground-active: #ffffff;
117
+
118
+ --stuic-color-accent: #fb923c;
119
+
120
+ --stuic-color-accent-hover: color-mix(in oklch, var(--stuic-color-accent), white 10%);
121
+ --stuic-color-accent-active: color-mix(in oklch, var(--stuic-color-accent), white 20%);
122
+ --stuic-color-accent-foreground: #ffffff;
123
+ --stuic-color-accent-foreground-hover: #ffffff;
124
+ --stuic-color-accent-foreground-active: #ffffff;
125
+
126
+ --stuic-color-destructive: #f43f5e;
127
+
128
+ --stuic-color-destructive-hover: color-mix(in oklch, var(--stuic-color-destructive), white 10%);
129
+ --stuic-color-destructive-active: color-mix(in oklch, var(--stuic-color-destructive), white 20%);
130
+ --stuic-color-destructive-foreground: #ffffff;
131
+ --stuic-color-destructive-foreground-hover: #ffffff;
132
+ --stuic-color-destructive-foreground-active: #ffffff;
133
+
134
+ --stuic-color-warning: #fb923c;
135
+
136
+ --stuic-color-warning-hover: color-mix(in oklch, var(--stuic-color-warning), white 10%);
137
+ --stuic-color-warning-active: color-mix(in oklch, var(--stuic-color-warning), white 20%);
138
+ --stuic-color-warning-foreground: #ffffff;
139
+ --stuic-color-warning-foreground-hover: #ffffff;
140
+ --stuic-color-warning-foreground-active: #ffffff;
141
+
142
+ --stuic-color-success: #14b8a6;
143
+
144
+ --stuic-color-success-hover: color-mix(in oklch, var(--stuic-color-success), white 10%);
145
+ --stuic-color-success-active: color-mix(in oklch, var(--stuic-color-success), white 20%);
146
+ --stuic-color-success-foreground: #ffffff;
147
+ --stuic-color-success-foreground-hover: #ffffff;
148
+ --stuic-color-success-foreground-active: #ffffff;
149
+
150
+ --stuic-color-surface-primary: color-mix(in srgb, var(--stuic-color-primary) 15%, var(--stuic-color-background));
151
+ --stuic-color-surface-primary-foreground: color-mix(in srgb, var(--stuic-color-primary), white 10%);
152
+ --stuic-color-surface-primary-border: color-mix(in srgb, var(--stuic-color-primary) 30%, var(--stuic-color-background));
153
+ --stuic-color-surface-accent: color-mix(in srgb, var(--stuic-color-accent) 15%, var(--stuic-color-background));
154
+ --stuic-color-surface-accent-foreground: color-mix(in srgb, var(--stuic-color-accent), white 10%);
155
+ --stuic-color-surface-accent-border: color-mix(in srgb, var(--stuic-color-accent) 30%, var(--stuic-color-background));
156
+ --stuic-color-surface-destructive: color-mix(in srgb, var(--stuic-color-destructive) 15%, var(--stuic-color-background));
157
+ --stuic-color-surface-destructive-foreground: color-mix(in srgb, var(--stuic-color-destructive), white 10%);
158
+ --stuic-color-surface-destructive-border: color-mix(in srgb, var(--stuic-color-destructive) 30%, var(--stuic-color-background));
159
+ --stuic-color-surface-warning: color-mix(in srgb, var(--stuic-color-warning) 15%, var(--stuic-color-background));
160
+ --stuic-color-surface-warning-foreground: color-mix(in srgb, var(--stuic-color-warning), white 10%);
161
+ --stuic-color-surface-warning-border: color-mix(in srgb, var(--stuic-color-warning) 30%, var(--stuic-color-background));
162
+ --stuic-color-surface-success: color-mix(in srgb, var(--stuic-color-success) 15%, var(--stuic-color-background));
163
+ --stuic-color-surface-success-foreground: color-mix(in srgb, var(--stuic-color-success), white 10%);
164
+ --stuic-color-surface-success-border: color-mix(in srgb, var(--stuic-color-success) 30%, var(--stuic-color-background));
165
+ --stuic-color-surface-hover: color-mix(in oklch, var(--stuic-color-surface), white 10%);
166
+ --stuic-color-surface-active: color-mix(in oklch, var(--stuic-color-surface), white 20%);
167
+ --stuic-color-surface-foreground: #d6d3d1;
168
+ --stuic-color-surface-foreground-hover: #d6d3d1;
169
+ --stuic-color-surface-foreground-active: #d6d3d1;
170
+
171
+ --stuic-color-background: #1c1917;
172
+
173
+ --stuic-color-background-hover: #1c1917;
174
+ --stuic-color-background-active: #1c1917;
175
+ --stuic-color-background-foreground: #fafaf9;
176
+ --stuic-color-background-foreground-hover: #fafaf9;
177
+ --stuic-color-background-foreground-active: #fafaf9;
178
+
179
+ --stuic-color-muted: #292524;
180
+
181
+ --stuic-color-muted-hover: color-mix(in oklch, var(--stuic-color-muted), white 10%);
182
+ --stuic-color-muted-active: color-mix(in oklch, var(--stuic-color-muted), white 20%);
183
+ --stuic-color-muted-foreground: #a8a29e;
184
+ --stuic-color-muted-foreground-hover: #a8a29e;
185
+ --stuic-color-muted-foreground-active: #a8a29e;
186
+
187
+ --stuic-color-surface: #44403c;
188
+
189
+ --stuic-color-surface-1: #57534e;
190
+ --stuic-color-surface-1-hover: color-mix(in oklch, var(--stuic-color-surface-1), white 10%);
191
+ --stuic-color-surface-1-active: color-mix(in oklch, var(--stuic-color-surface-1), white 20%);
192
+ --stuic-color-surface-1-foreground: #e7e5e4;
193
+ --stuic-color-surface-1-foreground-hover: #e7e5e4;
194
+ --stuic-color-surface-1-foreground-active: #e7e5e4;
195
+
196
+ --stuic-color-foreground: #fafaf9;
197
+
198
+ --stuic-color-foreground-hover: #fafaf9;
199
+ --stuic-color-foreground-active: #fafaf9;
200
+
201
+ --stuic-color-border: #44403c;
202
+
203
+ --stuic-color-border-hover: color-mix(in oklch, var(--stuic-color-border), white 10%);
204
+ --stuic-color-border-active: color-mix(in oklch, var(--stuic-color-border), white 20%);
205
+
206
+ --stuic-color-input: #1c1917;
207
+
208
+ --stuic-color-input-hover: #292524;
209
+ --stuic-color-input-active: color-mix(in oklch, var(--stuic-color-input), white 20%);
210
+
211
+ --stuic-color-ring: color-mix(in srgb, #60a5fa 25%, transparent);
212
+
213
+ --stuic-color-ring-hover: color-mix(in srgb, #60a5fa 25%, transparent);
214
+ --stuic-color-ring-active: color-mix(in srgb, #60a5fa 25%, transparent);
215
+ }