@chromvoid/uikit 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (192) hide show
  1. package/LICENSE +19 -6
  2. package/README.md +1 -0
  3. package/dist/components/cv-accordion-item.d.ts +1 -1
  4. package/dist/components/cv-accordion.d.ts +1 -1
  5. package/dist/components/cv-accordion.js +2 -1
  6. package/dist/components/cv-alert-dialog.d.ts +1 -1
  7. package/dist/components/cv-alert-dialog.js +17 -2
  8. package/dist/components/cv-alert.d.ts +1 -1
  9. package/dist/components/cv-alert.js +2 -1
  10. package/dist/components/cv-badge.d.ts +1 -1
  11. package/dist/components/cv-badge.js +2 -1
  12. package/dist/components/cv-bottom-sheet.d.ts +127 -0
  13. package/dist/components/cv-bottom-sheet.js +513 -0
  14. package/dist/components/cv-breadcrumb-item.d.ts +1 -1
  15. package/dist/components/cv-breadcrumb-item.js +1 -1
  16. package/dist/components/cv-breadcrumb.d.ts +1 -1
  17. package/dist/components/cv-breadcrumb.js +2 -1
  18. package/dist/components/cv-button.d.ts +23 -1
  19. package/dist/components/cv-button.js +194 -37
  20. package/dist/components/cv-callout.d.ts +8 -1
  21. package/dist/components/cv-callout.js +18 -1
  22. package/dist/components/cv-card.d.ts +1 -1
  23. package/dist/components/cv-card.js +2 -2
  24. package/dist/components/cv-carousel-slide.d.ts +1 -1
  25. package/dist/components/cv-carousel.d.ts +1 -1
  26. package/dist/components/cv-carousel.js +2 -1
  27. package/dist/components/cv-checkbox.d.ts +1 -1
  28. package/dist/components/cv-combobox-group.d.ts +1 -1
  29. package/dist/components/cv-combobox-option.d.ts +1 -1
  30. package/dist/components/cv-combobox-option.js +2 -2
  31. package/dist/components/cv-combobox.d.ts +3 -1
  32. package/dist/components/cv-combobox.js +49 -8
  33. package/dist/components/cv-command-item.d.ts +1 -1
  34. package/dist/components/cv-command-item.js +2 -2
  35. package/dist/components/cv-command-palette.d.ts +1 -1
  36. package/dist/components/cv-command-palette.js +21 -1
  37. package/dist/components/cv-context-menu.d.ts +1 -1
  38. package/dist/components/cv-context-menu.js +2 -1
  39. package/dist/components/cv-copy-button.d.ts +37 -9
  40. package/dist/components/cv-copy-button.js +129 -41
  41. package/dist/components/cv-date-picker.d.ts +1 -1
  42. package/dist/components/cv-date-picker.js +20 -1
  43. package/dist/components/cv-dialog.d.ts +44 -2
  44. package/dist/components/cv-dialog.js +686 -74
  45. package/dist/components/cv-disclosure.d.ts +1 -1
  46. package/dist/components/cv-disclosure.js +2 -1
  47. package/dist/components/cv-drawer.d.ts +29 -1
  48. package/dist/components/cv-drawer.js +229 -4
  49. package/dist/components/cv-feed-article.d.ts +1 -1
  50. package/dist/components/cv-feed-article.js +2 -1
  51. package/dist/components/cv-feed.d.ts +1 -1
  52. package/dist/components/cv-feed.js +2 -1
  53. package/dist/components/cv-grid-cell.d.ts +1 -1
  54. package/dist/components/cv-grid-cell.js +3 -3
  55. package/dist/components/cv-grid-column.d.ts +1 -1
  56. package/dist/components/cv-grid-column.js +1 -1
  57. package/dist/components/cv-grid-row.d.ts +1 -1
  58. package/dist/components/cv-grid.d.ts +1 -1
  59. package/dist/components/cv-grid.js +2 -1
  60. package/dist/components/cv-guidance-anchor.d.ts +47 -0
  61. package/dist/components/cv-guidance-anchor.js +113 -0
  62. package/dist/components/cv-guidance-panel.d.ts +29 -0
  63. package/dist/components/cv-guidance-panel.js +245 -0
  64. package/dist/components/cv-icon.d.ts +2 -1
  65. package/dist/components/cv-icon.js +28 -3
  66. package/dist/components/cv-input.d.ts +7 -1
  67. package/dist/components/cv-input.js +33 -1
  68. package/dist/components/cv-landmark.d.ts +1 -1
  69. package/dist/components/cv-landmark.js +2 -1
  70. package/dist/components/cv-link.d.ts +1 -1
  71. package/dist/components/cv-link.js +2 -1
  72. package/dist/components/cv-listbox-group.d.ts +1 -1
  73. package/dist/components/cv-listbox.d.ts +1 -1
  74. package/dist/components/cv-listbox.js +2 -1
  75. package/dist/components/cv-menu-button.d.ts +24 -1
  76. package/dist/components/cv-menu-button.js +226 -18
  77. package/dist/components/cv-menu-group.d.ts +1 -1
  78. package/dist/components/cv-menu-item.d.ts +1 -1
  79. package/dist/components/cv-menu-item.js +6 -2
  80. package/dist/components/cv-menu.d.ts +1 -1
  81. package/dist/components/cv-menu.js +21 -1
  82. package/dist/components/cv-meter.d.ts +1 -1
  83. package/dist/components/cv-meter.js +6 -22
  84. package/dist/components/cv-number.d.ts +1 -1
  85. package/dist/components/cv-option.d.ts +1 -1
  86. package/dist/components/cv-option.js +3 -9
  87. package/dist/components/cv-popover-positioning.d.ts +22 -0
  88. package/dist/components/cv-popover-positioning.js +112 -0
  89. package/dist/components/cv-popover.d.ts +45 -8
  90. package/dist/components/cv-popover.js +395 -113
  91. package/dist/components/cv-progress-ring.d.ts +1 -1
  92. package/dist/components/cv-progress-ring.js +2 -1
  93. package/dist/components/cv-progress.d.ts +8 -1
  94. package/dist/components/cv-progress.js +41 -10
  95. package/dist/components/cv-radio-group.d.ts +1 -1
  96. package/dist/components/cv-radio.d.ts +1 -1
  97. package/dist/components/cv-radio.js +1 -1
  98. package/dist/components/cv-select-group.d.ts +1 -1
  99. package/dist/components/cv-select-option.d.ts +1 -1
  100. package/dist/components/cv-select-option.js +2 -2
  101. package/dist/components/cv-select.d.ts +1 -1
  102. package/dist/components/cv-select.js +28 -1
  103. package/dist/components/cv-sidebar-item.d.ts +1 -1
  104. package/dist/components/cv-sidebar.d.ts +1 -1
  105. package/dist/components/cv-sidebar.js +3 -2
  106. package/dist/components/cv-slider-multi-thumb.d.ts +1 -1
  107. package/dist/components/cv-slider-multi-thumb.js +2 -1
  108. package/dist/components/cv-slider.d.ts +17 -4
  109. package/dist/components/cv-slider.js +63 -21
  110. package/dist/components/cv-spinbutton.d.ts +1 -1
  111. package/dist/components/cv-spinner.d.ts +1 -1
  112. package/dist/components/cv-spinner.js +2 -1
  113. package/dist/components/cv-switch.d.ts +1 -1
  114. package/dist/components/cv-tab-panel.d.ts +1 -1
  115. package/dist/components/cv-tab.d.ts +1 -1
  116. package/dist/components/cv-table-cell.d.ts +1 -1
  117. package/dist/components/cv-table-cell.js +1 -1
  118. package/dist/components/cv-table-column.d.ts +1 -1
  119. package/dist/components/cv-table-column.js +1 -1
  120. package/dist/components/cv-table-row.d.ts +1 -1
  121. package/dist/components/cv-table-row.js +1 -4
  122. package/dist/components/cv-table.d.ts +1 -3
  123. package/dist/components/cv-table.js +4 -11
  124. package/dist/components/cv-tabs.d.ts +1 -1
  125. package/dist/components/cv-tabs.js +3 -2
  126. package/dist/components/cv-textarea.d.ts +11 -1
  127. package/dist/components/cv-textarea.js +33 -0
  128. package/dist/components/cv-toast-region.d.ts +1 -1
  129. package/dist/components/cv-toast-region.js +2 -1
  130. package/dist/components/cv-toast.d.ts +1 -1
  131. package/dist/components/cv-toast.js +20 -27
  132. package/dist/components/cv-toolbar-item.d.ts +1 -1
  133. package/dist/components/cv-toolbar-separator.d.ts +1 -1
  134. package/dist/components/cv-toolbar.d.ts +1 -1
  135. package/dist/components/cv-toolbar.js +2 -1
  136. package/dist/components/cv-tooltip.d.ts +1 -1
  137. package/dist/components/cv-tooltip.js +2 -1
  138. package/dist/components/cv-treegrid-cell.d.ts +1 -1
  139. package/dist/components/cv-treegrid-cell.js +1 -1
  140. package/dist/components/cv-treegrid-column.d.ts +1 -1
  141. package/dist/components/cv-treegrid-column.js +1 -1
  142. package/dist/components/cv-treegrid-row.d.ts +1 -1
  143. package/dist/components/cv-treegrid-row.js +1 -1
  144. package/dist/components/cv-treegrid.d.ts +1 -1
  145. package/dist/components/cv-treegrid.js +4 -3
  146. package/dist/components/cv-treeitem.d.ts +1 -1
  147. package/dist/components/cv-treeitem.js +2 -2
  148. package/dist/components/cv-treeview.d.ts +1 -1
  149. package/dist/components/cv-treeview.js +2 -1
  150. package/dist/components/cv-window-splitter.d.ts +1 -1
  151. package/dist/components/cv-window-splitter.js +2 -1
  152. package/dist/components/index.d.ts +7 -0
  153. package/dist/components/index.js +3 -0
  154. package/dist/dialog/create-dialog-controller.d.ts +12 -4
  155. package/dist/dialog/create-dialog-controller.js +84 -22
  156. package/dist/dialog/index.d.ts +1 -1
  157. package/dist/index.d.ts +1 -1
  158. package/dist/reatom-lit/ReatomLitElement.d.ts +6 -3
  159. package/dist/reatom-lit/ReatomLitElement.js +18 -8
  160. package/dist/reatom-lit/createAfterRenderScheduler.d.ts +10 -0
  161. package/dist/reatom-lit/createAfterRenderScheduler.js +33 -0
  162. package/dist/reatom-lit/index.d.ts +2 -0
  163. package/dist/reatom-lit/index.js +1 -0
  164. package/dist/reatom-lit/watch.d.ts +1 -1
  165. package/dist/reatom-lit/withReatomElement.js +16 -2
  166. package/dist/register.js +4 -1
  167. package/dist/styles/component-styles.js +4 -0
  168. package/dist/styles/uno-generated.d.ts +2 -0
  169. package/dist/styles/uno-generated.js +1 -0
  170. package/dist/styles/uno-utilities.d.ts +5 -0
  171. package/dist/styles/uno-utilities.js +7 -0
  172. package/dist/theme/cv-theme-provider.d.ts +1 -1
  173. package/dist/theme/cv-theme-provider.js +2 -2
  174. package/dist/theme/tokens.css +619 -162
  175. package/package.json +9 -5
  176. package/specs/components/bottom-sheet.md +93 -0
  177. package/specs/components/button.md +8 -0
  178. package/specs/components/callout.md +8 -0
  179. package/specs/components/copy-button.md +54 -17
  180. package/specs/components/dialog.md +72 -43
  181. package/specs/components/drawer.md +18 -13
  182. package/specs/components/guidance-anchor.md +64 -0
  183. package/specs/components/guidance-panel.md +92 -0
  184. package/specs/components/input.md +7 -0
  185. package/specs/components/menu.md +8 -0
  186. package/specs/components/option.md +9 -9
  187. package/specs/components/progress.md +11 -0
  188. package/specs/components/sidebar.md +12 -12
  189. package/specs/components/table.md +13 -13
  190. package/specs/components/theme.md +13 -13
  191. package/specs/components/treegrid.md +15 -15
  192. package/specs/components/treeview.md +10 -10
@@ -1,77 +1,377 @@
1
- /* === Dark tokens (default) === */
1
+ /* === ChromVoid canonical token source === */
2
2
  :root,
3
- cv-theme-provider {
3
+ [data-theme='dark'],
4
+ [theme='dark'],
5
+ cv-theme-provider,
6
+ cv-theme-provider[theme='dark'],
7
+ cv-theme-provider[mode='dark'] {
4
8
  color-scheme: dark;
5
- --cv-color-bg: #070b12;
6
- --cv-color-surface: #101722;
7
- --cv-color-surface-2: #181c23;
8
- --cv-color-surface-3: #262a32;
9
- --cv-color-surface-4: #31353d;
9
+
10
+ /* Palette primitives */
11
+ --cv-palette-bg: hwb(218 2.7% 92.9%);
12
+ --cv-palette-surface: hwb(217 6.3% 86.7%);
13
+ --cv-palette-surface-2: hwb(218 9.4% 86.3%);
14
+ --cv-palette-surface-3: hwb(220 14.9% 80.4%);
15
+ --cv-palette-surface-4: hwb(220 19.2% 76.1%);
16
+ --cv-palette-text: hwb(215 93.3% 0%);
17
+ --cv-palette-text-strong: hwb(214 97.3% 0%);
18
+ --cv-palette-border: hwb(214 17.3% 63.5%);
19
+ --cv-palette-primary: hwb(186 0% 0%);
20
+ --cv-palette-primary-dark: hwb(186 0% 20%);
21
+ --cv-palette-primary-darker: hwb(188 0% 39.2%);
22
+ --cv-palette-on-primary: hwb(187 0% 89.8%);
23
+ --cv-palette-accent: hwb(262 53.3% 0%);
24
+ --cv-palette-accent-hover: hwb(263 63.5% 0%);
25
+ --cv-palette-accent-contrast: hwb(279 0% 87.8%);
26
+ --cv-palette-success: hwb(159 0% 3.9%);
27
+ --cv-palette-success-dark: hwb(159 0% 23.1%);
28
+ --cv-palette-success-text: hwb(157 0% 89.8%);
29
+ --cv-palette-warning: hwb(39 12.5% 0%);
30
+ --cv-palette-warning-dark: hwb(39 10.2% 20%);
31
+ --cv-palette-warning-text: hwb(39 0% 89.8%);
32
+ --cv-palette-danger: hwb(3 18.8% 0%);
33
+ --cv-palette-danger-dark: hwb(3 14.9% 20%);
34
+ --cv-palette-danger-text: hwb(12 0% 89.8%);
35
+
36
+ /* Semantic colors */
37
+ --cv-color-bg: var(--cv-palette-bg);
38
+ --cv-color-surface: var(--cv-palette-surface);
39
+ --cv-color-surface-2: var(--cv-palette-surface-2);
40
+ --cv-color-surface-3: var(--cv-palette-surface-3);
41
+ --cv-color-surface-4: var(--cv-palette-surface-4);
10
42
  --cv-color-surface-elevated: var(--cv-color-surface-2);
11
43
  --cv-color-surface-secondary: var(--cv-color-surface-2);
12
44
  --cv-color-surface-tertiary: var(--cv-color-surface-3);
13
- --cv-color-surface-hover: color-mix(in oklch, var(--cv-color-primary) 8%, var(--cv-color-surface));
14
- --cv-color-text: #e8ecf6;
45
+ --cv-color-surface-hover: hwb(186 0% 0% / 0.07);
46
+ --cv-color-surface-glass-subtle: hwb(217 6.3% 86.7% / 0.32);
47
+ --cv-color-surface-glass: hwb(217 6.3% 86.7% / 0.6);
48
+ --cv-color-surface-glass-strong: hwb(217 6.3% 86.7% / 0.82);
49
+ --cv-color-surface-secondary-glass-soft: hwb(218 9.4% 86.3% / 0.4);
50
+ --cv-color-surface-secondary-glass: hwb(218 9.4% 86.3% / 0.78);
51
+ --cv-color-surface-secondary-glass-strong: hwb(218 9.4% 86.3% / 0.88);
52
+ --cv-color-surface-tertiary-glass: hwb(220 14.9% 80.4% / 0.6);
53
+ --cv-color-surface-tertiary-glass-strong: hwb(220 14.9% 80.4% / 0.76);
54
+ --cv-color-surface-highlight: hwb(215 93.3% 0% / 0.06);
55
+
56
+ --cv-color-text: var(--cv-palette-text);
15
57
  --cv-color-text-primary: var(--cv-color-text);
16
- --cv-color-text-muted: #9aa6bf;
58
+ --cv-color-text-muted: hwb(215 93.3% 0% / 0.72);
17
59
  --cv-color-text-secondary: var(--cv-color-text-muted);
18
- --cv-color-text-subtle: #7f8aa3;
19
- --cv-color-text-strong: #f5f7fc;
20
- --cv-color-text-strongest: #ffffff;
21
- --cv-color-border: #2a3245;
22
- --cv-color-border-muted: color-mix(in oklch, var(--cv-color-border) 55%, transparent);
23
- --cv-color-border-strong: color-mix(in oklch, var(--cv-color-border) 82%, white 18%);
24
- --cv-color-border-accent: color-mix(in oklch, var(--cv-color-primary) 35%, var(--cv-color-border));
25
- --cv-color-brand: var(--cv-color-primary);
26
- --cv-color-primary: #65d7ff;
27
- --cv-color-primary-dark: #36bae8;
28
- --cv-color-primary-darker: #1794c2;
29
- --cv-color-primary-subtle: color-mix(in oklch, var(--cv-color-primary) 12%, var(--cv-color-surface));
30
- --cv-color-primary-muted: color-mix(in oklch, var(--cv-color-primary) 22%, var(--cv-color-surface));
31
- --cv-color-on-primary: #03151c;
32
- --cv-color-accent: #b388ff;
33
- --cv-color-accent-light: color-mix(in oklch, var(--cv-color-accent) 70%, white);
34
- --cv-color-accent-dark: color-mix(in oklch, var(--cv-color-accent) 70%, black);
35
- --cv-color-accent-hover: color-mix(in oklch, var(--cv-color-accent) 85%, white);
36
- --cv-color-accent-contrast: #14001f;
60
+ --cv-color-text-subtle: hwb(215 93.3% 0% / 0.54);
61
+ --cv-color-text-strong: var(--cv-palette-text-strong);
62
+ --cv-color-text-strongest: hwb(0 100% 0%);
63
+
64
+ --cv-color-border: var(--cv-palette-border);
65
+ --cv-color-border-faint: hwb(214 17.3% 63.5% / 0.18);
66
+ --cv-color-border-muted: hwb(214 17.3% 63.5% / 0.52);
67
+ --cv-color-border-soft: hwb(214 17.3% 63.5% / 0.64);
68
+ --cv-color-border-strong: hwb(214 17.3% 63.5% / 0.86);
69
+ --cv-color-border-accent: hwb(186 0% 0% / 0.38);
70
+ --cv-color-border-glass: hwb(214 17.3% 63.5% / 0.4);
71
+
72
+ --cv-color-brand: var(--cv-palette-primary);
73
+ --cv-color-primary: var(--cv-palette-primary);
74
+ --cv-color-primary-dark: var(--cv-palette-primary-dark);
75
+ --cv-color-primary-darker: var(--cv-palette-primary-darker);
76
+ --cv-color-primary-subtle: hwb(186 0% 0% / 0.1);
77
+ --cv-color-primary-muted: hwb(186 0% 0% / 0.18);
78
+ --cv-color-primary-surface: hwb(186 0% 0% / 0.12);
79
+ --cv-color-primary-surface-strong: hwb(186 0% 0% / 0.2);
80
+ --cv-color-primary-border: hwb(186 0% 0% / 0.3);
81
+ --cv-color-primary-border-strong: hwb(186 0% 0% / 0.4);
82
+ --cv-color-primary-ring: hwb(186 0% 0% / 0.24);
83
+ --cv-color-on-primary: var(--cv-palette-on-primary);
84
+
85
+ --cv-color-accent: var(--cv-palette-accent);
86
+ --cv-color-accent-light: hwb(263 63.5% 0%);
87
+ --cv-color-accent-dark: hwb(262 36% 20%);
88
+ --cv-color-accent-hover: var(--cv-palette-accent-hover);
89
+ --cv-color-accent-contrast: var(--cv-palette-accent-contrast);
90
+ --cv-color-accent-surface: hwb(262 53.3% 0% / 0.12);
91
+ --cv-color-accent-surface-strong: hwb(262 53.3% 0% / 0.18);
92
+ --cv-color-accent-border: hwb(262 53.3% 0% / 0.32);
93
+ --cv-color-accent-border-strong: hwb(262 53.3% 0% / 0.4);
94
+ --cv-color-accent-ring: hwb(262 53.3% 0% / 0.24);
95
+
37
96
  --cv-color-cyan: var(--cv-color-primary);
38
- --cv-color-cyan-light: color-mix(in oklch, var(--cv-color-cyan) 70%, white);
39
- --cv-color-cyan-dark: color-mix(in oklch, var(--cv-color-cyan) 70%, black);
40
- --cv-color-success: #6ef7c8;
41
- --cv-color-success-dark: #32cca0;
42
- --cv-color-success-text: #e8fff5;
43
- --cv-color-warning: #ffd36e;
44
- --cv-color-warning-dark: #d3a74a;
45
- --cv-color-warning-text: #fff8e6;
46
- --cv-color-danger: #ff7d86;
47
- --cv-color-danger-dark: #e14f5b;
48
- --cv-color-danger-text: #fff1f2;
97
+ --cv-color-cyan-light: hwb(186 18% 0%);
98
+ --cv-color-cyan-dark: var(--cv-color-primary-dark);
99
+
100
+ --cv-color-success: var(--cv-palette-success);
101
+ --cv-color-success-dark: var(--cv-palette-success-dark);
102
+ --cv-color-success-text: var(--cv-palette-success-text);
103
+ --cv-color-success-surface: hwb(159 0% 3.9% / 0.15);
104
+ --cv-color-success-surface-strong: hwb(159 0% 3.9% / 0.24);
105
+ --cv-color-success-border: hwb(159 0% 3.9% / 0.3);
106
+ --cv-color-success-border-strong: hwb(159 0% 3.9% / 0.42);
107
+ --cv-color-success-ring: hwb(159 0% 3.9% / 0.1);
108
+
109
+ --cv-color-warning: var(--cv-palette-warning);
110
+ --cv-color-warning-dark: var(--cv-palette-warning-dark);
111
+ --cv-color-warning-text: var(--cv-palette-warning-text);
112
+ --cv-color-warning-surface: hwb(39 12.5% 0% / 0.15);
113
+ --cv-color-warning-surface-strong: hwb(39 12.5% 0% / 0.24);
114
+ --cv-color-warning-border: hwb(39 12.5% 0% / 0.3);
115
+ --cv-color-warning-border-strong: hwb(39 12.5% 0% / 0.42);
116
+ --cv-color-warning-ring: hwb(39 12.5% 0% / 0.1);
117
+
118
+ --cv-color-danger: var(--cv-palette-danger);
119
+ --cv-color-danger-dark: var(--cv-palette-danger-dark);
120
+ --cv-color-danger-text: var(--cv-palette-danger-text);
121
+ --cv-color-danger-surface: hwb(3 18.8% 0% / 0.15);
122
+ --cv-color-danger-surface-strong: hwb(3 18.8% 0% / 0.24);
123
+ --cv-color-danger-border: hwb(3 18.8% 0% / 0.3);
124
+ --cv-color-danger-border-strong: hwb(3 18.8% 0% / 0.42);
125
+ --cv-color-danger-ring: hwb(3 18.8% 0% / 0.1);
126
+
49
127
  --cv-color-info: var(--cv-color-primary);
50
128
  --cv-color-info-text: var(--cv-color-text);
129
+ --cv-color-info-surface: var(--cv-color-primary-surface);
130
+ --cv-color-info-surface-strong: var(--cv-color-primary-surface-strong);
131
+ --cv-color-info-border: var(--cv-color-primary-border);
132
+ --cv-color-info-border-strong: var(--cv-color-primary-border-strong);
133
+ --cv-color-info-ring: var(--cv-color-primary-ring);
134
+
51
135
  --cv-color-focus: var(--cv-color-primary);
52
136
  --cv-color-focus-ring: var(--cv-color-primary);
53
- --cv-color-hover: color-mix(in oklch, var(--cv-color-primary) 10%, var(--cv-color-surface));
54
- --cv-color-active: color-mix(in oklch, var(--cv-color-primary) 18%, transparent);
55
- --cv-color-selected: color-mix(in oklch, var(--cv-color-primary) 16%, var(--cv-color-surface));
56
- --cv-color-overlay: rgba(4, 7, 13, 0.72);
57
-
58
- --cv-alpha-white-4: color-mix(in oklch, white 4%, transparent);
59
- --cv-alpha-white-6: color-mix(in oklch, white 6%, transparent);
60
- --cv-alpha-white-8: color-mix(in oklch, white 8%, transparent);
61
- --cv-alpha-white-10: color-mix(in oklch, white 10%, transparent);
62
- --cv-alpha-white-15: color-mix(in oklch, white 15%, transparent);
63
- --cv-alpha-white-20: color-mix(in oklch, white 20%, transparent);
64
- --cv-alpha-white-30: color-mix(in oklch, white 30%, transparent);
65
- --cv-alpha-white-50: color-mix(in oklch, white 50%, transparent);
66
- --cv-alpha-white-70: color-mix(in oklch, white 70%, transparent);
67
-
68
- --cv-alpha-black-5: color-mix(in oklch, black 5%, transparent);
69
- --cv-alpha-black-10: color-mix(in oklch, black 10%, transparent);
70
- --cv-alpha-black-25: color-mix(in oklch, black 25%, transparent);
71
- --cv-alpha-black-35: color-mix(in oklch, black 35%, transparent);
72
- --cv-alpha-black-50: color-mix(in oklch, black 50%, transparent);
73
- --cv-alpha-black-65: color-mix(in oklch, black 65%, transparent);
74
- --cv-alpha-black-95: color-mix(in oklch, black 95%, transparent);
137
+ --cv-color-hover: hwb(186 0% 0% / 0.1);
138
+ --cv-color-active: hwb(186 0% 0% / 0.18);
139
+ --cv-color-selected: hwb(186 0% 0% / 0.16);
140
+ --cv-color-overlay: hwb(218 1.2% 94.5% / 0.72);
141
+ --cv-color-splash-bg: hwb(210 1.2% 97.3%);
142
+ --cv-color-splash-bg-start: hwb(214 2% 95.3%);
143
+ --cv-color-splash-bg-end: hwb(210 0.8% 98.4%);
144
+ --cv-color-splash-accent-glow: hwb(186 0% 0% / 0.025);
145
+ --cv-color-splash-grid-line: hwb(204 94.9% 3.1% / 0.018);
146
+ --cv-color-splash-grid-line-subtle: hwb(204 94.9% 3.1% / 0.014);
147
+
148
+ --cv-color-media-mini-surface: hwb(217 6.3% 86.7%);
149
+ --cv-color-media-mini-surface-start: hwb(215 7.8% 84.7%);
150
+ --cv-color-media-mini-surface-end: hwb(216 4.3% 89.8%);
151
+ --cv-color-media-mini-surface-deep: hwb(205 7.5% 83.1%);
152
+ --cv-color-media-mini-border: hwb(0 100% 0% / 0.06);
153
+ --cv-color-media-mini-border-hover: hwb(0 100% 0% / 0.11);
154
+ --cv-color-media-mini-text: hwb(210 95.7% 2%);
155
+ --cv-color-media-mini-text-secondary: hwb(213 60.4% 29%);
156
+ --cv-color-media-mini-text-muted: hwb(217 40% 49.8%);
157
+ --cv-color-media-mini-accent: hwb(185 15.3% 9%);
158
+ --cv-color-media-mini-accent-soft: hwb(185 15.3% 9% / 0.09);
159
+ --cv-color-media-mini-accent-muted: hwb(185 15.3% 9% / 0.12);
160
+ --cv-color-media-mini-accent-surface: hwb(185 15.3% 9% / 0.1);
161
+ --cv-color-media-mini-accent-surface-hover: hwb(185 15.3% 9% / 0.13);
162
+ --cv-color-media-mini-accent-border: hwb(185 15.3% 9% / 0.16);
163
+ --cv-color-media-mini-accent-border-strong: hwb(185 15.3% 9% / 0.38);
164
+ --cv-color-media-mini-accent-border-hover: hwb(185 15.3% 9% / 0.58);
165
+ --cv-color-media-mini-accent-line-end: hwb(185 15.3% 9% / 0.35);
166
+ --cv-color-media-mini-accent-glow-subtle: hwb(185 15.3% 9% / 0.06);
167
+ --cv-color-media-mini-accent-glow: hwb(185 15.3% 9% / 0.08);
168
+ --cv-color-media-mini-accent-glow-strong: hwb(185 15.3% 9% / 0.12);
169
+ --cv-color-media-mini-control-surface: hwb(0 100% 0% / 0.035);
170
+ --cv-color-media-mini-control-surface-hover: hwb(0 100% 0% / 0.055);
171
+ --cv-color-media-mini-track: hwb(0 100% 0% / 0.1);
172
+ --cv-color-media-mini-error-line-start: hwb(213 60.4% 29% / 0.58);
173
+ --cv-color-media-mini-error-line-end: hwb(217 40% 49.8% / 0.24);
174
+
175
+ /* Alpha tokens */
176
+ --cv-alpha-white-4: hwb(0 100% 0% / 0.04);
177
+ --cv-alpha-white-5: hwb(0 100% 0% / 0.05);
178
+ --cv-alpha-white-6: hwb(0 100% 0% / 0.06);
179
+ --cv-alpha-white-8: hwb(0 100% 0% / 0.08);
180
+ --cv-alpha-white-10: hwb(0 100% 0% / 0.1);
181
+ --cv-alpha-white-15: hwb(0 100% 0% / 0.15);
182
+ --cv-alpha-white-20: hwb(0 100% 0% / 0.2);
183
+ --cv-alpha-white-22: hwb(0 100% 0% / 0.22);
184
+ --cv-alpha-white-24: hwb(0 100% 0% / 0.24);
185
+ --cv-alpha-white-30: hwb(0 100% 0% / 0.3);
186
+ --cv-alpha-white-50: hwb(0 100% 0% / 0.5);
187
+ --cv-alpha-white-70: hwb(0 100% 0% / 0.7);
188
+
189
+ --cv-alpha-black-5: hwb(0 0% 100% / 0.05);
190
+ --cv-alpha-black-6: hwb(0 0% 100% / 0.06);
191
+ --cv-alpha-black-8: hwb(0 0% 100% / 0.08);
192
+ --cv-alpha-black-10: hwb(0 0% 100% / 0.1);
193
+ --cv-alpha-black-14: hwb(0 0% 100% / 0.14);
194
+ --cv-alpha-black-20: hwb(0 0% 100% / 0.2);
195
+ --cv-alpha-black-25: hwb(0 0% 100% / 0.25);
196
+ --cv-alpha-black-28: hwb(0 0% 100% / 0.28);
197
+ --cv-alpha-black-35: hwb(0 0% 100% / 0.35);
198
+ --cv-alpha-black-42: hwb(0 0% 100% / 0.42);
199
+ --cv-alpha-black-50: hwb(0 0% 100% / 0.5);
200
+ --cv-alpha-black-56: hwb(0 0% 100% / 0.56);
201
+ --cv-alpha-black-62: hwb(0 0% 100% / 0.62);
202
+ --cv-alpha-black-65: hwb(0 0% 100% / 0.65);
203
+ --cv-alpha-black-95: hwb(0 0% 100% / 0.95);
204
+
205
+ /* Named gradients */
206
+ --cv-gradient-primary: linear-gradient(135deg, var(--cv-color-primary) 0%, var(--cv-color-accent) 100%);
207
+ --cv-gradient-secondary: linear-gradient(
208
+ 135deg,
209
+ var(--cv-color-accent) 0%,
210
+ var(--cv-color-primary-dark) 100%
211
+ );
212
+ --cv-gradient-success: linear-gradient(135deg, var(--cv-color-success) 0%, var(--cv-color-primary) 100%);
213
+ --cv-gradient-brand: linear-gradient(135deg, var(--cv-color-cyan) 0%, var(--cv-color-accent) 100%);
214
+ --cv-gradient-subtle: linear-gradient(
215
+ 135deg,
216
+ var(--cv-color-primary-subtle) 0%,
217
+ var(--cv-color-accent-surface) 55%,
218
+ transparent 100%
219
+ );
220
+ --cv-gradient-divider-subtle: linear-gradient(
221
+ 90deg,
222
+ transparent 0%,
223
+ var(--cv-color-border-glass) 18%,
224
+ var(--cv-color-border-glass) 82%,
225
+ transparent 100%
226
+ );
227
+ --cv-gradient-scroll-edge-mask-block-end: linear-gradient(
228
+ to bottom,
229
+ var(--cv-color-text) 0%,
230
+ var(--cv-color-text) calc(100% - var(--cv-scroll-edge-mask-block-size, 88px)),
231
+ var(--cv-color-text-muted) calc(100% - var(--cv-scroll-edge-mask-soft-stop, 48px)),
232
+ var(--cv-color-text-subtle) calc(100% - var(--cv-scroll-edge-mask-subtle-stop, 22px)),
233
+ transparent 100%
234
+ );
235
+ --cv-gradient-scroll-edge-mask-block-start: linear-gradient(
236
+ to bottom,
237
+ transparent 0%,
238
+ var(--cv-color-text-subtle) var(--cv-scroll-edge-mask-subtle-stop, 22px),
239
+ var(--cv-color-text-muted) var(--cv-scroll-edge-mask-soft-stop, 48px),
240
+ var(--cv-color-text) var(--cv-scroll-edge-mask-block-size, 88px),
241
+ var(--cv-color-text) 100%
242
+ );
243
+ --cv-gradient-scroll-edge-mask-block-both: linear-gradient(
244
+ to bottom,
245
+ transparent 0%,
246
+ var(--cv-color-text-subtle) var(--cv-scroll-edge-mask-subtle-stop, 22px),
247
+ var(--cv-color-text-muted) var(--cv-scroll-edge-mask-soft-stop, 48px),
248
+ var(--cv-color-text) var(--cv-scroll-edge-mask-block-size, 88px),
249
+ var(--cv-color-text) calc(100% - var(--cv-scroll-edge-mask-block-size, 88px)),
250
+ var(--cv-color-text-muted) calc(100% - var(--cv-scroll-edge-mask-soft-stop, 48px)),
251
+ var(--cv-color-text-subtle) calc(100% - var(--cv-scroll-edge-mask-subtle-stop, 22px)),
252
+ transparent 100%
253
+ );
254
+ --cv-gradient-transparency-canvas:
255
+ linear-gradient(45deg, var(--cv-color-surface) 25%, transparent 25%),
256
+ linear-gradient(-45deg, var(--cv-color-surface) 25%, transparent 25%),
257
+ linear-gradient(45deg, transparent 75%, var(--cv-color-surface) 75%),
258
+ linear-gradient(-45deg, transparent 75%, var(--cv-color-surface) 75%);
259
+ --cv-gradient-surface: linear-gradient(180deg, var(--cv-color-surface) 0%, var(--cv-color-surface-2) 100%);
260
+ --cv-gradient-surface-deep: linear-gradient(180deg, var(--cv-color-surface-2) 0%, var(--cv-color-bg) 100%);
261
+ --cv-gradient-audio-waveform-bar: linear-gradient(
262
+ 180deg,
263
+ transparent 0%,
264
+ transparent 40%,
265
+ var(--cv-alpha-white-10) 49%,
266
+ var(--cv-alpha-white-20) 50%,
267
+ var(--cv-alpha-white-10) 51%,
268
+ transparent 60%,
269
+ transparent 100%
270
+ );
271
+ --cv-gradient-surface-primary: linear-gradient(
272
+ 180deg,
273
+ var(--cv-color-primary-surface-strong) 0%,
274
+ var(--cv-color-primary-surface) 100%
275
+ );
276
+ --cv-gradient-surface-danger: linear-gradient(
277
+ 180deg,
278
+ var(--cv-color-danger-surface-strong) 0%,
279
+ var(--cv-color-danger-surface) 100%
280
+ );
281
+ --cv-gradient-card-face:
282
+ radial-gradient(circle at 16% 18%, var(--cv-color-primary-surface) 0%, transparent 34%),
283
+ radial-gradient(circle at 82% 84%, var(--cv-color-primary-surface) 0%, transparent 30%),
284
+ linear-gradient(
285
+ 145deg,
286
+ var(--cv-color-surface-2) 0%,
287
+ var(--cv-color-bg) 50%,
288
+ var(--cv-color-surface) 100%
289
+ );
290
+ --cv-gradient-card-orb-primary: radial-gradient(
291
+ circle,
292
+ var(--cv-color-primary-surface) 0%,
293
+ transparent 70%
294
+ );
295
+ --cv-gradient-card-orb-secondary: radial-gradient(
296
+ circle,
297
+ var(--cv-color-primary-surface) 0%,
298
+ transparent 72%
299
+ );
300
+ --cv-gradient-card-chip: linear-gradient(
301
+ 135deg,
302
+ var(--cv-color-warning) 0%,
303
+ var(--cv-color-warning-dark) 100%
304
+ );
305
+ --cv-gradient-card-shimmer: linear-gradient(
306
+ 90deg,
307
+ var(--cv-alpha-white-10) 0%,
308
+ var(--cv-alpha-white-22) 50%,
309
+ var(--cv-alpha-white-10) 100%
310
+ );
311
+ --cv-gradient-card-chip-soft: linear-gradient(
312
+ 135deg,
313
+ var(--cv-color-warning) 0%,
314
+ var(--cv-color-warning-dark) 62%,
315
+ var(--cv-color-warning-dark) 100%
316
+ );
317
+ --cv-gradient-progress-primary: linear-gradient(
318
+ 90deg,
319
+ var(--cv-color-primary) 0%,
320
+ var(--cv-color-accent) 100%
321
+ );
322
+ --cv-gradient-progress-success: linear-gradient(
323
+ 90deg,
324
+ var(--cv-color-success) 0%,
325
+ var(--cv-color-primary) 100%
326
+ );
327
+ --cv-gradient-progress-warning: linear-gradient(
328
+ 90deg,
329
+ var(--cv-color-warning) 0%,
330
+ var(--cv-color-primary) 100%
331
+ );
332
+ --cv-gradient-progress-danger: linear-gradient(
333
+ 90deg,
334
+ var(--cv-color-danger) 0%,
335
+ var(--cv-color-warning) 100%
336
+ );
337
+ --cv-gradient-media-mini-surface:
338
+ linear-gradient(180deg, var(--cv-alpha-white-4), transparent 34%),
339
+ linear-gradient(
340
+ 180deg,
341
+ var(--cv-color-media-mini-surface-start) 0%,
342
+ var(--cv-color-media-mini-surface-end) 100%
343
+ );
344
+ --cv-gradient-media-mini-accent-line: linear-gradient(
345
+ 180deg,
346
+ var(--cv-color-media-mini-accent) 0%,
347
+ var(--cv-color-media-mini-accent-line-end) 100%
348
+ );
349
+ --cv-gradient-media-mini-error-line: linear-gradient(
350
+ 180deg,
351
+ var(--cv-color-media-mini-error-line-start) 0%,
352
+ var(--cv-color-media-mini-error-line-end) 100%
353
+ );
354
+ --cv-gradient-media-mini-fallback-tile: linear-gradient(
355
+ 180deg,
356
+ var(--cv-color-media-mini-accent-surface) 0%,
357
+ var(--cv-color-media-mini-surface-deep) 100%
358
+ );
359
+ --cv-gradient-splash-screen:
360
+ radial-gradient(circle at 50% 50%, var(--cv-color-splash-accent-glow), transparent 32%),
361
+ linear-gradient(
362
+ 180deg,
363
+ var(--cv-color-splash-bg-start) 0%,
364
+ var(--cv-color-splash-bg) 52%,
365
+ var(--cv-color-splash-bg-end) 100%
366
+ );
367
+ --cv-gradient-splash-grid:
368
+ linear-gradient(var(--cv-color-splash-grid-line) 1px, transparent 1px),
369
+ linear-gradient(90deg, var(--cv-color-splash-grid-line-subtle) 1px, transparent 1px);
370
+ --cv-gradient-splash-grid-mask: radial-gradient(
371
+ circle at 50% 50%,
372
+ var(--cv-color-text-strongest) 0%,
373
+ transparent 72%
374
+ );
75
375
 
76
376
  --cv-space-1: 4px;
77
377
  --cv-space-2: 8px;
@@ -121,11 +421,17 @@ cv-theme-provider {
121
421
  --cv-font-weight-extrabold: 800;
122
422
  --cv-font-weight-black: 900;
123
423
 
124
- --cv-shadow-sm: 0 2px 8px rgba(0, 0, 0, 0.24);
125
- --cv-shadow-md: 0 8px 28px rgba(0, 0, 0, 0.32);
126
- --cv-shadow-lg: 0 16px 48px rgba(0, 0, 0, 0.38);
127
- --cv-shadow-xl: 0 24px 64px rgba(0, 0, 0, 0.42);
128
- --cv-shadow-glow: 0 0 40px color-mix(in oklch, var(--cv-color-cyan) 15%, transparent);
424
+ --cv-shadow-sm: 0 2px 8px var(--cv-alpha-black-25);
425
+ --cv-shadow-md: 0 8px 28px var(--cv-alpha-black-35);
426
+ --cv-shadow-lg: 0 16px 48px var(--cv-alpha-black-35);
427
+ --cv-shadow-xl: 0 24px 64px var(--cv-alpha-black-50);
428
+ --cv-shadow-glow: 0 0 40px var(--cv-color-primary-ring);
429
+ --cv-shadow-glass: 0 12px 36px var(--cv-alpha-black-25);
430
+ --cv-shadow-media-mini:
431
+ 0 16px 40px var(--cv-alpha-black-42), 0 0 24px var(--cv-color-media-mini-accent-glow-subtle);
432
+ --cv-shadow-media-mini-menu: 0 16px 36px var(--cv-alpha-black-42);
433
+ --cv-shadow-media-mini-control:
434
+ inset 0 1px 0 var(--cv-color-media-mini-border), inset 0 -8px 22px hwb(185 15.3% 9% / 0.04);
129
435
  --cv-shadow-1: var(--cv-shadow-sm);
130
436
  --cv-shadow-2: var(--cv-shadow-md);
131
437
  --cv-shadow-3: var(--cv-shadow-lg);
@@ -151,115 +457,266 @@ cv-theme-provider {
151
457
  --cv-size-control-height: 48px;
152
458
  }
153
459
 
154
- /* === Light tokens — explicit mode === */
460
+ [data-theme='light'],
461
+ [theme='light'],
462
+ cv-theme-provider[theme='light'],
155
463
  cv-theme-provider[mode='light'] {
156
464
  color-scheme: light;
157
- --cv-color-bg: #f8f9fb;
158
- --cv-color-surface: #ffffff;
159
- --cv-color-surface-2: #f0f2f5;
160
- --cv-color-surface-3: #e6e9ee;
161
- --cv-color-surface-4: #dce0e7;
162
- --cv-color-surface-elevated: var(--cv-color-surface-2);
465
+
466
+ --cv-palette-bg: hwb(206 95.7% 1.6%);
467
+ --cv-palette-surface: hwb(0 100% 0%);
468
+ --cv-palette-surface-2: hwb(213 94.9% 1.6%);
469
+ --cv-palette-surface-3: hwb(214 91.4% 3.1%);
470
+ --cv-palette-surface-4: hwb(211 86.7% 5.1%);
471
+ --cv-palette-text: hwb(221 7.1% 86.7%);
472
+ --cv-palette-text-strong: hwb(218 3.5% 92.2%);
473
+ --cv-palette-border: hwb(216 9.8% 72.5% / 0.14);
474
+ --cv-palette-primary: hwb(186 0% 20%);
475
+ --cv-palette-primary-dark: hwb(186 0% 36.1%);
476
+ --cv-palette-primary-darker: hwb(187 0% 52.9%);
477
+ --cv-palette-on-primary: hwb(0 100% 0%);
478
+ --cv-palette-accent: hwb(262 36% 20%);
479
+ --cv-palette-accent-hover: hwb(261 41.2% 0%);
480
+ --cv-palette-accent-contrast: hwb(279 0% 87.8%);
481
+ --cv-palette-success: hwb(159 0% 23.1%);
482
+ --cv-palette-success-dark: hwb(159 0% 40%);
483
+ --cv-palette-warning: hwb(39 11.4% 9.8%);
484
+ --cv-palette-warning-dark: hwb(37 7.1% 27.8%);
485
+ --cv-palette-danger: hwb(3 16.9% 9.8%);
486
+ --cv-palette-danger-dark: hwb(3 12.9% 27.8%);
487
+
488
+ --cv-color-bg: var(--cv-palette-bg);
489
+ --cv-color-surface: var(--cv-palette-surface);
490
+ --cv-color-surface-2: var(--cv-palette-surface-2);
491
+ --cv-color-surface-3: var(--cv-palette-surface-3);
492
+ --cv-color-surface-4: var(--cv-palette-surface-4);
493
+ --cv-color-surface-elevated: var(--cv-color-surface);
163
494
  --cv-color-surface-secondary: var(--cv-color-surface-2);
164
495
  --cv-color-surface-tertiary: var(--cv-color-surface-3);
165
- --cv-color-surface-hover: color-mix(in oklch, var(--cv-color-primary) 6%, var(--cv-color-surface));
166
- --cv-color-text: #1a1f2e;
496
+ --cv-color-surface-hover: hwb(186 0% 20% / 0.07);
497
+ --cv-color-surface-glass-subtle: hwb(0 100% 0% / 0.54);
498
+ --cv-color-surface-glass: hwb(0 100% 0% / 0.72);
499
+ --cv-color-surface-glass-strong: hwb(0 100% 0% / 0.84);
500
+ --cv-color-surface-secondary-glass-soft: hwb(213 94.9% 1.6% / 0.58);
501
+ --cv-color-surface-secondary-glass: hwb(213 94.9% 1.6% / 0.82);
502
+ --cv-color-surface-secondary-glass-strong: hwb(213 94.9% 1.6% / 0.9);
503
+ --cv-color-surface-tertiary-glass: hwb(214 91.4% 3.1% / 0.72);
504
+ --cv-color-surface-tertiary-glass-strong: hwb(214 91.4% 3.1% / 0.84);
505
+ --cv-color-surface-highlight: hwb(221 7.1% 86.7% / 0.05);
506
+
507
+ --cv-color-text: var(--cv-palette-text);
167
508
  --cv-color-text-primary: var(--cv-color-text);
168
- --cv-color-text-muted: #5c6577;
509
+ --cv-color-text-muted: hwb(221 7.1% 86.7% / 0.7);
169
510
  --cv-color-text-secondary: var(--cv-color-text-muted);
170
- --cv-color-text-subtle: #7a8394;
171
- --cv-color-text-strong: #0e1219;
172
- --cv-color-text-strongest: #000000;
173
- --cv-color-border: #d0d5de;
174
- --cv-color-border-muted: color-mix(in oklch, var(--cv-color-border) 55%, transparent);
175
- --cv-color-border-strong: color-mix(in oklch, var(--cv-color-border) 82%, black 18%);
176
- --cv-color-border-accent: color-mix(in oklch, var(--cv-color-primary) 35%, var(--cv-color-border));
177
- --cv-color-primary: #0e8ab4;
178
- --cv-color-primary-dark: #0b7199;
179
- --cv-color-primary-darker: #085a7a;
180
- --cv-color-primary-subtle: color-mix(in oklch, var(--cv-color-primary) 8%, var(--cv-color-surface));
181
- --cv-color-primary-muted: color-mix(in oklch, var(--cv-color-primary) 15%, var(--cv-color-surface));
182
- --cv-color-on-primary: #ffffff;
183
- --cv-color-accent: #7c3aed;
184
- --cv-color-accent-light: color-mix(in oklch, var(--cv-color-accent) 70%, white);
185
- --cv-color-accent-dark: color-mix(in oklch, var(--cv-color-accent) 70%, black);
186
- --cv-color-accent-hover: color-mix(in oklch, var(--cv-color-accent) 85%, black);
187
- --cv-color-accent-contrast: #ffffff;
188
- --cv-color-success: #16a367;
189
- --cv-color-success-dark: #0f8553;
190
- --cv-color-success-text: #052e1a;
191
- --cv-color-warning: #b8860b;
192
- --cv-color-warning-dark: #9a7209;
193
- --cv-color-warning-text: #3d2c04;
194
- --cv-color-danger: #dc2c3e;
195
- --cv-color-danger-dark: #b82232;
196
- --cv-color-danger-text: #450a10;
197
- --cv-color-info-text: var(--cv-color-text);
198
- --cv-color-hover: color-mix(in oklch, var(--cv-color-primary) 8%, var(--cv-color-surface));
199
- --cv-color-active: color-mix(in oklch, var(--cv-color-primary) 14%, transparent);
200
- --cv-color-selected: color-mix(in oklch, var(--cv-color-primary) 12%, var(--cv-color-surface));
201
- --cv-color-overlay: rgba(15, 20, 30, 0.38);
202
- --cv-shadow-sm: 0 2px 8px rgba(0, 0, 0, 0.08);
203
- --cv-shadow-md: 0 8px 28px rgba(0, 0, 0, 0.12);
204
- --cv-shadow-lg: 0 16px 48px rgba(0, 0, 0, 0.14);
205
- --cv-shadow-xl: 0 24px 64px rgba(0, 0, 0, 0.16);
206
- --cv-shadow-glow: 0 0 40px color-mix(in oklch, var(--cv-color-cyan) 10%, transparent);
511
+ --cv-color-text-subtle: hwb(221 7.1% 86.7% / 0.5);
512
+ --cv-color-text-strong: var(--cv-palette-text-strong);
513
+ --cv-color-text-strongest: hwb(0 0% 100%);
514
+
515
+ --cv-color-border: var(--cv-palette-border);
516
+ --cv-color-border-faint: hwb(216 9.8% 72.5% / 0.06);
517
+ --cv-color-border-muted: hwb(216 9.8% 72.5% / 0.08);
518
+ --cv-color-border-soft: hwb(216 9.8% 72.5% / 0.14);
519
+ --cv-color-border-strong: hwb(216 9.8% 72.5% / 0.22);
520
+ --cv-color-border-accent: hwb(186 0% 20% / 0.3);
521
+ --cv-color-border-glass: hwb(216 9.8% 72.5% / 0.18);
522
+
523
+ --cv-color-primary: var(--cv-palette-primary);
524
+ --cv-color-primary-dark: var(--cv-palette-primary-dark);
525
+ --cv-color-primary-darker: var(--cv-palette-primary-darker);
526
+ --cv-color-primary-subtle: hwb(186 0% 20% / 0.08);
527
+ --cv-color-primary-muted: hwb(186 0% 20% / 0.16);
528
+ --cv-color-primary-surface: hwb(186 0% 20% / 0.1);
529
+ --cv-color-primary-surface-strong: hwb(186 0% 20% / 0.18);
530
+ --cv-color-primary-border: hwb(186 0% 20% / 0.28);
531
+ --cv-color-primary-border-strong: hwb(186 0% 20% / 0.36);
532
+ --cv-color-primary-ring: hwb(186 0% 20% / 0.18);
533
+ --cv-color-on-primary: var(--cv-palette-on-primary);
534
+
535
+ --cv-color-accent: var(--cv-palette-accent);
536
+ --cv-color-accent-light: hwb(263 63.5% 0%);
537
+ --cv-color-accent-dark: hwb(262 32% 28%);
538
+ --cv-color-accent-hover: var(--cv-palette-accent-hover);
539
+ --cv-color-accent-contrast: var(--cv-palette-accent-contrast);
540
+ --cv-color-accent-surface: hwb(262 53.3% 0% / 0.1);
541
+ --cv-color-accent-surface-strong: hwb(262 53.3% 0% / 0.16);
542
+ --cv-color-accent-border: hwb(262 53.3% 0% / 0.24);
543
+ --cv-color-accent-border-strong: hwb(262 53.3% 0% / 0.32);
544
+ --cv-color-accent-ring: hwb(262 53.3% 0% / 0.18);
545
+
546
+ --cv-color-success: var(--cv-palette-success);
547
+ --cv-color-success-dark: var(--cv-palette-success-dark);
548
+ --cv-color-success-surface: hwb(159 0% 23.1% / 0.12);
549
+ --cv-color-success-surface-strong: hwb(159 0% 23.1% / 0.2);
550
+ --cv-color-success-border: hwb(159 0% 23.1% / 0.25);
551
+ --cv-color-success-border-strong: hwb(159 0% 23.1% / 0.36);
552
+ --cv-color-success-ring: hwb(159 0% 23.1% / 0.12);
553
+
554
+ --cv-color-warning: var(--cv-palette-warning);
555
+ --cv-color-warning-dark: var(--cv-palette-warning-dark);
556
+ --cv-color-warning-surface: hwb(39 11.4% 9.8% / 0.12);
557
+ --cv-color-warning-surface-strong: hwb(39 11.4% 9.8% / 0.2);
558
+ --cv-color-warning-border: hwb(39 11.4% 9.8% / 0.24);
559
+ --cv-color-warning-border-strong: hwb(39 11.4% 9.8% / 0.32);
560
+ --cv-color-warning-ring: hwb(39 11.4% 9.8% / 0.12);
561
+
562
+ --cv-color-danger: var(--cv-palette-danger);
563
+ --cv-color-danger-dark: var(--cv-palette-danger-dark);
564
+ --cv-color-danger-surface: hwb(3 16.9% 9.8% / 0.12);
565
+ --cv-color-danger-surface-strong: hwb(3 16.9% 9.8% / 0.2);
566
+ --cv-color-danger-border: hwb(3 16.9% 9.8% / 0.24);
567
+ --cv-color-danger-border-strong: hwb(3 16.9% 9.8% / 0.32);
568
+ --cv-color-danger-ring: hwb(3 16.9% 9.8% / 0.12);
569
+
570
+ --cv-color-info: var(--cv-color-primary);
571
+ --cv-color-info-surface: var(--cv-color-primary-surface);
572
+ --cv-color-info-surface-strong: var(--cv-color-primary-surface-strong);
573
+ --cv-color-info-border: var(--cv-color-primary-border);
574
+ --cv-color-info-border-strong: var(--cv-color-primary-border-strong);
575
+ --cv-color-info-ring: var(--cv-color-primary-ring);
576
+
577
+ --cv-color-focus: var(--cv-color-primary);
578
+ --cv-color-focus-ring: var(--cv-color-primary);
579
+ --cv-color-hover: hwb(186 0% 20% / 0.08);
580
+ --cv-color-active: hwb(186 0% 20% / 0.14);
581
+ --cv-color-selected: hwb(186 0% 20% / 0.12);
582
+ --cv-color-overlay: hwb(218 1.2% 94.5% / 0.38);
583
+
584
+ --cv-shadow-sm: 0 2px 8px var(--cv-alpha-black-10);
585
+ --cv-shadow-md: 0 8px 28px var(--cv-alpha-black-10);
586
+ --cv-shadow-lg: 0 16px 48px var(--cv-alpha-black-10);
587
+ --cv-shadow-xl: 0 24px 64px var(--cv-alpha-black-10);
588
+ --cv-shadow-glow: 0 0 40px var(--cv-color-primary-ring);
589
+ --cv-shadow-glass: 0 12px 36px var(--cv-alpha-black-10);
207
590
  }
208
591
 
209
- /* === Light tokens — system preference === */
210
592
  @media (prefers-color-scheme: light) {
211
- :root,
593
+ :root:not([data-theme]):not([theme]),
212
594
  cv-theme-provider[mode='system'] {
213
595
  color-scheme: light;
214
- --cv-color-bg: #f8f9fb;
215
- --cv-color-surface: #ffffff;
216
- --cv-color-surface-2: #f0f2f5;
217
- --cv-color-surface-3: #e6e9ee;
218
- --cv-color-surface-4: #dce0e7;
219
- --cv-color-surface-elevated: var(--cv-color-surface-2);
596
+
597
+ --cv-palette-bg: hwb(206 95.7% 1.6%);
598
+ --cv-palette-surface: hwb(0 100% 0%);
599
+ --cv-palette-surface-2: hwb(213 94.9% 1.6%);
600
+ --cv-palette-surface-3: hwb(214 91.4% 3.1%);
601
+ --cv-palette-surface-4: hwb(211 86.7% 5.1%);
602
+ --cv-palette-text: hwb(221 7.1% 86.7%);
603
+ --cv-palette-text-strong: hwb(218 3.5% 92.2%);
604
+ --cv-palette-border: hwb(216 9.8% 72.5% / 0.14);
605
+ --cv-palette-primary: hwb(186 0% 20%);
606
+ --cv-palette-primary-dark: hwb(186 0% 36.1%);
607
+ --cv-palette-primary-darker: hwb(187 0% 52.9%);
608
+ --cv-palette-on-primary: hwb(0 100% 0%);
609
+ --cv-palette-accent: hwb(262 36% 20%);
610
+ --cv-palette-accent-hover: hwb(261 41.2% 0%);
611
+ --cv-palette-accent-contrast: hwb(279 0% 87.8%);
612
+ --cv-palette-success: hwb(159 0% 23.1%);
613
+ --cv-palette-success-dark: hwb(159 0% 40%);
614
+ --cv-palette-warning: hwb(39 11.4% 9.8%);
615
+ --cv-palette-warning-dark: hwb(37 7.1% 27.8%);
616
+ --cv-palette-danger: hwb(3 16.9% 9.8%);
617
+ --cv-palette-danger-dark: hwb(3 12.9% 27.8%);
618
+
619
+ --cv-color-bg: var(--cv-palette-bg);
620
+ --cv-color-surface: var(--cv-palette-surface);
621
+ --cv-color-surface-2: var(--cv-palette-surface-2);
622
+ --cv-color-surface-3: var(--cv-palette-surface-3);
623
+ --cv-color-surface-4: var(--cv-palette-surface-4);
624
+ --cv-color-surface-elevated: var(--cv-color-surface);
220
625
  --cv-color-surface-secondary: var(--cv-color-surface-2);
221
626
  --cv-color-surface-tertiary: var(--cv-color-surface-3);
222
- --cv-color-surface-hover: color-mix(in oklch, var(--cv-color-primary) 6%, var(--cv-color-surface));
223
- --cv-color-text: #1a1f2e;
627
+ --cv-color-surface-hover: hwb(186 0% 20% / 0.07);
628
+ --cv-color-surface-glass-subtle: hwb(0 100% 0% / 0.54);
629
+ --cv-color-surface-glass: hwb(0 100% 0% / 0.72);
630
+ --cv-color-surface-glass-strong: hwb(0 100% 0% / 0.84);
631
+ --cv-color-surface-secondary-glass-soft: hwb(213 94.9% 1.6% / 0.58);
632
+ --cv-color-surface-secondary-glass: hwb(213 94.9% 1.6% / 0.82);
633
+ --cv-color-surface-secondary-glass-strong: hwb(213 94.9% 1.6% / 0.9);
634
+ --cv-color-surface-tertiary-glass: hwb(214 91.4% 3.1% / 0.72);
635
+ --cv-color-surface-tertiary-glass-strong: hwb(214 91.4% 3.1% / 0.84);
636
+ --cv-color-surface-highlight: hwb(221 7.1% 86.7% / 0.05);
637
+
638
+ --cv-color-text: var(--cv-palette-text);
224
639
  --cv-color-text-primary: var(--cv-color-text);
225
- --cv-color-text-muted: #5c6577;
640
+ --cv-color-text-muted: hwb(221 7.1% 86.7% / 0.7);
226
641
  --cv-color-text-secondary: var(--cv-color-text-muted);
227
- --cv-color-text-subtle: #7a8394;
228
- --cv-color-text-strong: #0e1219;
229
- --cv-color-text-strongest: #000000;
230
- --cv-color-border: #d0d5de;
231
- --cv-color-border-muted: color-mix(in oklch, var(--cv-color-border) 55%, transparent);
232
- --cv-color-border-strong: color-mix(in oklch, var(--cv-color-border) 82%, black 18%);
233
- --cv-color-border-accent: color-mix(in oklch, var(--cv-color-primary) 35%, var(--cv-color-border));
234
- --cv-color-primary: #0e8ab4;
235
- --cv-color-primary-dark: #0b7199;
236
- --cv-color-primary-darker: #085a7a;
237
- --cv-color-primary-subtle: color-mix(in oklch, var(--cv-color-primary) 8%, var(--cv-color-surface));
238
- --cv-color-primary-muted: color-mix(in oklch, var(--cv-color-primary) 15%, var(--cv-color-surface));
239
- --cv-color-on-primary: #ffffff;
240
- --cv-color-accent: #7c3aed;
241
- --cv-color-accent-light: color-mix(in oklch, var(--cv-color-accent) 70%, white);
242
- --cv-color-accent-dark: color-mix(in oklch, var(--cv-color-accent) 70%, black);
243
- --cv-color-accent-hover: color-mix(in oklch, var(--cv-color-accent) 85%, black);
244
- --cv-color-accent-contrast: #ffffff;
245
- --cv-color-success: #16a367;
246
- --cv-color-success-dark: #0f8553;
247
- --cv-color-success-text: #052e1a;
248
- --cv-color-warning: #b8860b;
249
- --cv-color-warning-dark: #9a7209;
250
- --cv-color-warning-text: #3d2c04;
251
- --cv-color-danger: #dc2c3e;
252
- --cv-color-danger-dark: #b82232;
253
- --cv-color-danger-text: #450a10;
254
- --cv-color-info-text: var(--cv-color-text);
255
- --cv-color-hover: color-mix(in oklch, var(--cv-color-primary) 8%, var(--cv-color-surface));
256
- --cv-color-active: color-mix(in oklch, var(--cv-color-primary) 14%, transparent);
257
- --cv-color-selected: color-mix(in oklch, var(--cv-color-primary) 12%, var(--cv-color-surface));
258
- --cv-color-overlay: rgba(15, 20, 30, 0.38);
259
- --cv-shadow-sm: 0 2px 8px rgba(0, 0, 0, 0.08);
260
- --cv-shadow-md: 0 8px 28px rgba(0, 0, 0, 0.12);
261
- --cv-shadow-lg: 0 16px 48px rgba(0, 0, 0, 0.14);
262
- --cv-shadow-xl: 0 24px 64px rgba(0, 0, 0, 0.16);
263
- --cv-shadow-glow: 0 0 40px color-mix(in oklch, var(--cv-color-cyan) 10%, transparent);
642
+ --cv-color-text-subtle: hwb(221 7.1% 86.7% / 0.5);
643
+ --cv-color-text-strong: var(--cv-palette-text-strong);
644
+ --cv-color-text-strongest: hwb(0 0% 100%);
645
+
646
+ --cv-color-border: var(--cv-palette-border);
647
+ --cv-color-border-faint: hwb(216 9.8% 72.5% / 0.06);
648
+ --cv-color-border-muted: hwb(216 9.8% 72.5% / 0.08);
649
+ --cv-color-border-soft: hwb(216 9.8% 72.5% / 0.14);
650
+ --cv-color-border-strong: hwb(216 9.8% 72.5% / 0.22);
651
+ --cv-color-border-accent: hwb(186 0% 20% / 0.3);
652
+ --cv-color-border-glass: hwb(216 9.8% 72.5% / 0.18);
653
+
654
+ --cv-color-primary: var(--cv-palette-primary);
655
+ --cv-color-primary-dark: var(--cv-palette-primary-dark);
656
+ --cv-color-primary-darker: var(--cv-palette-primary-darker);
657
+ --cv-color-primary-subtle: hwb(186 0% 20% / 0.08);
658
+ --cv-color-primary-muted: hwb(186 0% 20% / 0.16);
659
+ --cv-color-primary-surface: hwb(186 0% 20% / 0.1);
660
+ --cv-color-primary-surface-strong: hwb(186 0% 20% / 0.18);
661
+ --cv-color-primary-border: hwb(186 0% 20% / 0.28);
662
+ --cv-color-primary-border-strong: hwb(186 0% 20% / 0.36);
663
+ --cv-color-primary-ring: hwb(186 0% 20% / 0.18);
664
+ --cv-color-on-primary: var(--cv-palette-on-primary);
665
+
666
+ --cv-color-accent: var(--cv-palette-accent);
667
+ --cv-color-accent-light: hwb(263 63.5% 0%);
668
+ --cv-color-accent-dark: hwb(262 32% 28%);
669
+ --cv-color-accent-hover: var(--cv-palette-accent-hover);
670
+ --cv-color-accent-contrast: var(--cv-palette-accent-contrast);
671
+ --cv-color-accent-surface: hwb(262 53.3% 0% / 0.1);
672
+ --cv-color-accent-surface-strong: hwb(262 53.3% 0% / 0.16);
673
+ --cv-color-accent-border: hwb(262 53.3% 0% / 0.24);
674
+ --cv-color-accent-border-strong: hwb(262 53.3% 0% / 0.32);
675
+ --cv-color-accent-ring: hwb(262 53.3% 0% / 0.18);
676
+
677
+ --cv-color-success: var(--cv-palette-success);
678
+ --cv-color-success-dark: var(--cv-palette-success-dark);
679
+ --cv-color-success-surface: hwb(159 0% 23.1% / 0.12);
680
+ --cv-color-success-surface-strong: hwb(159 0% 23.1% / 0.2);
681
+ --cv-color-success-border: hwb(159 0% 23.1% / 0.25);
682
+ --cv-color-success-border-strong: hwb(159 0% 23.1% / 0.36);
683
+ --cv-color-success-ring: hwb(159 0% 23.1% / 0.12);
684
+
685
+ --cv-color-warning: var(--cv-palette-warning);
686
+ --cv-color-warning-dark: var(--cv-palette-warning-dark);
687
+ --cv-color-warning-surface: hwb(39 11.4% 9.8% / 0.12);
688
+ --cv-color-warning-surface-strong: hwb(39 11.4% 9.8% / 0.2);
689
+ --cv-color-warning-border: hwb(39 11.4% 9.8% / 0.24);
690
+ --cv-color-warning-border-strong: hwb(39 11.4% 9.8% / 0.32);
691
+ --cv-color-warning-ring: hwb(39 11.4% 9.8% / 0.12);
692
+
693
+ --cv-color-danger: var(--cv-palette-danger);
694
+ --cv-color-danger-dark: var(--cv-palette-danger-dark);
695
+ --cv-color-danger-surface: hwb(3 16.9% 9.8% / 0.12);
696
+ --cv-color-danger-surface-strong: hwb(3 16.9% 9.8% / 0.2);
697
+ --cv-color-danger-border: hwb(3 16.9% 9.8% / 0.24);
698
+ --cv-color-danger-border-strong: hwb(3 16.9% 9.8% / 0.32);
699
+ --cv-color-danger-ring: hwb(3 16.9% 9.8% / 0.12);
700
+
701
+ --cv-color-info: var(--cv-color-primary);
702
+ --cv-color-info-surface: var(--cv-color-primary-surface);
703
+ --cv-color-info-surface-strong: var(--cv-color-primary-surface-strong);
704
+ --cv-color-info-border: var(--cv-color-primary-border);
705
+ --cv-color-info-border-strong: var(--cv-color-primary-border-strong);
706
+ --cv-color-info-ring: var(--cv-color-primary-ring);
707
+
708
+ --cv-color-focus: var(--cv-color-primary);
709
+ --cv-color-focus-ring: var(--cv-color-primary);
710
+ --cv-color-hover: hwb(186 0% 20% / 0.08);
711
+ --cv-color-active: hwb(186 0% 20% / 0.14);
712
+ --cv-color-selected: hwb(186 0% 20% / 0.12);
713
+ --cv-color-overlay: hwb(218 1.2% 94.5% / 0.38);
714
+
715
+ --cv-shadow-sm: 0 2px 8px var(--cv-alpha-black-10);
716
+ --cv-shadow-md: 0 8px 28px var(--cv-alpha-black-10);
717
+ --cv-shadow-lg: 0 16px 48px var(--cv-alpha-black-10);
718
+ --cv-shadow-xl: 0 24px 64px var(--cv-alpha-black-10);
719
+ --cv-shadow-glow: 0 0 40px var(--cv-color-primary-ring);
720
+ --cv-shadow-glass: 0 12px 36px var(--cv-alpha-black-10);
264
721
  }
265
722
  }