@codefast/ui 0.4.0-canary.4 → 0.4.0-canary.5

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 (117) hide show
  1. package/CHANGELOG.md +52 -0
  2. package/dist/components/accordion.mjs +1 -1
  3. package/dist/components/alert-dialog.mjs +2 -2
  4. package/dist/components/alert.mjs +1 -1
  5. package/dist/components/avatar.mjs +1 -1
  6. package/dist/components/calendar.mjs +5 -5
  7. package/dist/components/carousel.mjs +4 -4
  8. package/dist/components/checkbox-cards.mjs +6 -6
  9. package/dist/components/checkbox-group.mjs +6 -6
  10. package/dist/components/checkbox.mjs +6 -6
  11. package/dist/components/command.mjs +3 -3
  12. package/dist/components/context-menu.mjs +9 -9
  13. package/dist/components/dialog.mjs +2 -2
  14. package/dist/components/drawer.mjs +2 -2
  15. package/dist/components/dropdown-menu.mjs +9 -9
  16. package/dist/components/field.mjs +2 -2
  17. package/dist/components/input-otp.mjs +1 -1
  18. package/dist/components/item.mjs +1 -1
  19. package/dist/components/menubar.mjs +9 -9
  20. package/dist/components/native-select.mjs +2 -2
  21. package/dist/components/navigation-menu.mjs +4 -4
  22. package/dist/components/pagination.mjs +2 -2
  23. package/dist/components/radio-cards.mjs +1 -1
  24. package/dist/components/radio-group.mjs +1 -1
  25. package/dist/components/radio.mjs +1 -1
  26. package/dist/components/resizable.mjs +1 -1
  27. package/dist/components/select.mjs +4 -4
  28. package/dist/components/sheet.mjs +1 -1
  29. package/dist/components/sidebar.mjs +7 -7
  30. package/dist/components/switch.mjs +2 -2
  31. package/dist/components/table.mjs +2 -2
  32. package/dist/components/tabs.mjs +1 -1
  33. package/dist/components/toggle-group.mjs +1 -1
  34. package/dist/components/tooltip.mjs +1 -1
  35. package/dist/variants/alert.mjs +1 -1
  36. package/dist/variants/badge.mjs +1 -1
  37. package/dist/variants/button-group.mjs +2 -2
  38. package/dist/variants/button.mjs +4 -4
  39. package/dist/variants/input-group.mjs +3 -3
  40. package/dist/variants/input-number.mjs +3 -3
  41. package/dist/variants/scroll-area.mjs +1 -1
  42. package/dist/variants/sheet.mjs +2 -2
  43. package/dist/variants/sidebar.mjs +1 -1
  44. package/dist/variants/toggle.mjs +3 -3
  45. package/package.json +5 -5
  46. package/src/components/accordion.tsx +1 -1
  47. package/src/components/alert-dialog.tsx +2 -2
  48. package/src/components/alert.tsx +1 -1
  49. package/src/components/avatar.tsx +1 -1
  50. package/src/components/calendar.tsx +7 -7
  51. package/src/components/carousel.tsx +6 -6
  52. package/src/components/checkbox-cards.tsx +6 -5
  53. package/src/components/checkbox-group.tsx +5 -4
  54. package/src/components/checkbox.tsx +5 -4
  55. package/src/components/command.tsx +3 -3
  56. package/src/components/context-menu.tsx +9 -9
  57. package/src/components/dialog.tsx +2 -2
  58. package/src/components/drawer.tsx +2 -2
  59. package/src/components/dropdown-menu.tsx +9 -9
  60. package/src/components/field.tsx +2 -2
  61. package/src/components/input-otp.tsx +1 -1
  62. package/src/components/item.tsx +1 -1
  63. package/src/components/menubar.tsx +9 -9
  64. package/src/components/native-select.tsx +2 -2
  65. package/src/components/navigation-menu.tsx +4 -4
  66. package/src/components/pagination.tsx +2 -2
  67. package/src/components/radio-cards.tsx +1 -1
  68. package/src/components/radio-group.tsx +1 -1
  69. package/src/components/radio.tsx +1 -1
  70. package/src/components/resizable.tsx +1 -1
  71. package/src/components/select.tsx +4 -4
  72. package/src/components/sheet.tsx +1 -1
  73. package/src/components/sidebar.tsx +7 -7
  74. package/src/components/switch.tsx +2 -2
  75. package/src/components/table.tsx +2 -2
  76. package/src/components/tabs.tsx +2 -2
  77. package/src/components/toggle-group.tsx +1 -1
  78. package/src/components/tooltip.tsx +1 -1
  79. package/src/css/foundation/base.css +24 -0
  80. package/src/css/foundation/motion.css +48 -15
  81. package/src/css/foundation/source.css +7 -0
  82. package/src/css/foundation/tokens.css +36 -0
  83. package/src/css/foundation/variants.css +13 -5
  84. package/src/css/preset.css +8 -0
  85. package/src/css/style.css +8 -0
  86. package/src/css/themes/amber.css +29 -0
  87. package/src/css/themes/blue.css +29 -0
  88. package/src/css/themes/cyan.css +29 -0
  89. package/src/css/themes/emerald.css +29 -0
  90. package/src/css/themes/fuchsia.css +29 -0
  91. package/src/css/themes/gray.css +29 -0
  92. package/src/css/themes/green.css +29 -0
  93. package/src/css/themes/indigo.css +29 -0
  94. package/src/css/themes/lime.css +29 -0
  95. package/src/css/themes/neutral.css +29 -0
  96. package/src/css/themes/orange.css +29 -0
  97. package/src/css/themes/pink.css +29 -0
  98. package/src/css/themes/purple.css +29 -0
  99. package/src/css/themes/red.css +29 -0
  100. package/src/css/themes/rose.css +29 -0
  101. package/src/css/themes/sky.css +29 -0
  102. package/src/css/themes/slate.css +29 -0
  103. package/src/css/themes/stone.css +29 -0
  104. package/src/css/themes/teal.css +29 -0
  105. package/src/css/themes/violet.css +29 -0
  106. package/src/css/themes/yellow.css +29 -0
  107. package/src/css/themes/zinc.css +29 -0
  108. package/src/variants/alert.ts +1 -1
  109. package/src/variants/badge.ts +1 -1
  110. package/src/variants/button-group.ts +2 -2
  111. package/src/variants/button.ts +4 -4
  112. package/src/variants/input-group.ts +3 -3
  113. package/src/variants/input-number.ts +3 -3
  114. package/src/variants/scroll-area.ts +1 -1
  115. package/src/variants/sheet.ts +2 -2
  116. package/src/variants/sidebar.ts +1 -1
  117. package/src/variants/toggle.ts +3 -3
@@ -1,12 +1,28 @@
1
+ /* -------------------------------------------------------------------------
2
+ * Design tokens
3
+ *
4
+ * Bridges the raw theme variables (`--background`, `--primary`, …) defined by
5
+ * each theme into Tailwind's `@theme inline` namespace, minting the
6
+ * `bg-*`, `text-*`, `border-*`, and `rounded-*` utilities the components use.
7
+ * ------------------------------------------------------------------------- */
8
+
1
9
  :root {
2
10
  --radius: 0.375rem;
3
11
  }
4
12
 
5
13
  @theme inline {
14
+ /* ----------------------------------------------------------------------
15
+ * Typography
16
+ * ---------------------------------------------------------------------- */
17
+
6
18
  --font-sans: var(--font-sans);
7
19
  --font-heading: var(--font-heading);
8
20
  --font-mono: var(--font-mono);
9
21
 
22
+ /* ----------------------------------------------------------------------
23
+ * Surfaces & semantic colors
24
+ * ---------------------------------------------------------------------- */
25
+
10
26
  --color-background: var(--background);
11
27
  --color-foreground: var(--foreground);
12
28
 
@@ -30,10 +46,18 @@
30
46
  --color-card: var(--card);
31
47
  --color-card-foreground: var(--card-foreground);
32
48
 
49
+ /* ----------------------------------------------------------------------
50
+ * Form & focus
51
+ * ---------------------------------------------------------------------- */
52
+
33
53
  --color-border: var(--border);
34
54
  --color-input: var(--input);
35
55
  --color-ring: var(--ring);
36
56
 
57
+ /* ----------------------------------------------------------------------
58
+ * Sidebar
59
+ * ---------------------------------------------------------------------- */
60
+
37
61
  --color-sidebar: var(--sidebar);
38
62
  --color-sidebar-foreground: var(--sidebar-foreground);
39
63
  --color-sidebar-primary: var(--sidebar-primary);
@@ -43,12 +67,20 @@
43
67
  --color-sidebar-border: var(--sidebar-border);
44
68
  --color-sidebar-ring: var(--sidebar-ring);
45
69
 
70
+ /* ----------------------------------------------------------------------
71
+ * Charts
72
+ * ---------------------------------------------------------------------- */
73
+
46
74
  --color-chart-1: var(--chart-1);
47
75
  --color-chart-2: var(--chart-2);
48
76
  --color-chart-3: var(--chart-3);
49
77
  --color-chart-4: var(--chart-4);
50
78
  --color-chart-5: var(--chart-5);
51
79
 
80
+ /* ----------------------------------------------------------------------
81
+ * Code & selection
82
+ * ---------------------------------------------------------------------- */
83
+
52
84
  --color-surface: var(--surface);
53
85
  --color-surface-foreground: var(--surface-foreground);
54
86
 
@@ -60,6 +92,10 @@
60
92
  --color-selection: var(--selection);
61
93
  --color-selection-foreground: var(--selection-foreground);
62
94
 
95
+ /* ----------------------------------------------------------------------
96
+ * Radius scale — derived from --radius (6 = base unit)
97
+ * ---------------------------------------------------------------------- */
98
+
63
99
  --radius-xs: calc(var(--radius) * 2 / 6);
64
100
  --radius-sm: calc(var(--radius) * 4 / 6);
65
101
  --radius-md: var(--radius);
@@ -1,13 +1,14 @@
1
- /*
2
- * Custom Tailwind variants for @codefast/ui.
1
+ /* -------------------------------------------------------------------------
2
+ * Variants
3
+ *
4
+ * Custom Tailwind variants for @codefast/ui. Prefer these over verbose
5
+ * arbitrary variants (`data-[state=open]:`, `data-[side=left]:`).
3
6
  *
4
7
  * Shorthand usage (composes with group-, peer-, in-, has- modifiers):
5
8
  * data-open: → [data-state="open"] or [data-open]:not([data-open="false"])
6
9
  * group-data-disabled: → ancestor .group with matching data-disabled
7
10
  * in-data-side-left: → ancestor with [data-side="left"]
8
- *
9
- * Prefer these over verbose arbitrary variants (data-[state=open]:, data-[side=left]:).
10
- */
11
+ * ------------------------------------------------------------------------- */
11
12
 
12
13
  /* -------------------------------------------------------------------------
13
14
  * Theme
@@ -73,6 +74,13 @@
73
74
  }
74
75
  }
75
76
 
77
+ @custom-variant data-indeterminate {
78
+ &:where([data-state="indeterminate"]),
79
+ &:where([data-indeterminate]:not([data-indeterminate="false"])) {
80
+ @slot;
81
+ }
82
+ }
83
+
76
84
  /* data-selected only matches explicit true, not bare data-selected. */
77
85
  @custom-variant data-selected {
78
86
  &:where([data-state="selected"]),
@@ -1,3 +1,11 @@
1
+ /* -------------------------------------------------------------------------
2
+ * Foundation preset
3
+ *
4
+ * Aggregates the foundation layers in cascade order. Import this from an app
5
+ * after `tailwindcss` and a theme to pull in @codefast/ui's variants, tokens,
6
+ * motion, and base styles.
7
+ * ------------------------------------------------------------------------- */
8
+
1
9
  @import "./foundation/source.css";
2
10
  @import "./foundation/variants.css";
3
11
  @import "./foundation/tokens.css";
package/src/css/style.css CHANGED
@@ -1,3 +1,11 @@
1
+ /* -------------------------------------------------------------------------
2
+ * Entry stylesheet
3
+ *
4
+ * The default, batteries-included entry point: Tailwind core, the neutral
5
+ * theme, and the @codefast/ui foundation preset. Apps that want a different
6
+ * theme import `tailwindcss`, their chosen theme, and `./preset.css` directly.
7
+ * ------------------------------------------------------------------------- */
8
+
1
9
  @import "tailwindcss";
2
10
  @import "./themes/neutral.css";
3
11
  @import "./preset.css";
@@ -1,4 +1,16 @@
1
+ /* -------------------------------------------------------------------------
2
+ * Amber theme
3
+ *
4
+ * Color tokens for the amber palette across the light (`:root`),
5
+ * `.dark`, and system-preference variants. Trailing comments note the source
6
+ * palette swatch for each value.
7
+ * ------------------------------------------------------------------------- */
8
+
1
9
  :root {
10
+ /* ----------------------------------------------------------------------
11
+ * Surfaces & semantic colors
12
+ * ---------------------------------------------------------------------- */
13
+
2
14
  --background: oklch(1 0 0); /* --color-zinc-50 */
3
15
  --foreground: oklch(0.141 0.005 285.823); /* --color-zinc-950 */
4
16
 
@@ -22,10 +34,18 @@
22
34
  --card: oklch(1 0 0); /* --color-zinc-50 */
23
35
  --card-foreground: oklch(0.141 0.005 285.823); /* --color-zinc-950 */
24
36
 
37
+ /* ----------------------------------------------------------------------
38
+ * Form & focus
39
+ * ---------------------------------------------------------------------- */
40
+
25
41
  --border: oklch(0.92 0.004 286.32); /* --color-zinc-200 */
26
42
  --input: oklch(0.92 0.004 286.32); /* --color-zinc-200 */
27
43
  --ring: oklch(0.84 0.16 84); /* --color-amber-400 */
28
44
 
45
+ /* ----------------------------------------------------------------------
46
+ * Sidebar
47
+ * ---------------------------------------------------------------------- */
48
+
29
49
  --sidebar: oklch(0.985 0 0); /* --color-zinc-50 */
30
50
  --sidebar-foreground: oklch(0.141 0.005 285.823); /* --color-zinc-950 */
31
51
  --sidebar-primary: oklch(0.67 0.16 58); /* --color-amber-600 */
@@ -35,6 +55,10 @@
35
55
  --sidebar-border: oklch(0.92 0.004 286.32); /* --color-zinc-200 */
36
56
  --sidebar-ring: oklch(0.84 0.16 84); /* --color-amber-400 */
37
57
 
58
+ /* ----------------------------------------------------------------------
59
+ * Charts
60
+ * ---------------------------------------------------------------------- */
61
+
38
62
  --chart-1: oklch(0.88 0.15 92); /* --color-amber-300 */
39
63
  --chart-2: oklch(0.77 0.16 70); /* --color-amber-500 */
40
64
  --chart-3: oklch(0.67 0.16 58); /* --color-amber-600 */
@@ -43,6 +67,8 @@
43
67
  }
44
68
 
45
69
  .dark {
70
+ /* Dark variant — overrides the light tokens above. */
71
+
46
72
  --background: oklch(0.141 0.005 285.823); /* --color-zinc-950 */
47
73
  --foreground: oklch(0.985 0 0); /* --color-zinc-50 */
48
74
 
@@ -85,8 +111,11 @@
85
111
  --chart-4: oklch(0.56 0.15 49); /* --color-amber-700 */
86
112
  --chart-5: oklch(0.47 0.12 46); /* --color-amber-800 */
87
113
  }
114
+
88
115
  @media (prefers-color-scheme: dark) {
89
116
  :root:not(.light) {
117
+ /* System-preference dark — applied when no explicit .light is set. */
118
+
90
119
  --background: oklch(0.141 0.005 285.823); /* --color-zinc-950 */
91
120
  --foreground: oklch(0.985 0 0); /* --color-zinc-50 */
92
121
 
@@ -1,4 +1,16 @@
1
+ /* -------------------------------------------------------------------------
2
+ * Blue theme
3
+ *
4
+ * Color tokens for the blue palette across the light (`:root`),
5
+ * `.dark`, and system-preference variants. Trailing comments note the source
6
+ * palette swatch for each value.
7
+ * ------------------------------------------------------------------------- */
8
+
1
9
  :root {
10
+ /* ----------------------------------------------------------------------
11
+ * Surfaces & semantic colors
12
+ * ---------------------------------------------------------------------- */
13
+
2
14
  --background: oklch(1 0 0); /* --color-zinc-50 */
3
15
  --foreground: oklch(0.141 0.005 285.823); /* --color-zinc-950 */
4
16
 
@@ -22,10 +34,18 @@
22
34
  --card: oklch(1 0 0); /* --color-zinc-50 */
23
35
  --card-foreground: oklch(0.141 0.005 285.823); /* --color-zinc-950 */
24
36
 
37
+ /* ----------------------------------------------------------------------
38
+ * Form & focus
39
+ * ---------------------------------------------------------------------- */
40
+
25
41
  --border: oklch(0.92 0.004 286.32); /* --color-zinc-200 */
26
42
  --input: oklch(0.92 0.004 286.32); /* --color-zinc-200 */
27
43
  --ring: oklch(0.708 0 0); /* default ring */
28
44
 
45
+ /* ----------------------------------------------------------------------
46
+ * Sidebar
47
+ * ---------------------------------------------------------------------- */
48
+
29
49
  --sidebar: oklch(0.985 0 0); /* --color-zinc-50 */
30
50
  --sidebar-foreground: oklch(0.141 0.005 285.823); /* --color-zinc-950 */
31
51
  --sidebar-primary: oklch(0.546 0.245 262.881); /* --color-blue-600 */
@@ -35,6 +55,10 @@
35
55
  --sidebar-border: oklch(0.92 0.004 286.32); /* --color-zinc-200 */
36
56
  --sidebar-ring: oklch(0.708 0 0); /* default sidebar ring */
37
57
 
58
+ /* ----------------------------------------------------------------------
59
+ * Charts
60
+ * ---------------------------------------------------------------------- */
61
+
38
62
  --chart-1: oklch(0.809 0.105 251.813); /* --color-blue-300 */
39
63
  --chart-2: oklch(0.623 0.214 259.815); /* --color-blue-500 */
40
64
  --chart-3: oklch(0.546 0.245 262.881); /* --color-blue-600 */
@@ -43,6 +67,8 @@
43
67
  }
44
68
 
45
69
  .dark {
70
+ /* Dark variant — overrides the light tokens above. */
71
+
46
72
  --background: oklch(0.141 0.005 285.823); /* --color-zinc-950 */
47
73
  --foreground: oklch(0.985 0 0); /* --color-zinc-50 */
48
74
 
@@ -85,8 +111,11 @@
85
111
  --chart-4: oklch(0.488 0.243 264.376); /* --color-blue-700 */
86
112
  --chart-5: oklch(0.424 0.199 265.638); /* --color-blue-800 */
87
113
  }
114
+
88
115
  @media (prefers-color-scheme: dark) {
89
116
  :root:not(.light) {
117
+ /* System-preference dark — applied when no explicit .light is set. */
118
+
90
119
  --background: oklch(0.141 0.005 285.823); /* --color-zinc-950 */
91
120
  --foreground: oklch(0.985 0 0); /* --color-zinc-50 */
92
121
 
@@ -1,4 +1,16 @@
1
+ /* -------------------------------------------------------------------------
2
+ * Cyan theme
3
+ *
4
+ * Color tokens for the cyan palette across the light (`:root`),
5
+ * `.dark`, and system-preference variants. Trailing comments note the source
6
+ * palette swatch for each value.
7
+ * ------------------------------------------------------------------------- */
8
+
1
9
  :root {
10
+ /* ----------------------------------------------------------------------
11
+ * Surfaces & semantic colors
12
+ * ---------------------------------------------------------------------- */
13
+
2
14
  --background: oklch(1 0 0); /* --color-zinc-50 */
3
15
  --foreground: oklch(0.141 0.005 285.823); /* --color-zinc-950 */
4
16
 
@@ -22,10 +34,18 @@
22
34
  --card: oklch(1 0 0); /* --color-zinc-50 */
23
35
  --card-foreground: oklch(0.141 0.005 285.823); /* --color-zinc-950 */
24
36
 
37
+ /* ----------------------------------------------------------------------
38
+ * Form & focus
39
+ * ---------------------------------------------------------------------- */
40
+
25
41
  --border: oklch(0.92 0.004 286.32); /* --color-zinc-200 */
26
42
  --input: oklch(0.92 0.004 286.32); /* --color-zinc-200 */
27
43
  --ring: oklch(0.8 0.13 212); /* --color-cyan-400 */
28
44
 
45
+ /* ----------------------------------------------------------------------
46
+ * Sidebar
47
+ * ---------------------------------------------------------------------- */
48
+
29
49
  --sidebar: oklch(0.985 0 0); /* --color-zinc-50 */
30
50
  --sidebar-foreground: oklch(0.141 0.005 285.823); /* --color-zinc-950 */
31
51
  --sidebar-primary: oklch(0.61 0.11 222); /* --color-cyan-600 */
@@ -35,6 +55,10 @@
35
55
  --sidebar-border: oklch(0.92 0.004 286.32); /* --color-zinc-200 */
36
56
  --sidebar-ring: oklch(0.8 0.13 212); /* --color-cyan-400 */
37
57
 
58
+ /* ----------------------------------------------------------------------
59
+ * Charts
60
+ * ---------------------------------------------------------------------- */
61
+
38
62
  --chart-1: oklch(0.87 0.12 207); /* --color-cyan-300 */
39
63
  --chart-2: oklch(0.8 0.13 212); /* --color-cyan-400 */
40
64
  --chart-3: oklch(0.71 0.13 215); /* --color-cyan-500 */
@@ -43,6 +67,8 @@
43
67
  }
44
68
 
45
69
  .dark {
70
+ /* Dark variant — overrides the light tokens above. */
71
+
46
72
  --background: oklch(0.141 0.005 285.823); /* --color-zinc-950 */
47
73
  --foreground: oklch(0.985 0 0); /* --color-zinc-50 */
48
74
 
@@ -85,8 +111,11 @@
85
111
  --chart-4: oklch(0.61 0.11 222); /* --color-cyan-600 */
86
112
  --chart-5: oklch(0.52 0.09 223); /* --color-cyan-700 */
87
113
  }
114
+
88
115
  @media (prefers-color-scheme: dark) {
89
116
  :root:not(.light) {
117
+ /* System-preference dark — applied when no explicit .light is set. */
118
+
90
119
  --background: oklch(0.141 0.005 285.823); /* --color-zinc-950 */
91
120
  --foreground: oklch(0.985 0 0); /* --color-zinc-50 */
92
121
 
@@ -1,4 +1,16 @@
1
+ /* -------------------------------------------------------------------------
2
+ * Emerald theme
3
+ *
4
+ * Color tokens for the emerald palette across the light (`:root`),
5
+ * `.dark`, and system-preference variants. Trailing comments note the source
6
+ * palette swatch for each value.
7
+ * ------------------------------------------------------------------------- */
8
+
1
9
  :root {
10
+ /* ----------------------------------------------------------------------
11
+ * Surfaces & semantic colors
12
+ * ---------------------------------------------------------------------- */
13
+
2
14
  --background: oklch(1 0 0); /* --color-zinc-50 */
3
15
  --foreground: oklch(0.141 0.005 285.823); /* --color-zinc-950 */
4
16
 
@@ -22,10 +34,18 @@
22
34
  --card: oklch(1 0 0); /* --color-zinc-50 */
23
35
  --card-foreground: oklch(0.141 0.005 285.823); /* --color-zinc-950 */
24
36
 
37
+ /* ----------------------------------------------------------------------
38
+ * Form & focus
39
+ * ---------------------------------------------------------------------- */
40
+
25
41
  --border: oklch(0.92 0.004 286.32); /* --color-zinc-200 */
26
42
  --input: oklch(0.92 0.004 286.32); /* --color-zinc-200 */
27
43
  --ring: oklch(0.77 0.15 163); /* --color-emerald-400 */
28
44
 
45
+ /* ----------------------------------------------------------------------
46
+ * Sidebar
47
+ * ---------------------------------------------------------------------- */
48
+
29
49
  --sidebar: oklch(0.985 0 0); /* --color-zinc-50 */
30
50
  --sidebar-foreground: oklch(0.141 0.005 285.823); /* --color-zinc-950 */
31
51
  --sidebar-primary: oklch(0.6 0.13 163); /* --color-emerald-600 */
@@ -35,6 +55,10 @@
35
55
  --sidebar-border: oklch(0.92 0.004 286.32); /* --color-zinc-200 */
36
56
  --sidebar-ring: oklch(0.77 0.15 163); /* --color-emerald-400 */
37
57
 
58
+ /* ----------------------------------------------------------------------
59
+ * Charts
60
+ * ---------------------------------------------------------------------- */
61
+
38
62
  --chart-1: oklch(0.85 0.13 165); /* --color-emerald-300 */
39
63
  --chart-2: oklch(0.77 0.15 163); /* --color-emerald-400 */
40
64
  --chart-3: oklch(0.7 0.15 162); /* --color-emerald-500 */
@@ -43,6 +67,8 @@
43
67
  }
44
68
 
45
69
  .dark {
70
+ /* Dark variant — overrides the light tokens above. */
71
+
46
72
  --background: oklch(0.141 0.005 285.823); /* --color-zinc-950 */
47
73
  --foreground: oklch(0.985 0 0); /* --color-zinc-50 */
48
74
 
@@ -85,8 +111,11 @@
85
111
  --chart-4: oklch(0.6 0.13 163); /* --color-emerald-600 */
86
112
  --chart-5: oklch(0.51 0.1 166); /* --color-emerald-700 */
87
113
  }
114
+
88
115
  @media (prefers-color-scheme: dark) {
89
116
  :root:not(.light) {
117
+ /* System-preference dark — applied when no explicit .light is set. */
118
+
90
119
  --background: oklch(0.141 0.005 285.823); /* --color-zinc-950 */
91
120
  --foreground: oklch(0.985 0 0); /* --color-zinc-50 */
92
121
 
@@ -1,4 +1,16 @@
1
+ /* -------------------------------------------------------------------------
2
+ * Fuchsia theme
3
+ *
4
+ * Color tokens for the fuchsia palette across the light (`:root`),
5
+ * `.dark`, and system-preference variants. Trailing comments note the source
6
+ * palette swatch for each value.
7
+ * ------------------------------------------------------------------------- */
8
+
1
9
  :root {
10
+ /* ----------------------------------------------------------------------
11
+ * Surfaces & semantic colors
12
+ * ---------------------------------------------------------------------- */
13
+
2
14
  --background: oklch(1 0 0); /* --color-zinc-50 */
3
15
  --foreground: oklch(0.141 0.005 285.823); /* --color-zinc-950 */
4
16
 
@@ -22,10 +34,18 @@
22
34
  --card: oklch(1 0 0); /* --color-zinc-50 */
23
35
  --card-foreground: oklch(0.141 0.005 285.823); /* --color-zinc-950 */
24
36
 
37
+ /* ----------------------------------------------------------------------
38
+ * Form & focus
39
+ * ---------------------------------------------------------------------- */
40
+
25
41
  --border: oklch(0.92 0.004 286.32); /* --color-zinc-200 */
26
42
  --input: oklch(0.92 0.004 286.32); /* --color-zinc-200 */
27
43
  --ring: oklch(0.75 0.21 322); /* --color-fuchsia-400 */
28
44
 
45
+ /* ----------------------------------------------------------------------
46
+ * Sidebar
47
+ * ---------------------------------------------------------------------- */
48
+
29
49
  --sidebar: oklch(0.985 0 0); /* --color-zinc-50 */
30
50
  --sidebar-foreground: oklch(0.141 0.005 285.823); /* --color-zinc-950 */
31
51
  --sidebar-primary: oklch(0.59 0.26 323); /* --color-fuchsia-600 */
@@ -35,6 +55,10 @@
35
55
  --sidebar-border: oklch(0.92 0.004 286.32); /* --color-zinc-200 */
36
56
  --sidebar-ring: oklch(0.75 0.21 322); /* --color-fuchsia-400 */
37
57
 
58
+ /* ----------------------------------------------------------------------
59
+ * Charts
60
+ * ---------------------------------------------------------------------- */
61
+
38
62
  --chart-1: oklch(0.83 0.13 321); /* --color-fuchsia-300 */
39
63
  --chart-2: oklch(0.75 0.21 322); /* --color-fuchsia-400 */
40
64
  --chart-3: oklch(0.67 0.26 322); /* --color-fuchsia-500 */
@@ -43,6 +67,8 @@
43
67
  }
44
68
 
45
69
  .dark {
70
+ /* Dark variant — overrides the light tokens above. */
71
+
46
72
  --background: oklch(0.141 0.005 285.823); /* --color-zinc-950 */
47
73
  --foreground: oklch(0.985 0 0); /* --color-zinc-50 */
48
74
 
@@ -85,8 +111,11 @@
85
111
  --chart-4: oklch(0.59 0.26 323); /* --color-fuchsia-600 */
86
112
  --chart-5: oklch(0.52 0.23 324); /* --color-fuchsia-700 */
87
113
  }
114
+
88
115
  @media (prefers-color-scheme: dark) {
89
116
  :root:not(.light) {
117
+ /* System-preference dark — applied when no explicit .light is set. */
118
+
90
119
  --background: oklch(0.141 0.005 285.823); /* --color-zinc-950 */
91
120
  --foreground: oklch(0.985 0 0); /* --color-zinc-50 */
92
121
 
@@ -1,4 +1,16 @@
1
+ /* -------------------------------------------------------------------------
2
+ * Gray theme
3
+ *
4
+ * Color tokens for the gray palette across the light (`:root`),
5
+ * `.dark`, and system-preference variants. Trailing comments note the source
6
+ * palette swatch for each value.
7
+ * ------------------------------------------------------------------------- */
8
+
1
9
  :root {
10
+ /* ----------------------------------------------------------------------
11
+ * Surfaces & semantic colors
12
+ * ---------------------------------------------------------------------- */
13
+
2
14
  --background: oklch(0.98 0 248); /* --color-gray-50 */
3
15
  --foreground: oklch(0.13 0.03 262); /* --color-gray-950 */
4
16
 
@@ -22,10 +34,18 @@
22
34
  --card: oklch(0.98 0 248); /* --color-gray-50 */
23
35
  --card-foreground: oklch(0.13 0.03 262); /* --color-gray-950 */
24
36
 
37
+ /* ----------------------------------------------------------------------
38
+ * Form & focus
39
+ * ---------------------------------------------------------------------- */
40
+
25
41
  --border: oklch(0.93 0.01 265); /* --color-gray-200 */
26
42
  --input: oklch(0.93 0.01 265); /* --color-gray-200 */
27
43
  --ring: oklch(0.71 0.02 261); /* --color-gray-400 */
28
44
 
45
+ /* ----------------------------------------------------------------------
46
+ * Sidebar
47
+ * ---------------------------------------------------------------------- */
48
+
29
49
  --sidebar: oklch(0.98 0 248); /* --color-gray-50 */
30
50
  --sidebar-foreground: oklch(0.13 0.03 262); /* --color-gray-950 */
31
51
  --sidebar-primary: oklch(0.21 0.03 265); /* --color-gray-900 */
@@ -35,6 +55,10 @@
35
55
  --sidebar-border: oklch(0.93 0.01 265); /* --color-gray-200 */
36
56
  --sidebar-ring: oklch(0.71 0.02 261); /* --color-gray-400 */
37
57
 
58
+ /* ----------------------------------------------------------------------
59
+ * Charts
60
+ * ---------------------------------------------------------------------- */
61
+
38
62
  --chart-1: oklch(0.646 0.222 41.116); /* --color-orange-600 */
39
63
  --chart-2: oklch(0.6 0.118 184.704); /* --color-teal-600 */
40
64
  --chart-3: oklch(0.398 0.07 227.392); /* --color-cyan-900 */
@@ -43,6 +67,8 @@
43
67
  }
44
68
 
45
69
  .dark {
70
+ /* Dark variant — overrides the light tokens above. */
71
+
46
72
  --background: oklch(0.13 0.03 262); /* --color-gray-950 */
47
73
  --foreground: oklch(0.98 0 248); /* --color-gray-50 */
48
74
 
@@ -85,8 +111,11 @@
85
111
  --chart-4: oklch(0.627 0.265 303.9); /* --color-purple-500 */
86
112
  --chart-5: oklch(0.645 0.246 16.439); /* --color-rose-500 */
87
113
  }
114
+
88
115
  @media (prefers-color-scheme: dark) {
89
116
  :root:not(.light) {
117
+ /* System-preference dark — applied when no explicit .light is set. */
118
+
90
119
  --background: oklch(0.13 0.03 262); /* --color-gray-950 */
91
120
  --foreground: oklch(0.98 0 248); /* --color-gray-50 */
92
121
 
@@ -1,4 +1,16 @@
1
+ /* -------------------------------------------------------------------------
2
+ * Green theme
3
+ *
4
+ * Color tokens for the green palette across the light (`:root`),
5
+ * `.dark`, and system-preference variants. Trailing comments note the source
6
+ * palette swatch for each value.
7
+ * ------------------------------------------------------------------------- */
8
+
1
9
  :root {
10
+ /* ----------------------------------------------------------------------
11
+ * Surfaces & semantic colors
12
+ * ---------------------------------------------------------------------- */
13
+
2
14
  --background: oklch(1 0 0); /* --color-zinc-50 */
3
15
  --foreground: oklch(0.141 0.005 285.823); /* --color-zinc-950 */
4
16
 
@@ -22,10 +34,18 @@
22
34
  --card: oklch(1 0 0); /* --color-zinc-50 */
23
35
  --card-foreground: oklch(0.141 0.005 285.823); /* --color-zinc-950 */
24
36
 
37
+ /* ----------------------------------------------------------------------
38
+ * Form & focus
39
+ * ---------------------------------------------------------------------- */
40
+
25
41
  --border: oklch(0.92 0.004 286.32); /* --color-zinc-200 */
26
42
  --input: oklch(0.92 0.004 286.32); /* --color-zinc-200 */
27
43
  --ring: oklch(0.841 0.238 128.85); /* --color-lime-400 */
28
44
 
45
+ /* ----------------------------------------------------------------------
46
+ * Sidebar
47
+ * ---------------------------------------------------------------------- */
48
+
29
49
  --sidebar: oklch(0.985 0 0); /* --color-zinc-50 */
30
50
  --sidebar-foreground: oklch(0.141 0.005 285.823); /* --color-zinc-950 */
31
51
  --sidebar-primary: oklch(0.648 0.2 131.684); /* --color-lime-600 */
@@ -35,6 +55,10 @@
35
55
  --sidebar-border: oklch(0.92 0.004 286.32); /* --color-zinc-200 */
36
56
  --sidebar-ring: oklch(0.841 0.238 128.85); /* --color-lime-400 */
37
57
 
58
+ /* ----------------------------------------------------------------------
59
+ * Charts
60
+ * ---------------------------------------------------------------------- */
61
+
38
62
  --chart-1: oklch(0.871 0.15 154.449); /* --color-green-300 */
39
63
  --chart-2: oklch(0.723 0.219 149.579); /* --color-green-500 */
40
64
  --chart-3: oklch(0.627 0.194 149.214); /* --color-green-600 */
@@ -43,6 +67,8 @@
43
67
  }
44
68
 
45
69
  .dark {
70
+ /* Dark variant — overrides the light tokens above. */
71
+
46
72
  --background: oklch(0.141 0.005 285.823); /* --color-zinc-950 */
47
73
  --foreground: oklch(0.985 0 0); /* --color-zinc-50 */
48
74
 
@@ -85,8 +111,11 @@
85
111
  --chart-4: oklch(0.527 0.154 150.069); /* --color-green-700 */
86
112
  --chart-5: oklch(0.448 0.119 151.328); /* --color-green-800 */
87
113
  }
114
+
88
115
  @media (prefers-color-scheme: dark) {
89
116
  :root:not(.light) {
117
+ /* System-preference dark — applied when no explicit .light is set. */
118
+
90
119
  --background: oklch(0.141 0.005 285.823); /* --color-zinc-950 */
91
120
  --foreground: oklch(0.985 0 0); /* --color-zinc-50 */
92
121
 
@@ -1,4 +1,16 @@
1
+ /* -------------------------------------------------------------------------
2
+ * Indigo theme
3
+ *
4
+ * Color tokens for the indigo palette across the light (`:root`),
5
+ * `.dark`, and system-preference variants. Trailing comments note the source
6
+ * palette swatch for each value.
7
+ * ------------------------------------------------------------------------- */
8
+
1
9
  :root {
10
+ /* ----------------------------------------------------------------------
11
+ * Surfaces & semantic colors
12
+ * ---------------------------------------------------------------------- */
13
+
2
14
  --background: oklch(1 0 0); /* --color-zinc-50 */
3
15
  --foreground: oklch(0.141 0.005 285.823); /* --color-zinc-950 */
4
16
 
@@ -22,10 +34,18 @@
22
34
  --card: oklch(1 0 0); /* --color-zinc-50 */
23
35
  --card-foreground: oklch(0.141 0.005 285.823); /* --color-zinc-950 */
24
36
 
37
+ /* ----------------------------------------------------------------------
38
+ * Form & focus
39
+ * ---------------------------------------------------------------------- */
40
+
25
41
  --border: oklch(0.92 0.004 286.32); /* --color-zinc-200 */
26
42
  --input: oklch(0.92 0.004 286.32); /* --color-zinc-200 */
27
43
  --ring: oklch(0.68 0.16 277); /* --color-indigo-400 */
28
44
 
45
+ /* ----------------------------------------------------------------------
46
+ * Sidebar
47
+ * ---------------------------------------------------------------------- */
48
+
29
49
  --sidebar: oklch(0.985 0 0); /* --color-zinc-50 */
30
50
  --sidebar-foreground: oklch(0.141 0.005 285.823); /* --color-zinc-950 */
31
51
  --sidebar-primary: oklch(0.51 0.23 277); /* --color-indigo-600 */
@@ -35,6 +55,10 @@
35
55
  --sidebar-border: oklch(0.92 0.004 286.32); /* --color-zinc-200 */
36
56
  --sidebar-ring: oklch(0.68 0.16 277); /* --color-indigo-400 */
37
57
 
58
+ /* ----------------------------------------------------------------------
59
+ * Charts
60
+ * ---------------------------------------------------------------------- */
61
+
38
62
  --chart-1: oklch(0.79 0.1 275); /* --color-indigo-300 */
39
63
  --chart-2: oklch(0.68 0.16 277); /* --color-indigo-400 */
40
64
  --chart-3: oklch(0.59 0.2 277); /* --color-indigo-500 */
@@ -43,6 +67,8 @@
43
67
  }
44
68
 
45
69
  .dark {
70
+ /* Dark variant — overrides the light tokens above. */
71
+
46
72
  --background: oklch(0.141 0.005 285.823); /* --color-zinc-950 */
47
73
  --foreground: oklch(0.985 0 0); /* --color-zinc-50 */
48
74
 
@@ -85,8 +111,11 @@
85
111
  --chart-4: oklch(0.51 0.23 277); /* --color-indigo-600 */
86
112
  --chart-5: oklch(0.46 0.21 277); /* --color-indigo-700 */
87
113
  }
114
+
88
115
  @media (prefers-color-scheme: dark) {
89
116
  :root:not(.light) {
117
+ /* System-preference dark — applied when no explicit .light is set. */
118
+
90
119
  --background: oklch(0.141 0.005 285.823); /* --color-zinc-950 */
91
120
  --foreground: oklch(0.985 0 0); /* --color-zinc-50 */
92
121