vanduo-framework 1.1.8-docs-update

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 (196) hide show
  1. package/LICENSE +35 -0
  2. package/README.md +216 -0
  3. package/css/components/alerts.css +224 -0
  4. package/css/components/avatar.css +275 -0
  5. package/css/components/badges.css +230 -0
  6. package/css/components/breadcrumbs.css +146 -0
  7. package/css/components/button-group.css +82 -0
  8. package/css/components/buttons.css +530 -0
  9. package/css/components/cards.css +304 -0
  10. package/css/components/chips.css +259 -0
  11. package/css/components/code-snippet.css +555 -0
  12. package/css/components/collapsible.css +267 -0
  13. package/css/components/collections.css +253 -0
  14. package/css/components/doc-search.css +464 -0
  15. package/css/components/doc-tabs.css +38 -0
  16. package/css/components/draggable.css +317 -0
  17. package/css/components/dropdown.css +266 -0
  18. package/css/components/footer.css +375 -0
  19. package/css/components/forms.css +1774 -0
  20. package/css/components/image-box.css +279 -0
  21. package/css/components/modals.css +285 -0
  22. package/css/components/navbar.css +530 -0
  23. package/css/components/pagination.css +186 -0
  24. package/css/components/preloader.css +340 -0
  25. package/css/components/progress.css +107 -0
  26. package/css/components/sidenav.css +301 -0
  27. package/css/components/skeleton.css +241 -0
  28. package/css/components/spinner.css +144 -0
  29. package/css/components/tabs.css +327 -0
  30. package/css/components/theme-customizer.css +835 -0
  31. package/css/components/toast.css +357 -0
  32. package/css/components/tooltips.css +270 -0
  33. package/css/core/colors.css +1017 -0
  34. package/css/core/fonts.css +266 -0
  35. package/css/core/grid.css +1699 -0
  36. package/css/core/helpers.css +2202 -0
  37. package/css/core/reset.css +128 -0
  38. package/css/core/tokens.css +213 -0
  39. package/css/core/typography.css +405 -0
  40. package/css/core/vd-aliases.css +47 -0
  41. package/css/effects/parallax.css +113 -0
  42. package/css/icons/icons-all.css +23 -0
  43. package/css/icons/icons.css +25 -0
  44. package/css/utilities/media.css +167 -0
  45. package/css/utilities/print.css +111 -0
  46. package/css/utilities/shadow.css +243 -0
  47. package/css/utilities/table.css +381 -0
  48. package/css/utilities/transforms.css +71 -0
  49. package/css/utilities/transitions.css +87 -0
  50. package/css/vanduo.css +80 -0
  51. package/dist/build-info.json +6 -0
  52. package/dist/fonts/fira-sans/fira-sans-bold.woff2 +0 -0
  53. package/dist/fonts/fira-sans/fira-sans-medium.woff2 +0 -0
  54. package/dist/fonts/fira-sans/fira-sans-regular.woff2 +0 -0
  55. package/dist/fonts/ibm-plex/ibm-plex-sans-bold.woff2 +0 -0
  56. package/dist/fonts/ibm-plex/ibm-plex-sans-medium.woff2 +0 -0
  57. package/dist/fonts/ibm-plex/ibm-plex-sans-regular.woff2 +0 -0
  58. package/dist/fonts/inter/inter-bold.woff2 +0 -0
  59. package/dist/fonts/inter/inter-medium.woff2 +0 -0
  60. package/dist/fonts/inter/inter-regular.woff2 +0 -0
  61. package/dist/fonts/inter/inter-semibold.woff2 +0 -0
  62. package/dist/fonts/jetbrains-mono/jetbrains-mono-bold.woff2 +0 -0
  63. package/dist/fonts/jetbrains-mono/jetbrains-mono-regular.woff2 +0 -0
  64. package/dist/fonts/open-sans/open-sans-bold.woff2 +0 -0
  65. package/dist/fonts/open-sans/open-sans-medium.woff2 +0 -0
  66. package/dist/fonts/open-sans/open-sans-regular.woff2 +0 -0
  67. package/dist/fonts/rubik/rubik-bold.woff2 +0 -0
  68. package/dist/fonts/rubik/rubik-medium.woff2 +0 -0
  69. package/dist/fonts/rubik/rubik-regular.woff2 +0 -0
  70. package/dist/fonts/source-sans/source-sans-bold.woff2 +0 -0
  71. package/dist/fonts/source-sans/source-sans-regular.woff2 +0 -0
  72. package/dist/fonts/source-sans/source-sans-semibold.woff2 +0 -0
  73. package/dist/fonts/titillium-web/titillium-web-bold.woff2 +0 -0
  74. package/dist/fonts/titillium-web/titillium-web-regular.woff2 +0 -0
  75. package/dist/fonts/titillium-web/titillium-web-semibold.woff2 +0 -0
  76. package/dist/fonts/ubuntu/ubuntu-bold.woff2 +0 -0
  77. package/dist/fonts/ubuntu/ubuntu-medium.woff2 +0 -0
  78. package/dist/fonts/ubuntu/ubuntu-regular.woff2 +0 -0
  79. package/dist/icons/phosphor/LICENSE +21 -0
  80. package/dist/icons/phosphor/bold/Phosphor-Bold.ttf +0 -0
  81. package/dist/icons/phosphor/bold/Phosphor-Bold.woff +0 -0
  82. package/dist/icons/phosphor/bold/Phosphor-Bold.woff2 +0 -0
  83. package/dist/icons/phosphor/bold/style.css +4627 -0
  84. package/dist/icons/phosphor/duotone/Phosphor-Duotone.ttf +0 -0
  85. package/dist/icons/phosphor/duotone/Phosphor-Duotone.woff +0 -0
  86. package/dist/icons/phosphor/duotone/Phosphor-Duotone.woff2 +0 -0
  87. package/dist/icons/phosphor/duotone/style.css +12115 -0
  88. package/dist/icons/phosphor/fill/Phosphor-Fill.ttf +0 -0
  89. package/dist/icons/phosphor/fill/Phosphor-Fill.woff +0 -0
  90. package/dist/icons/phosphor/fill/Phosphor-Fill.woff2 +0 -0
  91. package/dist/icons/phosphor/fill/style.css +4627 -0
  92. package/dist/icons/phosphor/light/Phosphor-Light.ttf +0 -0
  93. package/dist/icons/phosphor/light/Phosphor-Light.woff +0 -0
  94. package/dist/icons/phosphor/light/Phosphor-Light.woff2 +0 -0
  95. package/dist/icons/phosphor/light/style.css +4627 -0
  96. package/dist/icons/phosphor/regular/Phosphor.ttf +0 -0
  97. package/dist/icons/phosphor/regular/Phosphor.woff +0 -0
  98. package/dist/icons/phosphor/regular/Phosphor.woff2 +0 -0
  99. package/dist/icons/phosphor/regular/style.css +4627 -0
  100. package/dist/icons/phosphor/thin/Phosphor-Thin.ttf +0 -0
  101. package/dist/icons/phosphor/thin/Phosphor-Thin.woff +0 -0
  102. package/dist/icons/phosphor/thin/Phosphor-Thin.woff2 +0 -0
  103. package/dist/icons/phosphor/thin/style.css +4627 -0
  104. package/dist/vanduo.cjs.js +5569 -0
  105. package/dist/vanduo.cjs.js.map +7 -0
  106. package/dist/vanduo.cjs.min.js +48 -0
  107. package/dist/vanduo.cjs.min.js.map +7 -0
  108. package/dist/vanduo.css +60666 -0
  109. package/dist/vanduo.css.map +1 -0
  110. package/dist/vanduo.esm.js +5548 -0
  111. package/dist/vanduo.esm.js.map +7 -0
  112. package/dist/vanduo.esm.min.js +48 -0
  113. package/dist/vanduo.esm.min.js.map +7 -0
  114. package/dist/vanduo.js +5545 -0
  115. package/dist/vanduo.js.map +7 -0
  116. package/dist/vanduo.min.css +2 -0
  117. package/dist/vanduo.min.css.map +1 -0
  118. package/dist/vanduo.min.js +48 -0
  119. package/dist/vanduo.min.js.map +7 -0
  120. package/fonts/fira-sans/fira-sans-bold.woff2 +0 -0
  121. package/fonts/fira-sans/fira-sans-medium.woff2 +0 -0
  122. package/fonts/fira-sans/fira-sans-regular.woff2 +0 -0
  123. package/fonts/ibm-plex/ibm-plex-sans-bold.woff2 +0 -0
  124. package/fonts/ibm-plex/ibm-plex-sans-medium.woff2 +0 -0
  125. package/fonts/ibm-plex/ibm-plex-sans-regular.woff2 +0 -0
  126. package/fonts/inter/inter-bold.woff2 +0 -0
  127. package/fonts/inter/inter-medium.woff2 +0 -0
  128. package/fonts/inter/inter-regular.woff2 +0 -0
  129. package/fonts/inter/inter-semibold.woff2 +0 -0
  130. package/fonts/jetbrains-mono/jetbrains-mono-bold.woff2 +0 -0
  131. package/fonts/jetbrains-mono/jetbrains-mono-regular.woff2 +0 -0
  132. package/fonts/open-sans/open-sans-bold.woff2 +0 -0
  133. package/fonts/open-sans/open-sans-medium.woff2 +0 -0
  134. package/fonts/open-sans/open-sans-regular.woff2 +0 -0
  135. package/fonts/rubik/rubik-bold.woff2 +0 -0
  136. package/fonts/rubik/rubik-medium.woff2 +0 -0
  137. package/fonts/rubik/rubik-regular.woff2 +0 -0
  138. package/fonts/source-sans/source-sans-bold.woff2 +0 -0
  139. package/fonts/source-sans/source-sans-regular.woff2 +0 -0
  140. package/fonts/source-sans/source-sans-semibold.woff2 +0 -0
  141. package/fonts/titillium-web/titillium-web-bold.woff2 +0 -0
  142. package/fonts/titillium-web/titillium-web-regular.woff2 +0 -0
  143. package/fonts/titillium-web/titillium-web-semibold.woff2 +0 -0
  144. package/fonts/ubuntu/ubuntu-bold.woff2 +0 -0
  145. package/fonts/ubuntu/ubuntu-medium.woff2 +0 -0
  146. package/fonts/ubuntu/ubuntu-regular.woff2 +0 -0
  147. package/icons/phosphor/LICENSE +21 -0
  148. package/icons/phosphor/bold/Phosphor-Bold.ttf +0 -0
  149. package/icons/phosphor/bold/Phosphor-Bold.woff +0 -0
  150. package/icons/phosphor/bold/Phosphor-Bold.woff2 +0 -0
  151. package/icons/phosphor/bold/style.css +4627 -0
  152. package/icons/phosphor/duotone/Phosphor-Duotone.ttf +0 -0
  153. package/icons/phosphor/duotone/Phosphor-Duotone.woff +0 -0
  154. package/icons/phosphor/duotone/Phosphor-Duotone.woff2 +0 -0
  155. package/icons/phosphor/duotone/style.css +12115 -0
  156. package/icons/phosphor/fill/Phosphor-Fill.ttf +0 -0
  157. package/icons/phosphor/fill/Phosphor-Fill.woff +0 -0
  158. package/icons/phosphor/fill/Phosphor-Fill.woff2 +0 -0
  159. package/icons/phosphor/fill/style.css +4627 -0
  160. package/icons/phosphor/light/Phosphor-Light.ttf +0 -0
  161. package/icons/phosphor/light/Phosphor-Light.woff +0 -0
  162. package/icons/phosphor/light/Phosphor-Light.woff2 +0 -0
  163. package/icons/phosphor/light/style.css +4627 -0
  164. package/icons/phosphor/regular/Phosphor.ttf +0 -0
  165. package/icons/phosphor/regular/Phosphor.woff +0 -0
  166. package/icons/phosphor/regular/Phosphor.woff2 +0 -0
  167. package/icons/phosphor/regular/style.css +4627 -0
  168. package/icons/phosphor/thin/Phosphor-Thin.ttf +0 -0
  169. package/icons/phosphor/thin/Phosphor-Thin.woff +0 -0
  170. package/icons/phosphor/thin/Phosphor-Thin.woff2 +0 -0
  171. package/icons/phosphor/thin/style.css +4627 -0
  172. package/js/components/code-snippet.js +639 -0
  173. package/js/components/collapsible.js +226 -0
  174. package/js/components/doc-search.js +936 -0
  175. package/js/components/draggable.js +725 -0
  176. package/js/components/dropdown.js +362 -0
  177. package/js/components/font-switcher.js +253 -0
  178. package/js/components/grid.js +279 -0
  179. package/js/components/image-box.js +372 -0
  180. package/js/components/modals.js +367 -0
  181. package/js/components/navbar.js +264 -0
  182. package/js/components/pagination.js +286 -0
  183. package/js/components/parallax.js +216 -0
  184. package/js/components/preloader.js +183 -0
  185. package/js/components/select.js +444 -0
  186. package/js/components/sidenav.js +303 -0
  187. package/js/components/tabs.js +303 -0
  188. package/js/components/theme-customizer.js +784 -0
  189. package/js/components/theme-switcher.js +183 -0
  190. package/js/components/toast.js +343 -0
  191. package/js/components/tooltips.js +306 -0
  192. package/js/index.js +52 -0
  193. package/js/utils/helpers.js +306 -0
  194. package/js/utils/lifecycle.js +135 -0
  195. package/js/vanduo.js +120 -0
  196. package/package.json +78 -0
@@ -0,0 +1,1017 @@
1
+ /**
2
+ * Vanduo Framework - Color System
3
+ *
4
+ * Color palette based on Open Color (https://yeun.github.io/open-color/)
5
+ * Open Color is MIT licensed, Copyright (c) 2016 Heeyeun Jeong
6
+ *
7
+ * @license MIT
8
+ */
9
+
10
+ :root {
11
+ /* ═══════════════════════════════════════════════════════════════════════
12
+ * OPEN COLOR PALETTE
13
+ * ═══════════════════════════════════════════════════════════════════════ */
14
+
15
+ /* --- NEUTRALS: Gray Scale (Open Color Gray 0-9) ---
16
+ * Used for: Backgrounds, borders, text, and UI structure
17
+ */
18
+ --gray-0: #f8f9fa;
19
+ /* Lightest - hover backgrounds, light sections */
20
+ --gray-1: #f1f3f5;
21
+ --gray-2: #e9ecef;
22
+ /* Secondary backgrounds, cards */
23
+ --gray-3: #dee2e6;
24
+ /* Borders, dividers */
25
+ --gray-4: #ced4da;
26
+ --gray-5: #adb5bd;
27
+ /* Disabled text, placeholders */
28
+ --gray-6: #868e96;
29
+ /* Muted text */
30
+ --gray-7: #495057;
31
+ /* Secondary text */
32
+ --gray-8: #343a40;
33
+ /* Primary text */
34
+ --gray-9: #212529;
35
+ /* Darkest - headings, dark mode backgrounds */
36
+
37
+ /* --- PRIMARY: Indigo Scale (Open Color Indigo 0-9) ---
38
+ * Global default for buttons, links, highlights, brand elements
39
+ * Used for: Buttons, links, highlights, brand elements
40
+ */
41
+ --primary-0: #edf2ff;
42
+ /* Lightest - hover backgrounds, highlights */
43
+ --primary-1: #dbe4ff;
44
+ --primary-2: #bac8ff;
45
+ --primary-3: #91a7ff;
46
+ --primary-4: #748ffc;
47
+ --primary-5: #5c7cfa;
48
+ /* ★ Main brand color */
49
+ --primary-6: #4c6ef5;
50
+ /* Hover state */
51
+ --primary-7: #4263eb;
52
+ /* Active state */
53
+ --primary-8: #3b5bdb;
54
+ --primary-9: #364fc7;
55
+ /* Darkest - pressed state */
56
+
57
+ /* --- SECONDARY: Teal Scale (Open Color Teal 0-9) ---
58
+ * Complementary to Cyan for secondary actions
59
+ */
60
+ --secondary-0: #e6fcf5;
61
+ --secondary-1: #c3fae8;
62
+ --secondary-2: #96f2d7;
63
+ --secondary-3: #63e6be;
64
+ --secondary-4: #38d9a9;
65
+ --secondary-5: #20c997;
66
+ /* ★ Main secondary color */
67
+ --secondary-6: #12b886;
68
+ /* Hover state */
69
+ --secondary-7: #0ca678;
70
+ /* Active state */
71
+ --secondary-8: #099268;
72
+ --secondary-9: #087f5b;
73
+
74
+ /* --- FUNCTIONAL: Semantic Colors ---
75
+ * Used for: Status indicators, feedback, alerts
76
+ */
77
+
78
+ /* Danger/Error - Open Color Red */
79
+ --danger-0: #fff5f5;
80
+ --danger-1: #ffe3e3;
81
+ --danger-2: #ffc9c9;
82
+ --danger-3: #ffa8a8;
83
+ --danger-4: #ff8787;
84
+ --danger-5: #ff6b6b;
85
+ --danger-6: #fa5252;
86
+ /* ★ Main danger color */
87
+ --danger-7: #f03e3e;
88
+ /* Hover state */
89
+ --danger-8: #e03131;
90
+ --danger-9: #c92a2a;
91
+ /* Active state */
92
+
93
+ /* Error aliases (maps to danger scale for consistent naming) */
94
+ --error-0: var(--danger-0);
95
+ --error-1: var(--danger-1);
96
+ --error-2: var(--danger-2);
97
+ --error-3: var(--danger-3);
98
+ --error-4: var(--danger-4);
99
+ --error-5: var(--danger-5);
100
+ --error-6: var(--danger-6);
101
+ --error-7: var(--danger-7);
102
+ --error-8: var(--danger-8);
103
+ --error-9: var(--danger-9);
104
+
105
+ /* Success - Open Color Green */
106
+ --success-0: #ebfbee;
107
+ --success-1: #d3f9d8;
108
+ --success-2: #b2f2bb;
109
+ --success-3: #8ce99a;
110
+ --success-4: #69db7c;
111
+ --success-5: #51cf66;
112
+ --success-6: #40c057;
113
+ /* ★ Main success color */
114
+ --success-7: #37b24d;
115
+ /* Hover state */
116
+ --success-8: #2f9e44;
117
+ --success-9: #2b8a3e;
118
+ /* Active state */
119
+
120
+ /* Warning - Open Color Yellow */
121
+ --warning-0: #fff9db;
122
+ --warning-1: #fff3bf;
123
+ --warning-2: #ffec99;
124
+ --warning-3: #ffe066;
125
+ --warning-4: #ffd43b;
126
+ --warning-5: #fcc419;
127
+ --warning-6: #fab005;
128
+ /* ★ Main warning color */
129
+ --warning-7: #f59f00;
130
+ /* Hover state */
131
+ --warning-8: #f08c00;
132
+ --warning-9: #e67700;
133
+ /* Active state */
134
+
135
+ /* Info - Open Color Blue (complementary to Cyan) */
136
+ --info-0: #e7f5ff;
137
+ --info-1: #d0ebff;
138
+ --info-2: #a5d8ff;
139
+ --info-3: #74c0fc;
140
+ --info-4: #4dabf7;
141
+ --info-5: #339af0;
142
+ --info-6: #228be6;
143
+ /* ★ Main info color */
144
+ --info-7: #1c7ed6;
145
+ /* Hover state */
146
+ --info-8: #1971c2;
147
+ --info-9: #1864ab;
148
+ /* Active state */
149
+
150
+ /* ═══════════════════════════════════════════════════════════════════════
151
+ * EXTENDED COLOR PALETTES (for Theme Customizer)
152
+ * All colors from Open Color palette
153
+ * ═══════════════════════════════════════════════════════════════════════ */
154
+
155
+ /* --- Red Scale --- */
156
+ --red-0: #fff5f5;
157
+ --red-1: #ffe3e3;
158
+ --red-2: #ffc9c9;
159
+ --red-3: #ffa8a8;
160
+ --red-4: #ff8787;
161
+ --red-5: #ff6b6b;
162
+ --red-6: #fa5252;
163
+ --red-7: #f03e3e;
164
+ --red-8: #e03131;
165
+ --red-9: #c92a2a;
166
+
167
+ /* --- Orange Scale --- */
168
+ --orange-0: #fff4e6;
169
+ --orange-1: #ffe8cc;
170
+ --orange-2: #ffd8a8;
171
+ --orange-3: #ffc078;
172
+ --orange-4: #ffa94d;
173
+ --orange-5: #ff922b;
174
+ --orange-6: #fd7e14;
175
+ --orange-7: #f76707;
176
+ --orange-8: #e8590c;
177
+ --orange-9: #d9480f;
178
+
179
+ /* --- Yellow Scale --- */
180
+ --yellow-0: #fff9db;
181
+ --yellow-1: #fff3bf;
182
+ --yellow-2: #ffec99;
183
+ --yellow-3: #ffe066;
184
+ --yellow-4: #ffd43b;
185
+ --yellow-5: #fcc419;
186
+ --yellow-6: #fab005;
187
+ --yellow-7: #f59f00;
188
+ --yellow-8: #f08c00;
189
+ --yellow-9: #e67700;
190
+
191
+ /* --- Lime Scale --- */
192
+ --lime-0: #f4fce3;
193
+ --lime-1: #e9fac8;
194
+ --lime-2: #d8f5a2;
195
+ --lime-3: #c0eb75;
196
+ --lime-4: #a9e34b;
197
+ --lime-5: #94d82d;
198
+ --lime-6: #82c91e;
199
+ --lime-7: #74b816;
200
+ --lime-8: #66a80f;
201
+ --lime-9: #5c940d;
202
+
203
+ /* --- Green Scale --- */
204
+ --green-0: #ebfbee;
205
+ --green-1: #d3f9d8;
206
+ --green-2: #b2f2bb;
207
+ --green-3: #8ce99a;
208
+ --green-4: #69db7c;
209
+ --green-5: #51cf66;
210
+ --green-6: #40c057;
211
+ --green-7: #37b24d;
212
+ --green-8: #2f9e44;
213
+ --green-9: #2b8a3e;
214
+
215
+ /* --- Teal Scale --- */
216
+ --teal-0: #e6fcf5;
217
+ --teal-1: #c3fae8;
218
+ --teal-2: #96f2d7;
219
+ --teal-3: #63e6be;
220
+ --teal-4: #38d9a9;
221
+ --teal-5: #20c997;
222
+ --teal-6: #12b886;
223
+ --teal-7: #0ca678;
224
+ --teal-8: #099268;
225
+ --teal-9: #087f5b;
226
+
227
+ /* --- Cyan Scale --- */
228
+ --cyan-0: #e3fafc;
229
+ --cyan-1: #c5f6fa;
230
+ --cyan-2: #99e9f2;
231
+ --cyan-3: #66d9e8;
232
+ --cyan-4: #3bc9db;
233
+ --cyan-5: #22b8cf;
234
+ --cyan-6: #15aabf;
235
+ --cyan-7: #1098ad;
236
+ --cyan-8: #0c8599;
237
+ --cyan-9: #0b7285;
238
+
239
+ /* --- Blue Scale --- */
240
+ --blue-0: #e7f5ff;
241
+ --blue-1: #d0ebff;
242
+ --blue-2: #a5d8ff;
243
+ --blue-3: #74c0fc;
244
+ --blue-4: #4dabf7;
245
+ --blue-5: #339af0;
246
+ --blue-6: #228be6;
247
+ --blue-7: #1c7ed6;
248
+ --blue-8: #1971c2;
249
+ --blue-9: #1864ab;
250
+
251
+ /* --- Indigo Scale --- */
252
+ --indigo-0: #edf2ff;
253
+ --indigo-1: #dbe4ff;
254
+ --indigo-2: #bac8ff;
255
+ --indigo-3: #91a7ff;
256
+ --indigo-4: #748ffc;
257
+ --indigo-5: #5c7cfa;
258
+ --indigo-6: #4c6ef5;
259
+ --indigo-7: #4263eb;
260
+ --indigo-8: #3b5bdb;
261
+ --indigo-9: #364fc7;
262
+
263
+ /* --- Violet Scale --- */
264
+ --violet-0: #f3f0ff;
265
+ --violet-1: #e5dbff;
266
+ --violet-2: #d0bfff;
267
+ --violet-3: #b197fc;
268
+ --violet-4: #9775fa;
269
+ --violet-5: #845ef7;
270
+ --violet-6: #7950f2;
271
+ --violet-7: #7048e8;
272
+ --violet-8: #6741d9;
273
+ --violet-9: #5f3dc4;
274
+
275
+ /* --- Grape (Purple) Scale --- */
276
+ --grape-0: #f8f0fc;
277
+ --grape-1: #f3d9fa;
278
+ --grape-2: #eebefa;
279
+ --grape-3: #e599f7;
280
+ --grape-4: #da77f2;
281
+ --grape-5: #cc5de8;
282
+ --grape-6: #be4bdb;
283
+ --grape-7: #ae3ec9;
284
+ --grape-8: #9c36b5;
285
+ --grape-9: #862e9c;
286
+
287
+ /* --- Pink Scale --- */
288
+ --pink-0: #fff0f6;
289
+ --pink-1: #ffdeeb;
290
+ --pink-2: #fcc2d7;
291
+ --pink-3: #faa2c1;
292
+ --pink-4: #f783ac;
293
+ --pink-5: #f06595;
294
+ --pink-6: #e64980;
295
+ --pink-7: #d6336c;
296
+ --pink-8: #c2255c;
297
+ --pink-9: #a61e4d;
298
+
299
+ /* ═══════════════════════════════════════════════════════════════════════
300
+ * NEUTRAL COLOR ALTERNATIVES (for Theme Customizer)
301
+ * ═══════════════════════════════════════════════════════════════════════ */
302
+
303
+ /* --- Slate Scale (Cool blue-gray) --- */
304
+ --slate-0: #f8fafc;
305
+ --slate-1: #f1f5f9;
306
+ --slate-2: #e2e8f0;
307
+ --slate-3: #cbd5e1;
308
+ --slate-4: #94a3b8;
309
+ --slate-5: #64748b;
310
+ --slate-6: #475569;
311
+ --slate-7: #334155;
312
+ --slate-8: #1e293b;
313
+ --slate-9: #0f172a;
314
+
315
+ /* --- Zinc Scale (Slightly warm gray) --- */
316
+ --zinc-0: #fafafa;
317
+ --zinc-1: #f4f4f5;
318
+ --zinc-2: #e4e4e7;
319
+ --zinc-3: #d4d4d8;
320
+ --zinc-4: #a1a1aa;
321
+ --zinc-5: #71717a;
322
+ --zinc-6: #52525b;
323
+ --zinc-7: #3f3f46;
324
+ --zinc-8: #27272a;
325
+ --zinc-9: #18181b;
326
+
327
+ /* --- Neutral Scale (True neutral) --- */
328
+ --neutral-0: #fafafa;
329
+ --neutral-1: #f5f5f5;
330
+ --neutral-2: #e5e5e5;
331
+ --neutral-3: #d4d4d4;
332
+ --neutral-4: #a3a3a3;
333
+ --neutral-5: #737373;
334
+ --neutral-6: #525252;
335
+ --neutral-7: #404040;
336
+ --neutral-8: #262626;
337
+ --neutral-9: #171717;
338
+
339
+ /* --- Stone Scale (Warm beige-gray) --- */
340
+ --stone-0: #fafaf9;
341
+ --stone-1: #f5f5f4;
342
+ --stone-2: #e7e5e4;
343
+ --stone-3: #d6d3d1;
344
+ --stone-4: #a8a29e;
345
+ --stone-5: #78716c;
346
+ --stone-6: #57534e;
347
+ --stone-7: #44403c;
348
+ --stone-8: #292524;
349
+ --stone-9: #1c1917;
350
+
351
+ /* ═══════════════════════════════════════════════════════════════════════
352
+ * SEMANTIC ALIASES
353
+ * Backward-compatible names mapped to Open Color scales
354
+ * ═══════════════════════════════════════════════════════════════════════ */
355
+
356
+ /* Primary Brand */
357
+ --color-primary: var(--primary-5);
358
+ --color-primary-light: var(--primary-3);
359
+ --color-primary-dark: var(--primary-7);
360
+ --color-primary-hover: var(--primary-6);
361
+ --color-primary-active: var(--primary-7);
362
+
363
+ /* Secondary */
364
+ --color-secondary: var(--secondary-5);
365
+ --color-secondary-light: var(--secondary-3);
366
+ --color-secondary-dark: var(--secondary-7);
367
+ --color-secondary-hover: var(--secondary-6);
368
+ --color-secondary-active: var(--secondary-7);
369
+
370
+ /* Accent - Same as primary for Vanduo */
371
+ --color-accent: var(--primary-5);
372
+ --color-accent-light: var(--primary-3);
373
+ --color-accent-dark: var(--primary-7);
374
+
375
+ /* Semantic - Success */
376
+ --color-success: var(--success-6);
377
+ --color-success-light: var(--success-4);
378
+ --color-success-dark: var(--success-7);
379
+ --color-success-hover: var(--success-7);
380
+ --color-success-active: var(--success-8);
381
+
382
+ /* Semantic - Warning */
383
+ --color-warning: var(--warning-6);
384
+ --color-warning-light: var(--warning-4);
385
+ --color-warning-dark: var(--warning-7);
386
+ --color-warning-hover: var(--warning-7);
387
+ --color-warning-active: var(--warning-8);
388
+
389
+ /* Semantic - Error/Danger */
390
+ --color-error: var(--danger-6);
391
+ --color-error-light: var(--danger-4);
392
+ --color-error-dark: var(--danger-7);
393
+ --color-error-hover: var(--danger-7);
394
+ --color-error-active: var(--danger-8);
395
+
396
+ /* Semantic - Info */
397
+ --color-info: var(--info-6);
398
+ --color-info-light: var(--info-4);
399
+ --color-info-dark: var(--info-7);
400
+ --color-info-hover: var(--info-7);
401
+ --color-info-active: var(--info-8);
402
+
403
+ /* Base Colors */
404
+ --color-white: #ffffff;
405
+ --color-black: #000000;
406
+
407
+ /* Legacy Gray Aliases (for backward compatibility) */
408
+ --color-gray-50: var(--gray-0);
409
+ --color-gray-100: var(--gray-2);
410
+ --color-gray-200: var(--gray-3);
411
+ --color-gray-300: var(--gray-4);
412
+ --color-gray-400: var(--gray-5);
413
+ --color-gray-500: var(--gray-6);
414
+ --color-gray-600: var(--gray-7);
415
+ --color-gray-700: var(--gray-8);
416
+ --color-gray-800: var(--gray-9);
417
+ --color-gray-900: #1a1d20;
418
+ /* Slightly darker than gray-9 */
419
+
420
+ /* ═══════════════════════════════════════════════════════════════════════
421
+ * APPLICATION-SPECIFIC VARIABLES
422
+ * ═══════════════════════════════════════════════════════════════════════ */
423
+
424
+ /* Background Colors */
425
+ --bg-primary: var(--color-white);
426
+ --bg-secondary: var(--gray-0);
427
+ --bg-tertiary: var(--gray-1);
428
+ --bg-dark: var(--gray-8);
429
+ --bg-darker: var(--gray-9);
430
+
431
+ /* Text Colors */
432
+ --text-primary: var(--gray-8);
433
+ --text-secondary: var(--gray-7);
434
+ --text-muted: var(--gray-5);
435
+ --text-light: var(--gray-4);
436
+ --text-inverse: var(--color-white);
437
+
438
+ /* Border Colors */
439
+ --border-color: var(--gray-3);
440
+ --border-color-light: var(--gray-2);
441
+ --border-color-dark: var(--gray-4);
442
+
443
+ /* Alpha Colors (for hover/active states) - indigo */
444
+ --color-primary-alpha-10: rgba(92, 124, 250, 0.1);
445
+ --color-primary-alpha-20: rgba(92, 124, 250, 0.2);
446
+ --color-secondary-alpha-10: rgba(32, 201, 151, 0.1);
447
+ --color-secondary-alpha-20: rgba(32, 201, 151, 0.2);
448
+ --color-success-alpha-10: rgba(64, 192, 87, 0.1);
449
+ --color-success-alpha-20: rgba(64, 192, 87, 0.2);
450
+ --color-error-alpha-10: rgba(250, 82, 82, 0.1);
451
+ --color-error-alpha-20: rgba(250, 82, 82, 0.2);
452
+ --color-warning-alpha-10: rgba(250, 176, 5, 0.1);
453
+ --color-warning-alpha-20: rgba(250, 176, 5, 0.2);
454
+ --color-info-alpha-10: rgba(34, 139, 230, 0.1);
455
+ --color-info-alpha-20: rgba(34, 139, 230, 0.2);
456
+ }
457
+
458
+ /* ═════════════════════════════════════════════════════════════════════════
459
+ * BACKGROUND COLOR UTILITIES
460
+ * ═════════════════════════════════════════════════════════════════════════ */
461
+
462
+ .vd-bg-primary,
463
+ .bg-primary {
464
+ background-color: var(--color-primary);
465
+ }
466
+
467
+ .vd-bg-secondary,
468
+ .bg-secondary {
469
+ background-color: var(--color-secondary);
470
+ }
471
+
472
+ .vd-bg-accent,
473
+ .bg-accent {
474
+ background-color: var(--color-accent);
475
+ }
476
+
477
+ .vd-bg-success,
478
+ .bg-success {
479
+ background-color: var(--color-success);
480
+ }
481
+
482
+ .vd-bg-warning,
483
+ .bg-warning {
484
+ background-color: var(--color-warning);
485
+ }
486
+
487
+ .vd-bg-error,
488
+ .bg-error {
489
+ background-color: var(--color-error);
490
+ }
491
+
492
+ .vd-bg-info,
493
+ .bg-info {
494
+ background-color: var(--color-info);
495
+ }
496
+
497
+ .vd-bg-white,
498
+ .bg-white {
499
+ background-color: var(--color-white);
500
+ }
501
+
502
+ .vd-bg-black,
503
+ .bg-black {
504
+ background-color: var(--color-black);
505
+ }
506
+
507
+ .vd-bg-dark,
508
+ .bg-dark {
509
+ background-color: var(--bg-dark);
510
+ }
511
+
512
+ .vd-bg-light,
513
+ .bg-light {
514
+ background-color: var(--bg-secondary);
515
+ }
516
+
517
+ /* ═════════════════════════════════════════════════════════════════════════
518
+ * TEXT COLOR UTILITIES
519
+ * ═════════════════════════════════════════════════════════════════════════ */
520
+
521
+ .vd-text-primary {
522
+ color: var(--color-primary);
523
+ }
524
+
525
+ .vd-text-secondary {
526
+ color: var(--text-secondary);
527
+ }
528
+
529
+ .vd-text-success {
530
+ color: var(--color-success);
531
+ }
532
+
533
+ .vd-text-warning {
534
+ color: var(--color-warning);
535
+ }
536
+
537
+ .vd-text-error {
538
+ color: var(--color-error);
539
+ }
540
+
541
+ .vd-text-info {
542
+ color: var(--color-info);
543
+ }
544
+
545
+ .vd-text-white {
546
+ color: var(--color-white);
547
+ }
548
+
549
+ .vd-text-black {
550
+ color: var(--color-black);
551
+ }
552
+
553
+ .vd-text-muted {
554
+ color: var(--text-muted);
555
+ }
556
+
557
+ .vd-text-light {
558
+ color: var(--text-light);
559
+ }
560
+
561
+ .vd-text-inverse {
562
+ color: var(--text-inverse);
563
+ }
564
+
565
+ /* ═════════════════════════════════════════════════════════════════════════
566
+ * BORDER COLOR UTILITIES
567
+ * ═════════════════════════════════════════════════════════════════════════ */
568
+
569
+ .vd-border-primary,
570
+ .border-primary {
571
+ border-color: var(--color-primary);
572
+ }
573
+
574
+ .vd-border-secondary,
575
+ .border-secondary {
576
+ border-color: var(--color-secondary);
577
+ }
578
+
579
+ .vd-border-success,
580
+ .border-success {
581
+ border-color: var(--color-success);
582
+ }
583
+
584
+ .vd-border-warning,
585
+ .border-warning {
586
+ border-color: var(--color-warning);
587
+ }
588
+
589
+ .vd-border-error,
590
+ .border-error {
591
+ border-color: var(--color-error);
592
+ }
593
+
594
+ .vd-border-info,
595
+ .border-info {
596
+ border-color: var(--color-info);
597
+ }
598
+
599
+ .vd-border-light,
600
+ .border-light {
601
+ border-color: var(--border-color-light);
602
+ }
603
+
604
+ .vd-border-dark,
605
+ .border-dark {
606
+ border-color: var(--border-color-dark);
607
+ }
608
+
609
+ /* ═════════════════════════════════════════════════════════════════════════
610
+ * DARK THEME OVERRIDES
611
+ * ═════════════════════════════════════════════════════════════════════════ */
612
+
613
+ [data-theme="dark"] {
614
+ /* Background Colors */
615
+ --bg-primary: var(--gray-9);
616
+ --bg-secondary: var(--gray-8);
617
+ --bg-tertiary: var(--gray-7);
618
+ --bg-dark: var(--color-black);
619
+ --bg-darker: #000000;
620
+
621
+ /* Text Colors */
622
+ --text-primary: var(--gray-0);
623
+ --text-secondary: var(--gray-3);
624
+ --text-muted: var(--gray-4);
625
+ --text-light: var(--gray-5);
626
+ --text-inverse: var(--gray-9);
627
+
628
+ /* Border Colors */
629
+ --border-color: var(--gray-7);
630
+ --border-color-light: var(--gray-8);
631
+ --border-color-dark: var(--gray-6);
632
+
633
+ /* Primary - Slightly brighter for dark backgrounds */
634
+ --color-primary: var(--primary-4);
635
+ --color-primary-light: var(--primary-3);
636
+ --color-primary-dark: var(--primary-5);
637
+ --color-primary-hover: var(--primary-5);
638
+ --color-primary-active: var(--primary-6);
639
+
640
+ /* Secondary */
641
+ --color-secondary: var(--secondary-4);
642
+ --color-secondary-hover: var(--secondary-5);
643
+
644
+ /* Alpha Colors for Dark Mode - indigo */
645
+ --color-primary-alpha-10: rgba(116, 143, 252, 0.15);
646
+ --color-primary-alpha-20: rgba(116, 143, 252, 0.25);
647
+ }
648
+
649
+ @media (prefers-color-scheme: dark) {
650
+ :root:not([data-theme]) {
651
+ /* Background Colors */
652
+ --bg-primary: var(--gray-9);
653
+ --bg-secondary: var(--gray-8);
654
+ --bg-tertiary: var(--gray-7);
655
+ --bg-dark: var(--color-black);
656
+ --bg-darker: #000000;
657
+
658
+ /* Text Colors */
659
+ --text-primary: var(--gray-0);
660
+ --text-secondary: var(--gray-3);
661
+ --text-muted: var(--gray-4);
662
+ --text-light: var(--gray-5);
663
+ --text-inverse: var(--gray-9);
664
+
665
+ /* Border Colors */
666
+ --border-color: var(--gray-7);
667
+ --border-color-light: var(--gray-8);
668
+ --border-color-dark: var(--gray-6);
669
+
670
+ /* Primary - Slightly brighter for dark backgrounds */
671
+ --color-primary: var(--primary-4);
672
+ --color-primary-light: var(--primary-3);
673
+ --color-primary-dark: var(--primary-5);
674
+ --color-primary-hover: var(--primary-5);
675
+ --color-primary-active: var(--primary-6);
676
+
677
+ /* Secondary */
678
+ --color-secondary: var(--secondary-4);
679
+ --color-secondary-hover: var(--secondary-5);
680
+
681
+ /* Alpha Colors for Dark Mode - indigo */
682
+ --color-primary-alpha-10: rgba(116, 143, 252, 0.15);
683
+ --color-primary-alpha-20: rgba(116, 143, 252, 0.25);
684
+ }
685
+ }
686
+
687
+ /* ═════════════════════════════════════════════════════════════════════════
688
+ * DYNAMIC PRIMARY COLOR SWITCHING (Theme Customizer)
689
+ * These rules remap --primary-* variables based on [data-primary] attribute
690
+ * ═════════════════════════════════════════════════════════════════════════ */
691
+
692
+ /* Red Primary */
693
+ [data-primary="red"] {
694
+ --primary-0: var(--red-0);
695
+ --primary-1: var(--red-1);
696
+ --primary-2: var(--red-2);
697
+ --primary-3: var(--red-3);
698
+ --primary-4: var(--red-4);
699
+ --primary-5: var(--red-5);
700
+ --primary-6: var(--red-6);
701
+ --primary-7: var(--red-7);
702
+ --primary-8: var(--red-8);
703
+ --primary-9: var(--red-9);
704
+ }
705
+
706
+ /* Orange Primary */
707
+ [data-primary="orange"] {
708
+ --primary-0: var(--orange-0);
709
+ --primary-1: var(--orange-1);
710
+ --primary-2: var(--orange-2);
711
+ --primary-3: var(--orange-3);
712
+ --primary-4: var(--orange-4);
713
+ --primary-5: var(--orange-5);
714
+ --primary-6: var(--orange-6);
715
+ --primary-7: var(--orange-7);
716
+ --primary-8: var(--orange-8);
717
+ --primary-9: var(--orange-9);
718
+ }
719
+
720
+ /* Amber Primary (using yellow with warmer tones) */
721
+ [data-primary="amber"] {
722
+ --primary-0: #fffbeb;
723
+ --primary-1: #fef3c7;
724
+ --primary-2: #fde68a;
725
+ --primary-3: #fcd34d;
726
+ --primary-4: #fbbf24;
727
+ --primary-5: #f59e0b;
728
+ --primary-6: #d97706;
729
+ --primary-7: #b45309;
730
+ --primary-8: #92400e;
731
+ --primary-9: #78350f;
732
+ }
733
+
734
+ /* Yellow Primary */
735
+ [data-primary="yellow"] {
736
+ --primary-0: var(--yellow-0);
737
+ --primary-1: var(--yellow-1);
738
+ --primary-2: var(--yellow-2);
739
+ --primary-3: var(--yellow-3);
740
+ --primary-4: var(--yellow-4);
741
+ --primary-5: var(--yellow-5);
742
+ --primary-6: var(--yellow-6);
743
+ --primary-7: var(--yellow-7);
744
+ --primary-8: var(--yellow-8);
745
+ --primary-9: var(--yellow-9);
746
+ }
747
+
748
+ /* Lime Primary */
749
+ [data-primary="lime"] {
750
+ --primary-0: var(--lime-0);
751
+ --primary-1: var(--lime-1);
752
+ --primary-2: var(--lime-2);
753
+ --primary-3: var(--lime-3);
754
+ --primary-4: var(--lime-4);
755
+ --primary-5: var(--lime-5);
756
+ --primary-6: var(--lime-6);
757
+ --primary-7: var(--lime-7);
758
+ --primary-8: var(--lime-8);
759
+ --primary-9: var(--lime-9);
760
+ }
761
+
762
+ /* Green Primary */
763
+ [data-primary="green"] {
764
+ --primary-0: var(--green-0);
765
+ --primary-1: var(--green-1);
766
+ --primary-2: var(--green-2);
767
+ --primary-3: var(--green-3);
768
+ --primary-4: var(--green-4);
769
+ --primary-5: var(--green-5);
770
+ --primary-6: var(--green-6);
771
+ --primary-7: var(--green-7);
772
+ --primary-8: var(--green-8);
773
+ --primary-9: var(--green-9);
774
+ }
775
+
776
+ /* Emerald Primary (slightly different green) */
777
+ [data-primary="emerald"] {
778
+ --primary-0: #ecfdf5;
779
+ --primary-1: #d1fae5;
780
+ --primary-2: #a7f3d0;
781
+ --primary-3: #6ee7b7;
782
+ --primary-4: #34d399;
783
+ --primary-5: #10b981;
784
+ --primary-6: #059669;
785
+ --primary-7: #047857;
786
+ --primary-8: #065f46;
787
+ --primary-9: #064e3b;
788
+ }
789
+
790
+ /* Teal Primary */
791
+ [data-primary="teal"] {
792
+ --primary-0: var(--teal-0);
793
+ --primary-1: var(--teal-1);
794
+ --primary-2: var(--teal-2);
795
+ --primary-3: var(--teal-3);
796
+ --primary-4: var(--teal-4);
797
+ --primary-5: var(--teal-5);
798
+ --primary-6: var(--teal-6);
799
+ --primary-7: var(--teal-7);
800
+ --primary-8: var(--teal-8);
801
+ --primary-9: var(--teal-9);
802
+ }
803
+
804
+ /* Cyan Primary (default - no override needed, but included for completeness) */
805
+ [data-primary="cyan"] {
806
+ --primary-0: var(--cyan-0);
807
+ --primary-1: var(--cyan-1);
808
+ --primary-2: var(--cyan-2);
809
+ --primary-3: var(--cyan-3);
810
+ --primary-4: var(--cyan-4);
811
+ --primary-5: var(--cyan-5);
812
+ --primary-6: var(--cyan-6);
813
+ --primary-7: var(--cyan-7);
814
+ --primary-8: var(--cyan-8);
815
+ --primary-9: var(--cyan-9);
816
+ }
817
+
818
+ /* Sky Primary */
819
+ [data-primary="sky"] {
820
+ --primary-0: #f0f9ff;
821
+ --primary-1: #e0f2fe;
822
+ --primary-2: #bae6fd;
823
+ --primary-3: #7dd3fc;
824
+ --primary-4: #38bdf8;
825
+ --primary-5: #0ea5e9;
826
+ --primary-6: #0284c7;
827
+ --primary-7: #0369a1;
828
+ --primary-8: #075985;
829
+ --primary-9: #0c4a6e;
830
+ }
831
+
832
+ /* Blue Primary */
833
+ [data-primary="blue"] {
834
+ --primary-0: var(--blue-0);
835
+ --primary-1: var(--blue-1);
836
+ --primary-2: var(--blue-2);
837
+ --primary-3: var(--blue-3);
838
+ --primary-4: var(--blue-4);
839
+ --primary-5: var(--blue-5);
840
+ --primary-6: var(--blue-6);
841
+ --primary-7: var(--blue-7);
842
+ --primary-8: var(--blue-8);
843
+ --primary-9: var(--blue-9);
844
+ }
845
+
846
+ /* Indigo Primary */
847
+ [data-primary="indigo"] {
848
+ --primary-0: var(--indigo-0);
849
+ --primary-1: var(--indigo-1);
850
+ --primary-2: var(--indigo-2);
851
+ --primary-3: var(--indigo-3);
852
+ --primary-4: var(--indigo-4);
853
+ --primary-5: var(--indigo-5);
854
+ --primary-6: var(--indigo-6);
855
+ --primary-7: var(--indigo-7);
856
+ --primary-8: var(--indigo-8);
857
+ --primary-9: var(--indigo-9);
858
+ }
859
+
860
+ /* Violet Primary */
861
+ [data-primary="violet"] {
862
+ --primary-0: var(--violet-0);
863
+ --primary-1: var(--violet-1);
864
+ --primary-2: var(--violet-2);
865
+ --primary-3: var(--violet-3);
866
+ --primary-4: var(--violet-4);
867
+ --primary-5: var(--violet-5);
868
+ --primary-6: var(--violet-6);
869
+ --primary-7: var(--violet-7);
870
+ --primary-8: var(--violet-8);
871
+ --primary-9: var(--violet-9);
872
+ }
873
+
874
+ /* Purple Primary (using grape) */
875
+ [data-primary="purple"] {
876
+ --primary-0: var(--grape-0);
877
+ --primary-1: var(--grape-1);
878
+ --primary-2: var(--grape-2);
879
+ --primary-3: var(--grape-3);
880
+ --primary-4: var(--grape-4);
881
+ --primary-5: var(--grape-5);
882
+ --primary-6: var(--grape-6);
883
+ --primary-7: var(--grape-7);
884
+ --primary-8: var(--grape-8);
885
+ --primary-9: var(--grape-9);
886
+ }
887
+
888
+ /* Fuchsia Primary */
889
+ [data-primary="fuchsia"] {
890
+ --primary-0: #fdf4ff;
891
+ --primary-1: #fae8ff;
892
+ --primary-2: #f5d0fe;
893
+ --primary-3: #f0abfc;
894
+ --primary-4: #e879f9;
895
+ --primary-5: #d946ef;
896
+ --primary-6: #c026d3;
897
+ --primary-7: #a21caf;
898
+ --primary-8: #86198f;
899
+ --primary-9: #701a75;
900
+ }
901
+
902
+ /* Pink Primary */
903
+ [data-primary="pink"] {
904
+ --primary-0: var(--pink-0);
905
+ --primary-1: var(--pink-1);
906
+ --primary-2: var(--pink-2);
907
+ --primary-3: var(--pink-3);
908
+ --primary-4: var(--pink-4);
909
+ --primary-5: var(--pink-5);
910
+ --primary-6: var(--pink-6);
911
+ --primary-7: var(--pink-7);
912
+ --primary-8: var(--pink-8);
913
+ --primary-9: var(--pink-9);
914
+ }
915
+
916
+ /* Rose Primary */
917
+ [data-primary="rose"] {
918
+ --primary-0: #fff1f2;
919
+ --primary-1: #ffe4e6;
920
+ --primary-2: #fecdd3;
921
+ --primary-3: #fda4af;
922
+ --primary-4: #fb7185;
923
+ --primary-5: #f43f5e;
924
+ --primary-6: #e11d48;
925
+ --primary-7: #be123c;
926
+ --primary-8: #9f1239;
927
+ --primary-9: #881337;
928
+ }
929
+
930
+ /* Black Primary (grayscale) */
931
+ [data-primary="black"] {
932
+ --primary-0: #fafafa;
933
+ --primary-1: #f5f5f5;
934
+ --primary-2: #e5e5e5;
935
+ --primary-3: #d4d4d4;
936
+ --primary-4: #a3a3a3;
937
+ --primary-5: #525252;
938
+ --primary-6: #404040;
939
+ --primary-7: #262626;
940
+ --primary-8: #171717;
941
+ --primary-9: #0a0a0a;
942
+ }
943
+
944
+ /* ═════════════════════════════════════════════════════════════════════════
945
+ * DYNAMIC NEUTRAL COLOR SWITCHING (Theme Customizer)
946
+ * These rules remap --gray-* variables based on [data-neutral] attribute
947
+ * ═════════════════════════════════════════════════════════════════════════ */
948
+
949
+ /* Gray Neutral (default - no override needed) */
950
+ [data-neutral="gray"] {
951
+ --gray-0: #f8f9fa;
952
+ --gray-1: #f1f3f5;
953
+ --gray-2: #e9ecef;
954
+ --gray-3: #dee2e6;
955
+ --gray-4: #ced4da;
956
+ --gray-5: #adb5bd;
957
+ --gray-6: #868e96;
958
+ --gray-7: #495057;
959
+ --gray-8: #343a40;
960
+ --gray-9: #212529;
961
+ }
962
+
963
+ /* Slate Neutral */
964
+ [data-neutral="slate"] {
965
+ --gray-0: var(--slate-0);
966
+ --gray-1: var(--slate-1);
967
+ --gray-2: var(--slate-2);
968
+ --gray-3: var(--slate-3);
969
+ --gray-4: var(--slate-4);
970
+ --gray-5: var(--slate-5);
971
+ --gray-6: var(--slate-6);
972
+ --gray-7: var(--slate-7);
973
+ --gray-8: var(--slate-8);
974
+ --gray-9: var(--slate-9);
975
+ }
976
+
977
+ /* Zinc Neutral */
978
+ [data-neutral="zinc"] {
979
+ --gray-0: var(--zinc-0);
980
+ --gray-1: var(--zinc-1);
981
+ --gray-2: var(--zinc-2);
982
+ --gray-3: var(--zinc-3);
983
+ --gray-4: var(--zinc-4);
984
+ --gray-5: var(--zinc-5);
985
+ --gray-6: var(--zinc-6);
986
+ --gray-7: var(--zinc-7);
987
+ --gray-8: var(--zinc-8);
988
+ --gray-9: var(--zinc-9);
989
+ }
990
+
991
+ /* Neutral (true neutral) */
992
+ [data-neutral="neutral"] {
993
+ --gray-0: var(--neutral-0);
994
+ --gray-1: var(--neutral-1);
995
+ --gray-2: var(--neutral-2);
996
+ --gray-3: var(--neutral-3);
997
+ --gray-4: var(--neutral-4);
998
+ --gray-5: var(--neutral-5);
999
+ --gray-6: var(--neutral-6);
1000
+ --gray-7: var(--neutral-7);
1001
+ --gray-8: var(--neutral-8);
1002
+ --gray-9: var(--neutral-9);
1003
+ }
1004
+
1005
+ /* Stone Neutral */
1006
+ [data-neutral="stone"] {
1007
+ --gray-0: var(--stone-0);
1008
+ --gray-1: var(--stone-1);
1009
+ --gray-2: var(--stone-2);
1010
+ --gray-3: var(--stone-3);
1011
+ --gray-4: var(--stone-4);
1012
+ --gray-5: var(--stone-5);
1013
+ --gray-6: var(--stone-6);
1014
+ --gray-7: var(--stone-7);
1015
+ --gray-8: var(--stone-8);
1016
+ --gray-9: var(--stone-9);
1017
+ }