@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
@@ -1,4 +1,16 @@
1
+ /* -------------------------------------------------------------------------
2
+ * Orange theme
3
+ *
4
+ * Color tokens for the orange 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.183 55.934); /* --color-orange-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.646 0.222 41.116); /* --color-orange-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.183 55.934); /* --color-orange-400 */
37
57
 
58
+ /* ----------------------------------------------------------------------
59
+ * Charts
60
+ * ---------------------------------------------------------------------- */
61
+
38
62
  --chart-1: oklch(0.837 0.128 66.29); /* --color-orange-300 */
39
63
  --chart-2: oklch(0.705 0.213 47.604); /* --color-orange-500 */
40
64
  --chart-3: oklch(0.646 0.222 41.116); /* --color-orange-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.553 0.195 38.402); /* --color-orange-700 */
86
112
  --chart-5: oklch(0.47 0.157 37.304); /* --color-orange-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
+ * Pink theme
3
+ *
4
+ * Color tokens for the pink 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.73 0.18 350); /* --color-pink-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.22 1); /* --color-pink-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.73 0.18 350); /* --color-pink-400 */
37
57
 
58
+ /* ----------------------------------------------------------------------
59
+ * Charts
60
+ * ---------------------------------------------------------------------- */
61
+
38
62
  --chart-1: oklch(0.82 0.11 346); /* --color-pink-300 */
39
63
  --chart-2: oklch(0.73 0.18 350); /* --color-pink-400 */
40
64
  --chart-3: oklch(0.66 0.21 354); /* --color-pink-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.22 1); /* --color-pink-600 */
86
112
  --chart-5: oklch(0.52 0.2 4); /* --color-pink-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
+ * Purple theme
3
+ *
4
+ * Color tokens for the purple 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.72 0.18 306); /* --color-purple-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.56 0.25 302); /* --color-purple-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.72 0.18 306); /* --color-purple-400 */
37
57
 
58
+ /* ----------------------------------------------------------------------
59
+ * Charts
60
+ * ---------------------------------------------------------------------- */
61
+
38
62
  --chart-1: oklch(0.83 0.11 306); /* --color-purple-300 */
39
63
  --chart-2: oklch(0.72 0.18 306); /* --color-purple-400 */
40
64
  --chart-3: oklch(0.63 0.23 304); /* --color-purple-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.56 0.25 302); /* --color-purple-600 */
86
112
  --chart-5: oklch(0.5 0.24 302); /* --color-purple-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
+ * Red theme
3
+ *
4
+ * Color tokens for the red 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.704 0.191 22.216); /* --color-red-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.577 0.245 27.325); /* --color-red-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.704 0.191 22.216); /* --color-red-400 */
37
57
 
58
+ /* ----------------------------------------------------------------------
59
+ * Charts
60
+ * ---------------------------------------------------------------------- */
61
+
38
62
  --chart-1: oklch(0.808 0.114 19.571); /* --color-red-300 */
39
63
  --chart-2: oklch(0.637 0.237 25.331); /* --color-red-500 */
40
64
  --chart-3: oklch(0.577 0.245 27.325); /* --color-red-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.505 0.213 27.518); /* --color-red-700 */
86
112
  --chart-5: oklch(0.444 0.177 26.899); /* --color-red-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
+ * Rose theme
3
+ *
4
+ * Color tokens for the rose 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.712 0.194 13.428); /* --color-rose-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.586 0.253 17.585); /* --color-rose-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.712 0.194 13.428); /* --color-rose-400 */
37
57
 
58
+ /* ----------------------------------------------------------------------
59
+ * Charts
60
+ * ---------------------------------------------------------------------- */
61
+
38
62
  --chart-1: oklch(0.81 0.117 11.638); /* --color-rose-300 */
39
63
  --chart-2: oklch(0.645 0.246 16.439); /* --color-rose-500 */
40
64
  --chart-3: oklch(0.586 0.253 17.585); /* --color-rose-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.514 0.222 16.935); /* --color-rose-700 */
86
112
  --chart-5: oklch(0.455 0.188 13.697); /* --color-rose-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
+ * Sky theme
3
+ *
4
+ * Color tokens for the sky 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.14 233); /* --color-sky-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.14 242); /* --color-sky-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.14 233); /* --color-sky-400 */
37
57
 
58
+ /* ----------------------------------------------------------------------
59
+ * Charts
60
+ * ---------------------------------------------------------------------- */
61
+
38
62
  --chart-1: oklch(0.83 0.1 230); /* --color-sky-300 */
39
63
  --chart-2: oklch(0.68 0.15 237); /* --color-sky-500 */
40
64
  --chart-3: oklch(0.59 0.14 242); /* --color-sky-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.5 0.12 243); /* --color-sky-700 */
86
112
  --chart-5: oklch(0.44 0.1 241); /* --color-sky-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
+ * Slate theme
3
+ *
4
+ * Color tokens for the slate 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-slate-50 */
3
15
  --foreground: oklch(0.13 0.04 265); /* --color-slate-950 */
4
16
 
@@ -22,10 +34,18 @@
22
34
  --card: oklch(0.98 0 248); /* --color-slate-50 */
23
35
  --card-foreground: oklch(0.13 0.04 265); /* --color-slate-950 */
24
36
 
37
+ /* ----------------------------------------------------------------------
38
+ * Form & focus
39
+ * ---------------------------------------------------------------------- */
40
+
25
41
  --border: oklch(0.93 0.01 256); /* --color-slate-200 */
26
42
  --input: oklch(0.93 0.01 256); /* --color-slate-200 */
27
43
  --ring: oklch(0.71 0.04 257); /* --color-slate-400 */
28
44
 
45
+ /* ----------------------------------------------------------------------
46
+ * Sidebar
47
+ * ---------------------------------------------------------------------- */
48
+
29
49
  --sidebar: oklch(0.98 0 248); /* --color-slate-50 */
30
50
  --sidebar-foreground: oklch(0.13 0.04 265); /* --color-slate-950 */
31
51
  --sidebar-primary: oklch(0.21 0.04 266); /* --color-slate-900 */
@@ -35,6 +55,10 @@
35
55
  --sidebar-border: oklch(0.93 0.01 256); /* --color-slate-200 */
36
56
  --sidebar-ring: oklch(0.71 0.04 257); /* --color-slate-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.04 265); /* --color-slate-950 */
47
73
  --foreground: oklch(0.98 0 248); /* --color-slate-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.04 265); /* --color-slate-950 */
91
120
  --foreground: oklch(0.98 0 248); /* --color-slate-50 */
92
121
 
@@ -1,4 +1,16 @@
1
+ /* -------------------------------------------------------------------------
2
+ * Stone theme
3
+ *
4
+ * Color tokens for the stone 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-white */
3
15
  --foreground: oklch(0.147 0.004 49.25); /* --color-stone-950 */
4
16
 
@@ -22,10 +34,18 @@
22
34
  --card: oklch(1 0 0); /* --color-white */
23
35
  --card-foreground: oklch(0.147 0.004 49.25); /* --color-stone-950 */
24
36
 
37
+ /* ----------------------------------------------------------------------
38
+ * Form & focus
39
+ * ---------------------------------------------------------------------- */
40
+
25
41
  --border: oklch(0.923 0.003 48.717); /* --color-stone-200 */
26
42
  --input: oklch(0.923 0.003 48.717); /* --color-stone-200 */
27
43
  --ring: oklch(0.709 0.01 56.259); /* --color-stone-400 */
28
44
 
45
+ /* ----------------------------------------------------------------------
46
+ * Sidebar
47
+ * ---------------------------------------------------------------------- */
48
+
29
49
  --sidebar: oklch(0.985 0.001 106.423); /* --color-stone-50 */
30
50
  --sidebar-foreground: oklch(0.147 0.004 49.25); /* --color-stone-950 */
31
51
  --sidebar-primary: oklch(0.216 0.006 56.043); /* --color-stone-900 */
@@ -35,6 +55,10 @@
35
55
  --sidebar-border: oklch(0.923 0.003 48.717); /* --color-stone-200 */
36
56
  --sidebar-ring: oklch(0.709 0.01 56.259); /* --color-stone-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.147 0.004 49.25); /* --color-stone-950 */
47
73
  --foreground: oklch(0.985 0.001 106.423); /* --color-stone-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.147 0.004 49.25); /* --color-stone-950 */
91
120
  --foreground: oklch(0.985 0.001 106.423); /* --color-stone-50 */
92
121
 
@@ -1,4 +1,16 @@
1
+ /* -------------------------------------------------------------------------
2
+ * Teal theme
3
+ *
4
+ * Color tokens for the teal 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.78 0.13 182); /* --color-teal-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.1 185); /* --color-teal-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.78 0.13 182); /* --color-teal-400 */
37
57
 
58
+ /* ----------------------------------------------------------------------
59
+ * Charts
60
+ * ---------------------------------------------------------------------- */
61
+
38
62
  --chart-1: oklch(0.85 0.13 181); /* --color-teal-300 */
39
63
  --chart-2: oklch(0.78 0.13 182); /* --color-teal-400 */
40
64
  --chart-3: oklch(0.7 0.12 183); /* --color-teal-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.1 185); /* --color-teal-600 */
86
112
  --chart-5: oklch(0.51 0.09 186); /* --color-teal-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
+ * Violet theme
3
+ *
4
+ * Color tokens for the violet 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.702 0.183 293.541); /* --color-violet-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.541 0.281 293.009); /* --color-violet-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.702 0.183 293.541); /* --color-violet-400 */
37
57
 
58
+ /* ----------------------------------------------------------------------
59
+ * Charts
60
+ * ---------------------------------------------------------------------- */
61
+
38
62
  --chart-1: oklch(0.811 0.111 293.571); /* --color-violet-300 */
39
63
  --chart-2: oklch(0.606 0.25 292.717); /* --color-violet-500 */
40
64
  --chart-3: oklch(0.541 0.281 293.009); /* --color-violet-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.491 0.27 292.581); /* --color-violet-700 */
86
112
  --chart-5: oklch(0.432 0.232 292.759); /* --color-violet-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