@codefast/ui 0.3.16-canary.3 → 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 (281) hide show
  1. package/CHANGELOG.md +112 -0
  2. package/README.md +27 -16
  3. package/dist/components/accordion.d.mts +7 -22
  4. package/dist/components/accordion.mjs +26 -29
  5. package/dist/components/alert-dialog.d.mts +27 -26
  6. package/dist/components/alert-dialog.mjs +53 -45
  7. package/dist/components/alert.d.mts +12 -2
  8. package/dist/components/alert.mjs +15 -6
  9. package/dist/components/aspect-ratio.d.mts +2 -2
  10. package/dist/components/aspect-ratio.mjs +2 -3
  11. package/dist/components/avatar.d.mts +41 -5
  12. package/dist/components/avatar.mjs +40 -10
  13. package/dist/components/badge.mjs +4 -4
  14. package/dist/components/breadcrumb.d.mts +1 -0
  15. package/dist/components/breadcrumb.mjs +11 -10
  16. package/dist/components/button-group.d.mts +1 -1
  17. package/dist/components/button-group.mjs +6 -7
  18. package/dist/components/button.d.mts +0 -1
  19. package/dist/components/button.mjs +7 -7
  20. package/dist/components/calendar.d.mts +6 -2
  21. package/dist/components/calendar.mjs +39 -43
  22. package/dist/components/card.d.mts +4 -2
  23. package/dist/components/card.mjs +9 -9
  24. package/dist/components/carousel.d.mts +16 -4
  25. package/dist/components/carousel.mjs +25 -12
  26. package/dist/components/chart.d.mts +8 -3
  27. package/dist/components/chart.mjs +21 -15
  28. package/dist/components/checkbox-cards.mjs +6 -6
  29. package/dist/components/checkbox-group.mjs +6 -7
  30. package/dist/components/checkbox.d.mts +2 -2
  31. package/dist/components/checkbox.mjs +8 -9
  32. package/dist/components/collapsible.d.mts +4 -4
  33. package/dist/components/collapsible.mjs +4 -5
  34. package/dist/components/command.d.mts +11 -1
  35. package/dist/components/command.mjs +35 -32
  36. package/dist/components/context-menu.d.mts +22 -15
  37. package/dist/components/context-menu.mjs +44 -39
  38. package/dist/components/dialog.d.mts +19 -23
  39. package/dist/components/dialog.mjs +48 -47
  40. package/dist/components/direction.d.mts +24 -0
  41. package/dist/components/direction.mjs +18 -0
  42. package/dist/components/drawer.d.mts +2 -20
  43. package/dist/components/drawer.mjs +17 -25
  44. package/dist/components/dropdown-menu.d.mts +22 -15
  45. package/dist/components/dropdown-menu.mjs +41 -37
  46. package/dist/components/empty.mjs +5 -5
  47. package/dist/components/field.d.mts +1 -1
  48. package/dist/components/field.mjs +11 -12
  49. package/dist/components/form.d.mts +6 -7
  50. package/dist/components/form.mjs +6 -7
  51. package/dist/components/hover-card.d.mts +5 -5
  52. package/dist/components/hover-card.mjs +14 -12
  53. package/dist/components/input-group.d.mts +1 -1
  54. package/dist/components/input-group.mjs +12 -7
  55. package/dist/components/input-number.d.mts +3 -1
  56. package/dist/components/input-number.mjs +49 -27
  57. package/dist/components/input-otp.mjs +9 -7
  58. package/dist/components/input-password.mjs +1 -4
  59. package/dist/components/input-search.mjs +3 -5
  60. package/dist/components/input.mjs +1 -2
  61. package/dist/components/item.mjs +9 -9
  62. package/dist/components/kbd.mjs +1 -1
  63. package/dist/components/label.d.mts +2 -2
  64. package/dist/components/label.mjs +3 -4
  65. package/dist/components/menubar.d.mts +22 -16
  66. package/dist/components/menubar.mjs +54 -47
  67. package/dist/components/native-select.d.mts +5 -1
  68. package/dist/components/native-select.mjs +9 -6
  69. package/dist/components/navigation-menu.d.mts +30 -8
  70. package/dist/components/navigation-menu.mjs +33 -23
  71. package/dist/components/pagination.d.mts +6 -0
  72. package/dist/components/pagination.mjs +26 -11
  73. package/dist/components/popover.d.mts +40 -7
  74. package/dist/components/popover.mjs +46 -14
  75. package/dist/components/progress-circle.d.mts +1 -1
  76. package/dist/components/progress-circle.mjs +1 -2
  77. package/dist/components/progress.d.mts +2 -2
  78. package/dist/components/progress.mjs +5 -6
  79. package/dist/components/radio-cards.d.mts +3 -3
  80. package/dist/components/radio-cards.mjs +11 -11
  81. package/dist/components/radio-group.d.mts +3 -3
  82. package/dist/components/radio-group.mjs +9 -9
  83. package/dist/components/radio.mjs +2 -3
  84. package/dist/components/resizable.mjs +3 -8
  85. package/dist/components/scroll-area.d.mts +5 -5
  86. package/dist/components/scroll-area.mjs +13 -10
  87. package/dist/components/select.d.mts +14 -14
  88. package/dist/components/select.mjs +47 -47
  89. package/dist/components/separator.d.mts +2 -2
  90. package/dist/components/separator.mjs +3 -4
  91. package/dist/components/sheet.d.mts +13 -14
  92. package/dist/components/sheet.mjs +41 -39
  93. package/dist/components/sidebar.d.mts +2 -3
  94. package/dist/components/sidebar.mjs +46 -46
  95. package/dist/components/skeleton.mjs +1 -1
  96. package/dist/components/slider.d.mts +2 -2
  97. package/dist/components/slider.mjs +9 -11
  98. package/dist/components/sonner.mjs +11 -3
  99. package/dist/components/spinner.mjs +6 -7
  100. package/dist/components/switch.d.mts +5 -2
  101. package/dist/components/switch.mjs +7 -7
  102. package/dist/components/table.mjs +10 -10
  103. package/dist/components/tabs.d.mts +8 -5
  104. package/dist/components/tabs.mjs +18 -12
  105. package/dist/components/textarea.mjs +1 -1
  106. package/dist/components/toggle-group.d.mts +9 -6
  107. package/dist/components/toggle-group.mjs +19 -20
  108. package/dist/components/toggle.d.mts +2 -3
  109. package/dist/components/toggle.mjs +4 -6
  110. package/dist/components/tooltip.d.mts +7 -6
  111. package/dist/components/tooltip.mjs +19 -17
  112. package/dist/hooks/use-animated-value.mjs +0 -1
  113. package/dist/hooks/use-copy-to-clipboard.mjs +0 -1
  114. package/dist/hooks/use-is-mobile.mjs +0 -1
  115. package/dist/hooks/use-media-query.mjs +0 -1
  116. package/dist/hooks/use-mutation-observer.mjs +0 -1
  117. package/dist/hooks/use-pagination.mjs +0 -1
  118. package/dist/index.d.mts +15 -13
  119. package/dist/index.mjs +18 -16
  120. package/dist/primitives/checkbox-group.d.mts +9 -10
  121. package/dist/primitives/checkbox-group.mjs +14 -19
  122. package/dist/primitives/input-number.d.mts +3 -3
  123. package/dist/primitives/input-number.mjs +3 -5
  124. package/dist/primitives/input.d.mts +4 -4
  125. package/dist/primitives/input.mjs +2 -3
  126. package/dist/primitives/progress-circle.d.mts +3 -3
  127. package/dist/primitives/progress-circle.mjs +2 -3
  128. package/dist/variants/alert.d.mts +1 -1
  129. package/dist/variants/alert.mjs +3 -13
  130. package/dist/variants/badge.d.mts +6 -4
  131. package/dist/variants/badge.mjs +7 -34
  132. package/dist/variants/button-group.d.mts +2 -2
  133. package/dist/variants/button-group.mjs +3 -14
  134. package/dist/variants/button.d.mts +12 -10
  135. package/dist/variants/button.mjs +15 -57
  136. package/dist/variants/empty.d.mts +1 -1
  137. package/dist/variants/empty.mjs +2 -7
  138. package/dist/variants/field.d.mts +3 -3
  139. package/dist/variants/field.mjs +4 -22
  140. package/dist/variants/input-group.d.mts +9 -9
  141. package/dist/variants/input-group.mjs +11 -70
  142. package/dist/variants/input-number.d.mts +45 -0
  143. package/dist/variants/input-number.mjs +40 -0
  144. package/dist/variants/item.d.mts +5 -4
  145. package/dist/variants/item.mjs +9 -31
  146. package/dist/variants/navigation-menu.d.mts +1 -1
  147. package/dist/variants/navigation-menu.mjs +1 -5
  148. package/dist/variants/progress-circle.d.mts +1 -1
  149. package/dist/variants/progress-circle.mjs +1 -5
  150. package/dist/variants/scroll-area.d.mts +2 -2
  151. package/dist/variants/scroll-area.mjs +3 -8
  152. package/dist/variants/separator.mjs +6 -6
  153. package/dist/variants/sheet.d.mts +4 -4
  154. package/dist/variants/sheet.mjs +5 -38
  155. package/dist/variants/sidebar.d.mts +4 -4
  156. package/dist/variants/sidebar.mjs +6 -23
  157. package/dist/variants/tabs.d.mts +18 -0
  158. package/dist/variants/tabs.mjs +15 -0
  159. package/dist/variants/toggle.d.mts +4 -4
  160. package/dist/variants/toggle.mjs +9 -27
  161. package/package.json +27 -44
  162. package/src/components/accordion.tsx +26 -68
  163. package/src/components/alert-dialog.tsx +70 -86
  164. package/src/components/alert.tsx +27 -19
  165. package/src/components/aspect-ratio.tsx +1 -4
  166. package/src/components/avatar.tsx +99 -12
  167. package/src/components/badge.tsx +5 -8
  168. package/src/components/breadcrumb.tsx +18 -24
  169. package/src/components/button-group.tsx +10 -20
  170. package/src/components/button.tsx +8 -19
  171. package/src/components/calendar.tsx +77 -132
  172. package/src/components/card.tsx +16 -22
  173. package/src/components/carousel.tsx +40 -58
  174. package/src/components/chart.tsx +41 -92
  175. package/src/components/checkbox-cards.tsx +11 -30
  176. package/src/components/checkbox-group.tsx +6 -28
  177. package/src/components/checkbox.tsx +6 -26
  178. package/src/components/collapsible.tsx +1 -4
  179. package/src/components/command.tsx +52 -65
  180. package/src/components/context-menu.tsx +46 -125
  181. package/src/components/dialog.tsx +49 -101
  182. package/src/components/direction.tsx +32 -0
  183. package/src/components/drawer.tsx +17 -79
  184. package/src/components/dropdown-menu.tsx +39 -118
  185. package/src/components/empty.tsx +6 -20
  186. package/src/components/field.tsx +19 -52
  187. package/src/components/form.tsx +19 -61
  188. package/src/components/hover-card.tsx +4 -27
  189. package/src/components/input-group.tsx +13 -52
  190. package/src/components/input-number.tsx +55 -75
  191. package/src/components/input-otp.tsx +19 -38
  192. package/src/components/input-password.tsx +5 -29
  193. package/src/components/input-search.tsx +6 -23
  194. package/src/components/input.tsx +1 -17
  195. package/src/components/item.tsx +17 -31
  196. package/src/components/kbd.tsx +2 -14
  197. package/src/components/label.tsx +2 -10
  198. package/src/components/menubar.tsx +34 -125
  199. package/src/components/native-select.tsx +21 -30
  200. package/src/components/navigation-menu.tsx +34 -94
  201. package/src/components/pagination.tsx +28 -34
  202. package/src/components/popover.tsx +66 -35
  203. package/src/components/progress-circle.tsx +7 -25
  204. package/src/components/progress.tsx +3 -16
  205. package/src/components/radio-cards.tsx +8 -27
  206. package/src/components/radio-group.tsx +7 -27
  207. package/src/components/radio.tsx +3 -24
  208. package/src/components/resizable.tsx +5 -26
  209. package/src/components/scroll-area.tsx +12 -32
  210. package/src/components/select.tsx +37 -60
  211. package/src/components/separator.tsx +4 -18
  212. package/src/components/sheet.tsx +37 -74
  213. package/src/components/sidebar.tsx +47 -177
  214. package/src/components/skeleton.tsx +1 -3
  215. package/src/components/slider.tsx +7 -36
  216. package/src/components/sonner.tsx +16 -6
  217. package/src/components/spinner.tsx +6 -15
  218. package/src/components/switch.tsx +8 -30
  219. package/src/components/table.tsx +18 -35
  220. package/src/components/tabs.tsx +16 -34
  221. package/src/components/textarea.tsx +1 -15
  222. package/src/components/toggle-group.tsx +34 -38
  223. package/src/components/toggle.tsx +4 -13
  224. package/src/components/tooltip.tsx +11 -37
  225. package/src/css/foundation/base.css +74 -0
  226. package/src/css/foundation/motion.css +69 -0
  227. package/src/css/foundation/source.css +10 -0
  228. package/src/css/foundation/tokens.css +107 -0
  229. package/src/css/foundation/variants.css +121 -0
  230. package/src/css/preset.css +13 -214
  231. package/src/css/style.css +9 -1
  232. package/src/css/{amber.css → themes/amber.css} +29 -0
  233. package/src/css/{blue.css → themes/blue.css} +29 -0
  234. package/src/css/{cyan.css → themes/cyan.css} +29 -0
  235. package/src/css/{emerald.css → themes/emerald.css} +29 -0
  236. package/src/css/{fuchsia.css → themes/fuchsia.css} +29 -0
  237. package/src/css/{gray.css → themes/gray.css} +29 -0
  238. package/src/css/{green.css → themes/green.css} +29 -0
  239. package/src/css/{indigo.css → themes/indigo.css} +29 -0
  240. package/src/css/{lime.css → themes/lime.css} +29 -0
  241. package/src/css/{neutral.css → themes/neutral.css} +29 -0
  242. package/src/css/{orange.css → themes/orange.css} +29 -0
  243. package/src/css/{pink.css → themes/pink.css} +29 -0
  244. package/src/css/{purple.css → themes/purple.css} +29 -0
  245. package/src/css/{red.css → themes/red.css} +29 -0
  246. package/src/css/{rose.css → themes/rose.css} +29 -0
  247. package/src/css/{sky.css → themes/sky.css} +29 -0
  248. package/src/css/{slate.css → themes/slate.css} +29 -0
  249. package/src/css/{stone.css → themes/stone.css} +29 -0
  250. package/src/css/{teal.css → themes/teal.css} +29 -0
  251. package/src/css/{violet.css → themes/violet.css} +29 -0
  252. package/src/css/{yellow.css → themes/yellow.css} +29 -0
  253. package/src/css/{zinc.css → themes/zinc.css} +29 -0
  254. package/src/hooks/use-animated-value.ts +1 -7
  255. package/src/hooks/use-copy-to-clipboard.ts +1 -6
  256. package/src/hooks/use-is-mobile.ts +0 -2
  257. package/src/hooks/use-media-query.ts +0 -2
  258. package/src/hooks/use-mutation-observer.ts +0 -3
  259. package/src/hooks/use-pagination.ts +0 -2
  260. package/src/index.ts +39 -80
  261. package/src/primitives/checkbox-group.tsx +25 -39
  262. package/src/primitives/input-number.tsx +17 -63
  263. package/src/primitives/input.tsx +8 -24
  264. package/src/primitives/progress-circle.tsx +13 -43
  265. package/src/variants/alert.ts +3 -14
  266. package/src/variants/badge.ts +8 -35
  267. package/src/variants/button-group.ts +5 -18
  268. package/src/variants/button.ts +21 -58
  269. package/src/variants/empty.ts +2 -11
  270. package/src/variants/field.ts +6 -19
  271. package/src/variants/input-group.ts +12 -64
  272. package/src/variants/input-number.ts +65 -0
  273. package/src/variants/item.ts +10 -32
  274. package/src/variants/navigation-menu.ts +1 -8
  275. package/src/variants/progress-circle.ts +1 -2
  276. package/src/variants/scroll-area.ts +3 -9
  277. package/src/variants/separator.ts +6 -7
  278. package/src/variants/sheet.ts +6 -39
  279. package/src/variants/sidebar.ts +7 -27
  280. package/src/variants/tabs.ts +34 -0
  281. package/src/variants/toggle.ts +9 -28
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
- @import "./neutral.css";
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
 
@@ -1,4 +1,16 @@
1
+ /* -------------------------------------------------------------------------
2
+ * Lime theme
3
+ *
4
+ * Color tokens for the lime 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.85 0.21 129); /* --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.65 0.18 132); /* --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.85 0.21 129); /* --color-lime-400 */
37
57
 
58
+ /* ----------------------------------------------------------------------
59
+ * Charts
60
+ * ---------------------------------------------------------------------- */
61
+
38
62
  --chart-1: oklch(0.9 0.18 127); /* --color-lime-300 */
39
63
  --chart-2: oklch(0.85 0.21 129); /* --color-lime-400 */
40
64
  --chart-3: oklch(0.77 0.2 131); /* --color-lime-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.65 0.18 132); /* --color-lime-600 */
86
112
  --chart-5: oklch(0.53 0.14 132); /* --color-lime-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
+ * Neutral theme
3
+ *
4
+ * Color tokens for the neutral 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-neutral-50 */
3
15
  --foreground: oklch(0.145 0 0); /* --color-neutral-950 */
4
16
 
@@ -22,10 +34,18 @@
22
34
  --card: oklch(1 0 0); /* --color-neutral-50 */
23
35
  --card-foreground: oklch(0.145 0 0); /* --color-neutral-950 */
24
36
 
37
+ /* ----------------------------------------------------------------------
38
+ * Form & focus
39
+ * ---------------------------------------------------------------------- */
40
+
25
41
  --border: oklch(0.922 0 0); /* --color-neutral-200 */
26
42
  --input: oklch(0.922 0 0); /* --color-neutral-200 */
27
43
  --ring: oklch(0.708 0 0); /* --color-neutral-400 */
28
44
 
45
+ /* ----------------------------------------------------------------------
46
+ * Sidebar
47
+ * ---------------------------------------------------------------------- */
48
+
29
49
  --sidebar: oklch(0.985 0 0); /* --color-neutral-50 */
30
50
  --sidebar-foreground: oklch(0.145 0 0); /* --color-neutral-950 */
31
51
  --sidebar-primary: oklch(0.205 0 0); /* --color-neutral-900 */
@@ -35,6 +55,10 @@
35
55
  --sidebar-border: oklch(0.922 0 0); /* --color-neutral-200 */
36
56
  --sidebar-ring: oklch(0.708 0 0); /* --color-neutral-400 */
37
57
 
58
+ /* ----------------------------------------------------------------------
59
+ * Charts
60
+ * ---------------------------------------------------------------------- */
61
+
38
62
  --chart-1: var(--color-blue-300); /* --color-blue-300 */
39
63
  --chart-2: var(--color-blue-500); /* --color-blue-500 */
40
64
  --chart-3: var(--color-blue-600); /* --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.145 0 0); /* --color-neutral-950 */
47
73
  --foreground: oklch(0.985 0 0); /* --color-neutral-50 */
48
74
 
@@ -85,8 +111,11 @@
85
111
  --chart-4: var(--color-blue-700); /* --color-blue-700 */
86
112
  --chart-5: var(--color-blue-800); /* --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.145 0 0); /* --color-neutral-950 */
91
120
  --foreground: oklch(0.985 0 0); /* --color-neutral-50 */
92
121