@vanduo-oss/framework 1.3.9 → 1.4.1

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 (124) hide show
  1. package/README.md +89 -42
  2. package/css/components/affix.css +12 -12
  3. package/css/components/alerts.css +70 -70
  4. package/css/components/avatar.css +78 -78
  5. package/css/components/badges.css +67 -67
  6. package/css/components/breadcrumbs.css +32 -32
  7. package/css/components/bubble.css +40 -40
  8. package/css/components/button-group.css +2 -2
  9. package/css/components/buttons.css +157 -157
  10. package/css/components/cards.css +79 -79
  11. package/css/components/chips.css +50 -50
  12. package/css/components/code-snippet.css +132 -132
  13. package/css/components/collapsible.css +67 -67
  14. package/css/components/collections.css +68 -68
  15. package/css/components/datepicker.css +54 -54
  16. package/css/components/doc-search.css +96 -103
  17. package/css/components/doc-tabs.css +11 -11
  18. package/css/components/draggable.css +77 -77
  19. package/css/components/dropdown.css +50 -50
  20. package/css/components/expanding-cards.css +1 -1
  21. package/css/components/fab.css +61 -61
  22. package/css/components/flow.css +55 -55
  23. package/css/components/footer.css +62 -62
  24. package/css/components/forms.css +437 -425
  25. package/css/components/image-box.css +50 -54
  26. package/css/components/modals.css +51 -51
  27. package/css/components/music-player.css +150 -150
  28. package/css/components/navbar.css +80 -80
  29. package/css/components/pagination.css +51 -51
  30. package/css/components/preloader.css +19 -19
  31. package/css/components/progress.css +20 -20
  32. package/css/components/rating.css +19 -19
  33. package/css/components/ripple.css +10 -10
  34. package/css/components/sidenav.css +72 -72
  35. package/css/components/skeleton.css +17 -16
  36. package/css/components/spinner.css +33 -33
  37. package/css/components/spotlight.css +33 -33
  38. package/css/components/stepper.css +39 -39
  39. package/css/components/suggest.css +37 -37
  40. package/css/components/tabs.css +60 -60
  41. package/css/components/theme-customizer.css +154 -154
  42. package/css/components/timeline.css +50 -50
  43. package/css/components/timepicker.css +29 -29
  44. package/css/components/toast.css +53 -53
  45. package/css/components/tooltips.css +78 -78
  46. package/css/components/transfer.css +37 -37
  47. package/css/components/tree.css +28 -28
  48. package/css/components/waypoint.css +12 -12
  49. package/css/core/colors.css +640 -640
  50. package/css/core/grid.css +127 -132
  51. package/css/core/helpers.css +349 -349
  52. package/css/core/tokens.css +133 -67
  53. package/css/core/typography.css +105 -103
  54. package/css/effects/morph.css +21 -21
  55. package/css/effects/parallax.css +6 -6
  56. package/css/utilities/color-utilities.css +273 -273
  57. package/css/utilities/media.css +4 -4
  58. package/css/utilities/shadow.css +75 -75
  59. package/css/utilities/table.css +64 -64
  60. package/css/utilities/transitions.css +53 -41
  61. package/css/vanduo.css +14 -35
  62. package/dist/build-info.json +3 -3
  63. package/dist/vanduo.cjs.js +947 -307
  64. package/dist/vanduo.cjs.js.map +3 -3
  65. package/dist/vanduo.cjs.min.js +7 -7
  66. package/dist/vanduo.cjs.min.js.map +3 -3
  67. package/dist/vanduo.css +9650 -9656
  68. package/dist/vanduo.css.map +1 -1
  69. package/dist/vanduo.esm.js +947 -307
  70. package/dist/vanduo.esm.js.map +3 -3
  71. package/dist/vanduo.esm.min.js +7 -7
  72. package/dist/vanduo.esm.min.js.map +3 -3
  73. package/dist/vanduo.js +947 -307
  74. package/dist/vanduo.js.map +3 -3
  75. package/dist/vanduo.min.css +2 -2
  76. package/dist/vanduo.min.css.map +1 -1
  77. package/dist/vanduo.min.js +7 -7
  78. package/dist/vanduo.min.js.map +3 -3
  79. package/js/components/affix.js +4 -4
  80. package/js/components/bubble.js +3 -3
  81. package/js/components/code-snippet.js +129 -5
  82. package/js/components/collapsible.js +2 -3
  83. package/js/components/datepicker.js +2 -2
  84. package/js/components/doc-search.js +69 -11
  85. package/js/components/draggable.js +4 -4
  86. package/js/components/dropdown.js +2 -3
  87. package/js/components/expanding-cards.js +2 -2
  88. package/js/components/flow.js +2 -2
  89. package/js/components/font-switcher.js +23 -13
  90. package/js/components/glass.js +2 -2
  91. package/js/components/grid.js +19 -8
  92. package/js/components/image-box.js +51 -12
  93. package/js/components/lazy-load.js +81 -9
  94. package/js/components/modals.js +28 -12
  95. package/js/components/morph.js +3 -3
  96. package/js/components/music-player.js +13 -13
  97. package/js/components/navbar.js +3 -3
  98. package/js/components/pagination.js +2 -3
  99. package/js/components/parallax.js +9 -10
  100. package/js/components/preloader.js +15 -6
  101. package/js/components/rating.js +2 -2
  102. package/js/components/ripple.js +2 -2
  103. package/js/components/select.js +2 -3
  104. package/js/components/sidenav.js +43 -14
  105. package/js/components/spotlight.js +2 -2
  106. package/js/components/stepper.js +2 -2
  107. package/js/components/suggest.js +9 -3
  108. package/js/components/tabs.js +2 -2
  109. package/js/components/theme-customizer.js +155 -25
  110. package/js/components/theme-switcher.js +27 -16
  111. package/js/components/timeline.js +41 -12
  112. package/js/components/timepicker.js +2 -2
  113. package/js/components/toast.js +1 -1
  114. package/js/components/tooltips.js +4 -4
  115. package/js/components/transfer.js +2 -2
  116. package/js/components/tree.js +2 -2
  117. package/js/components/validate.js +2 -2
  118. package/js/components/vd-hex.js +10 -6
  119. package/js/components/waypoint.js +2 -2
  120. package/js/utils/helpers.js +7 -4
  121. package/js/utils/lifecycle.js +158 -83
  122. package/js/vanduo.js +203 -34
  123. package/package.json +2 -1
  124. package/css/core/vd-aliases.css +0 -60
@@ -5,15 +5,15 @@
5
5
 
6
6
  :root {
7
7
  /* Theme Customizer Variables */
8
- --customizer-width: 320px;
9
- --customizer-padding: 1rem;
10
- --customizer-gap: 0.75rem;
11
- --customizer-swatch-size: 28px;
12
- --customizer-radius-btn-width: 48px;
13
- --customizer-bg: var(--bg-primary);
14
- --customizer-border: var(--border-color);
15
- --customizer-shadow: var(--shadow-lg);
16
- --customizer-z-index: 1050;
8
+ --vd-customizer-width: 320px;
9
+ --vd-customizer-padding: 1rem;
10
+ --vd-customizer-gap: 0.75rem;
11
+ --vd-customizer-swatch-size: 28px;
12
+ --vd-customizer-radius-btn-width: 48px;
13
+ --vd-customizer-bg: var(--vd-bg-primary);
14
+ --vd-customizer-border: var(--vd-border-color);
15
+ --vd-customizer-shadow: var(--vd-shadow-lg);
16
+ --vd-customizer-z-index: 1050;
17
17
  }
18
18
 
19
19
  /* ==========================================================================
@@ -25,15 +25,15 @@ body > .vd-theme-customizer-panel {
25
25
  /* top is set dynamically by JS based on actual navbar height */
26
26
  top: 55px;
27
27
  right: 0;
28
- width: var(--customizer-width);
28
+ width: var(--vd-customizer-width);
29
29
  max-height: calc(100vh - 55px);
30
30
  overflow-y: auto;
31
31
  padding: 0; /* Override .vd-navbar-fixed ~ * padding-top rule */
32
- background-color: var(--customizer-bg);
33
- border: 1px solid var(--customizer-border);
34
- border-radius: calc(var(--radius-scale, 0.25) * 1rem);
35
- box-shadow: var(--customizer-shadow);
36
- z-index: var(--customizer-z-index);
32
+ background-color: var(--vd-customizer-bg);
33
+ border: 1px solid var(--vd-customizer-border);
34
+ border-radius: calc(var(--vd-radius-scale, 0.25) * 1rem);
35
+ box-shadow: var(--vd-customizer-shadow);
36
+ z-index: var(--vd-customizer-z-index);
37
37
  opacity: 0;
38
38
  visibility: hidden;
39
39
  transform: translateY(-10px);
@@ -54,24 +54,24 @@ body > .vd-theme-customizer-panel.is-open {
54
54
  display: flex;
55
55
  align-items: center;
56
56
  justify-content: space-between;
57
- padding: 0.5rem var(--customizer-padding) 0.75rem;
58
- border-bottom: 1px solid var(--border-color);
57
+ padding: 0.5rem var(--vd-customizer-padding) 0.75rem;
58
+ border-bottom: 1px solid var(--vd-border-color);
59
59
  }
60
60
 
61
61
  .tc-title {
62
- font-size: var(--font-size-base);
63
- font-weight: var(--font-weight-semibold);
64
- color: var(--text-primary);
62
+ font-size: var(--vd-font-size-base);
63
+ font-weight: var(--vd-font-weight-semibold);
64
+ color: var(--vd-text-primary);
65
65
  margin: 0;
66
66
  }
67
67
 
68
68
  .tc-body {
69
- padding: var(--customizer-padding);
69
+ padding: var(--vd-customizer-padding);
70
70
  }
71
71
 
72
72
  .tc-footer {
73
- padding: 0.75rem var(--customizer-padding) 0.5rem;
74
- border-top: 1px solid var(--border-color);
73
+ padding: 0.75rem var(--vd-customizer-padding) 0.5rem;
74
+ border-top: 1px solid var(--vd-border-color);
75
75
  }
76
76
 
77
77
  .tc-section {
@@ -85,9 +85,9 @@ body > .vd-theme-customizer-panel.is-open {
85
85
  .tc-label {
86
86
  display: block;
87
87
  margin-bottom: 0.5rem;
88
- font-size: var(--font-size-sm);
89
- font-weight: var(--font-weight-medium);
90
- color: var(--text-primary);
88
+ font-size: var(--vd-font-size-sm);
89
+ font-weight: var(--vd-font-weight-medium);
90
+ color: var(--vd-text-primary);
91
91
  }
92
92
 
93
93
  /* Primary Color Grid */
@@ -101,9 +101,9 @@ body > .vd-theme-customizer-panel.is-open {
101
101
  width: 100%;
102
102
  aspect-ratio: 1;
103
103
  padding: 0;
104
- background-color: var(--swatch-color);
104
+ background-color: var(--vd-swatch-color);
105
105
  border: 2px solid transparent;
106
- border-radius: calc(var(--radius-scale, 0.25) * 0.5rem);
106
+ border-radius: calc(var(--vd-radius-scale, 0.25) * 0.5rem);
107
107
  cursor: pointer;
108
108
  transition: all 0.15s ease;
109
109
  }
@@ -114,13 +114,13 @@ body > .vd-theme-customizer-panel.is-open {
114
114
  }
115
115
 
116
116
  .tc-color-swatch:focus-visible {
117
- outline: 2px solid var(--color-primary);
117
+ outline: 2px solid var(--vd-color-primary);
118
118
  outline-offset: 2px;
119
119
  }
120
120
 
121
121
  .tc-color-swatch.is-active {
122
- border-color: var(--text-primary);
123
- box-shadow: 0 0 0 2px var(--bg-primary);
122
+ border-color: var(--vd-text-primary);
123
+ box-shadow: 0 0 0 2px var(--vd-bg-primary);
124
124
  }
125
125
 
126
126
  /* Neutral Color Grid */
@@ -137,8 +137,8 @@ body > .vd-theme-customizer-panel.is-open {
137
137
  gap: 0.25rem;
138
138
  padding: 0.5rem 0.25rem;
139
139
  background: transparent;
140
- border: 1px solid var(--border-color);
141
- border-radius: calc(var(--radius-scale, 0.25) * 0.5rem);
140
+ border: 1px solid var(--vd-border-color);
141
+ border-radius: calc(var(--vd-radius-scale, 0.25) * 0.5rem);
142
142
  cursor: pointer;
143
143
  transition: all 0.15s ease;
144
144
  }
@@ -148,28 +148,28 @@ body > .vd-theme-customizer-panel.is-open {
148
148
  width: 16px;
149
149
  height: 16px;
150
150
  border-radius: 50%;
151
- background-color: var(--swatch-color);
151
+ background-color: var(--vd-swatch-color);
152
152
  box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.1);
153
153
  }
154
154
 
155
155
  .tc-neutral-swatch span {
156
- font-size: var(--font-size-xs);
157
- color: var(--text-primary);
156
+ font-size: var(--vd-font-size-xs);
157
+ color: var(--vd-text-primary);
158
158
  }
159
159
 
160
160
  .tc-neutral-swatch:hover {
161
- background-color: var(--bg-secondary);
162
- border-color: var(--border-color-dark);
161
+ background-color: var(--vd-bg-secondary);
162
+ border-color: var(--vd-border-color-dark);
163
163
  }
164
164
 
165
165
  .tc-neutral-swatch:focus-visible {
166
- outline: 2px solid var(--color-primary);
166
+ outline: 2px solid var(--vd-color-primary);
167
167
  outline-offset: 1px;
168
168
  }
169
169
 
170
170
  .tc-neutral-swatch.is-active {
171
- background-color: var(--bg-secondary);
172
- border-color: var(--text-primary);
171
+ background-color: var(--vd-bg-secondary);
172
+ border-color: var(--vd-text-primary);
173
173
  }
174
174
 
175
175
  /* Radius Group */
@@ -185,20 +185,20 @@ body > .vd-theme-customizer-panel.is-open {
185
185
  justify-content: center;
186
186
  padding: 0.5rem 0.25rem;
187
187
  background: transparent;
188
- border: 1px solid var(--border-color);
189
- color: var(--text-primary);
190
- font-size: var(--font-size-xs);
191
- font-weight: var(--font-weight-medium);
188
+ border: 1px solid var(--vd-border-color);
189
+ color: var(--vd-text-primary);
190
+ font-size: var(--vd-font-size-xs);
191
+ font-weight: var(--vd-font-weight-medium);
192
192
  cursor: pointer;
193
193
  transition: all 0.15s ease;
194
194
  }
195
195
 
196
196
  .tc-radius-btn:first-child {
197
- border-radius: calc(var(--radius-scale, 0.25) * 0.5rem) 0 0 calc(var(--radius-scale, 0.25) * 0.5rem);
197
+ border-radius: calc(var(--vd-radius-scale, 0.25) * 0.5rem) 0 0 calc(var(--vd-radius-scale, 0.25) * 0.5rem);
198
198
  }
199
199
 
200
200
  .tc-radius-btn:last-child {
201
- border-radius: 0 calc(var(--radius-scale, 0.25) * 0.5rem) calc(var(--radius-scale, 0.25) * 0.5rem) 0;
201
+ border-radius: 0 calc(var(--vd-radius-scale, 0.25) * 0.5rem) calc(var(--vd-radius-scale, 0.25) * 0.5rem) 0;
202
202
  }
203
203
 
204
204
  .tc-radius-btn:not(:first-child) {
@@ -206,20 +206,20 @@ body > .vd-theme-customizer-panel.is-open {
206
206
  }
207
207
 
208
208
  .tc-radius-btn:hover {
209
- background-color: var(--bg-secondary);
209
+ background-color: var(--vd-bg-secondary);
210
210
  z-index: 1;
211
211
  }
212
212
 
213
213
  .tc-radius-btn:focus-visible {
214
- outline: 2px solid var(--color-primary);
214
+ outline: 2px solid var(--vd-color-primary);
215
215
  outline-offset: 1px;
216
216
  z-index: 2;
217
217
  }
218
218
 
219
219
  .tc-radius-btn.is-active {
220
- background-color: var(--bg-dark);
221
- border-color: var(--bg-dark);
222
- color: var(--text-inverse);
220
+ background-color: var(--vd-bg-dark);
221
+ border-color: var(--vd-bg-dark);
222
+ color: var(--vd-text-inverse);
223
223
  z-index: 1;
224
224
  }
225
225
 
@@ -227,23 +227,23 @@ body > .vd-theme-customizer-panel.is-open {
227
227
  .tc-font-select {
228
228
  width: 100%;
229
229
  padding: 0.5rem 0.75rem;
230
- background-color: var(--bg-primary);
231
- border: 1px solid var(--border-color);
232
- border-radius: calc(var(--radius-scale, 0.25) * 0.5rem);
233
- color: var(--text-primary);
234
- font-size: var(--font-size-sm);
230
+ background-color: var(--vd-bg-primary);
231
+ border: 1px solid var(--vd-border-color);
232
+ border-radius: calc(var(--vd-radius-scale, 0.25) * 0.5rem);
233
+ color: var(--vd-text-primary);
234
+ font-size: var(--vd-font-size-sm);
235
235
  cursor: pointer;
236
236
  transition: border-color 0.15s ease;
237
237
  }
238
238
 
239
239
  .tc-font-select:hover {
240
- border-color: var(--border-color-dark);
240
+ border-color: var(--vd-border-color-dark);
241
241
  }
242
242
 
243
243
  .tc-font-select:focus {
244
244
  outline: none;
245
- border-color: var(--color-primary);
246
- box-shadow: 0 0 0 3px var(--color-primary-alpha-10);
245
+ border-color: var(--vd-color-primary);
246
+ box-shadow: 0 0 0 3px var(--vd-color-primary-alpha-10);
247
247
  }
248
248
 
249
249
  /* Mode Group */
@@ -260,19 +260,19 @@ body > .vd-theme-customizer-panel.is-open {
260
260
  gap: 0.375rem;
261
261
  padding: 0.5rem 0.5rem;
262
262
  background: transparent;
263
- border: 1px solid var(--border-color);
264
- color: var(--text-primary);
265
- font-size: var(--font-size-xs);
263
+ border: 1px solid var(--vd-border-color);
264
+ color: var(--vd-text-primary);
265
+ font-size: var(--vd-font-size-xs);
266
266
  cursor: pointer;
267
267
  transition: all 0.15s ease;
268
268
  }
269
269
 
270
270
  .tc-mode-btn:first-child {
271
- border-radius: calc(var(--radius-scale, 0.25) * 0.5rem) 0 0 calc(var(--radius-scale, 0.25) * 0.5rem);
271
+ border-radius: calc(var(--vd-radius-scale, 0.25) * 0.5rem) 0 0 calc(var(--vd-radius-scale, 0.25) * 0.5rem);
272
272
  }
273
273
 
274
274
  .tc-mode-btn:last-child {
275
- border-radius: 0 calc(var(--radius-scale, 0.25) * 0.5rem) calc(var(--radius-scale, 0.25) * 0.5rem) 0;
275
+ border-radius: 0 calc(var(--vd-radius-scale, 0.25) * 0.5rem) calc(var(--vd-radius-scale, 0.25) * 0.5rem) 0;
276
276
  }
277
277
 
278
278
  .tc-mode-btn:not(:first-child) {
@@ -280,20 +280,20 @@ body > .vd-theme-customizer-panel.is-open {
280
280
  }
281
281
 
282
282
  .tc-mode-btn:hover {
283
- background-color: var(--bg-secondary);
283
+ background-color: var(--vd-bg-secondary);
284
284
  z-index: 1;
285
285
  }
286
286
 
287
287
  .tc-mode-btn:focus-visible {
288
- outline: 2px solid var(--color-primary);
288
+ outline: 2px solid var(--vd-color-primary);
289
289
  outline-offset: 1px;
290
290
  z-index: 2;
291
291
  }
292
292
 
293
293
  .tc-mode-btn.is-active {
294
- background-color: var(--bg-dark);
295
- border-color: var(--bg-dark);
296
- color: var(--text-inverse);
294
+ background-color: var(--vd-bg-dark);
295
+ border-color: var(--vd-bg-dark);
296
+ color: var(--vd-text-inverse);
297
297
  z-index: 1;
298
298
  }
299
299
 
@@ -319,21 +319,21 @@ body > .vd-theme-customizer-panel.is-open {
319
319
  height: 2.5rem;
320
320
  padding: 0;
321
321
  background: transparent;
322
- border: 1px solid var(--border-color);
323
- border-radius: var(--btn-border-radius);
324
- color: var(--text-primary);
322
+ border: 1px solid var(--vd-border-color);
323
+ border-radius: var(--vd-btn-border-radius);
324
+ color: var(--vd-text-primary);
325
325
  cursor: pointer;
326
326
  transition: all 0.2s ease;
327
327
  }
328
328
 
329
329
  .vd-theme-customizer-trigger:hover {
330
- background-color: var(--bg-secondary);
331
- border-color: var(--color-primary);
332
- color: var(--color-primary);
330
+ background-color: var(--vd-bg-secondary);
331
+ border-color: var(--vd-color-primary);
332
+ color: var(--vd-color-primary);
333
333
  }
334
334
 
335
335
  .vd-theme-customizer-trigger:focus-visible {
336
- outline: 2px solid var(--color-primary);
336
+ outline: 2px solid var(--vd-color-primary);
337
337
  outline-offset: 2px;
338
338
  }
339
339
 
@@ -342,9 +342,9 @@ body > .vd-theme-customizer-panel.is-open {
342
342
  }
343
343
 
344
344
  .vd-theme-customizer-trigger[aria-expanded="true"] {
345
- background-color: var(--color-primary-alpha-10);
346
- border-color: var(--color-primary);
347
- color: var(--color-primary);
345
+ background-color: var(--vd-color-primary-alpha-10);
346
+ border-color: var(--vd-color-primary);
347
+ color: var(--vd-color-primary);
348
348
  }
349
349
 
350
350
  /* ==========================================================================
@@ -356,15 +356,15 @@ body > .vd-theme-customizer-panel.is-open {
356
356
  /* top is set dynamically by JS based on actual navbar height */
357
357
  top: 55px;
358
358
  right: 0;
359
- width: var(--customizer-width);
359
+ width: var(--vd-customizer-width);
360
360
  max-height: calc(100vh - 55px);
361
361
  overflow-y: auto;
362
362
  padding: 0; /* Override .vd-navbar-fixed ~ * padding-top rule */
363
- background-color: var(--customizer-bg);
364
- border: 1px solid var(--customizer-border);
365
- border-radius: calc(var(--radius-scale, 0.25) * 1rem);
366
- box-shadow: var(--customizer-shadow);
367
- z-index: var(--customizer-z-index);
363
+ background-color: var(--vd-customizer-bg);
364
+ border: 1px solid var(--vd-customizer-border);
365
+ border-radius: calc(var(--vd-radius-scale, 0.25) * 1rem);
366
+ box-shadow: var(--vd-customizer-shadow);
367
+ z-index: var(--vd-customizer-z-index);
368
368
  opacity: 0;
369
369
  visibility: hidden;
370
370
  transform: translateY(-10px);
@@ -378,7 +378,7 @@ body > .vd-theme-customizer-panel.is-open {
378
378
  }
379
379
 
380
380
  .vd-theme-customizer-panel-inner {
381
- padding: var(--customizer-padding);
381
+ padding: var(--vd-customizer-padding);
382
382
  }
383
383
 
384
384
  /* ==========================================================================
@@ -398,9 +398,9 @@ body > .vd-theme-customizer-panel.is-open {
398
398
  align-items: center;
399
399
  gap: 0.375rem;
400
400
  margin-bottom: 0.625rem;
401
- font-size: var(--font-size-sm);
402
- font-weight: var(--font-weight-medium);
403
- color: var(--text-primary);
401
+ font-size: var(--vd-font-size-sm);
402
+ font-weight: var(--vd-font-weight-medium);
403
+ color: var(--vd-text-primary);
404
404
  }
405
405
 
406
406
  .customizer-help {
@@ -412,13 +412,13 @@ body > .vd-theme-customizer-panel.is-open {
412
412
  padding: 0;
413
413
  background: transparent;
414
414
  border: none;
415
- color: var(--text-muted);
415
+ color: var(--vd-text-muted);
416
416
  cursor: help;
417
417
  font-size: 0.75rem;
418
418
  }
419
419
 
420
420
  .customizer-help:hover {
421
- color: var(--text-primary);
421
+ color: var(--vd-text-primary);
422
422
  }
423
423
 
424
424
  /* ==========================================================================
@@ -437,26 +437,26 @@ body > .vd-theme-customizer-panel.is-open {
437
437
  gap: 0.5rem;
438
438
  padding: 0.375rem 0.5rem;
439
439
  background: transparent;
440
- border: 1px solid var(--border-color);
441
- border-radius: var(--btn-border-radius);
440
+ border: 1px solid var(--vd-border-color);
441
+ border-radius: var(--vd-btn-border-radius);
442
442
  cursor: pointer;
443
443
  transition: all 0.15s ease;
444
444
  text-align: left;
445
445
  }
446
446
 
447
447
  .customizer-swatch:hover {
448
- background-color: var(--bg-secondary);
449
- border-color: var(--border-color-dark);
448
+ background-color: var(--vd-bg-secondary);
449
+ border-color: var(--vd-border-color-dark);
450
450
  }
451
451
 
452
452
  .customizer-swatch:focus-visible {
453
- outline: 2px solid var(--color-primary);
453
+ outline: 2px solid var(--vd-color-primary);
454
454
  outline-offset: 1px;
455
455
  }
456
456
 
457
457
  .customizer-swatch.is-active {
458
- background-color: var(--bg-secondary);
459
- border-color: var(--text-primary);
458
+ background-color: var(--vd-bg-secondary);
459
+ border-color: var(--vd-text-primary);
460
460
  }
461
461
 
462
462
  .customizer-swatch-dot {
@@ -464,13 +464,13 @@ body > .vd-theme-customizer-panel.is-open {
464
464
  width: 12px;
465
465
  height: 12px;
466
466
  border-radius: 50%;
467
- background-color: var(--swatch-color);
467
+ background-color: var(--vd-swatch-color);
468
468
  box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.1);
469
469
  }
470
470
 
471
471
  .customizer-swatch-label {
472
- font-size: var(--font-size-xs);
473
- color: var(--text-primary);
472
+ font-size: var(--vd-font-size-xs);
473
+ color: var(--vd-text-primary);
474
474
  white-space: nowrap;
475
475
  overflow: hidden;
476
476
  text-overflow: ellipsis;
@@ -512,20 +512,20 @@ body > .vd-theme-customizer-panel.is-open {
512
512
  justify-content: center;
513
513
  padding: 0.5rem 0.25rem;
514
514
  background: transparent;
515
- border: 1px solid var(--border-color);
516
- color: var(--text-primary);
517
- font-size: var(--font-size-xs);
518
- font-weight: var(--font-weight-medium);
515
+ border: 1px solid var(--vd-border-color);
516
+ color: var(--vd-text-primary);
517
+ font-size: var(--vd-font-size-xs);
518
+ font-weight: var(--vd-font-weight-medium);
519
519
  cursor: pointer;
520
520
  transition: all 0.15s ease;
521
521
  }
522
522
 
523
523
  .customizer-radius-btn:first-child {
524
- border-radius: var(--btn-border-radius) 0 0 var(--btn-border-radius);
524
+ border-radius: var(--vd-btn-border-radius) 0 0 var(--vd-btn-border-radius);
525
525
  }
526
526
 
527
527
  .customizer-radius-btn:last-child {
528
- border-radius: 0 var(--btn-border-radius) var(--btn-border-radius) 0;
528
+ border-radius: 0 var(--vd-btn-border-radius) var(--vd-btn-border-radius) 0;
529
529
  }
530
530
 
531
531
  .customizer-radius-btn:not(:first-child) {
@@ -533,20 +533,20 @@ body > .vd-theme-customizer-panel.is-open {
533
533
  }
534
534
 
535
535
  .customizer-radius-btn:hover {
536
- background-color: var(--bg-secondary);
536
+ background-color: var(--vd-bg-secondary);
537
537
  z-index: 1;
538
538
  }
539
539
 
540
540
  .customizer-radius-btn:focus-visible {
541
- outline: 2px solid var(--color-primary);
541
+ outline: 2px solid var(--vd-color-primary);
542
542
  outline-offset: 1px;
543
543
  z-index: 2;
544
544
  }
545
545
 
546
546
  .customizer-radius-btn.is-active {
547
- background-color: var(--bg-dark);
548
- border-color: var(--bg-dark);
549
- color: var(--text-inverse);
547
+ background-color: var(--vd-bg-dark);
548
+ border-color: var(--vd-bg-dark);
549
+ color: var(--vd-text-inverse);
550
550
  z-index: 1;
551
551
  }
552
552
 
@@ -568,7 +568,7 @@ body > .vd-theme-customizer-panel.is-open {
568
568
  left: 0.625rem;
569
569
  top: 50%;
570
570
  transform: translateY(-50%);
571
- color: var(--text-muted);
571
+ color: var(--vd-text-muted);
572
572
  pointer-events: none;
573
573
  }
574
574
 
@@ -589,19 +589,19 @@ body > .vd-theme-customizer-panel.is-open {
589
589
  gap: 0.375rem;
590
590
  padding: 0.5rem 0.5rem;
591
591
  background: transparent;
592
- border: 1px solid var(--border-color);
593
- color: var(--text-primary);
594
- font-size: var(--font-size-xs);
592
+ border: 1px solid var(--vd-border-color);
593
+ color: var(--vd-text-primary);
594
+ font-size: var(--vd-font-size-xs);
595
595
  cursor: pointer;
596
596
  transition: all 0.15s ease;
597
597
  }
598
598
 
599
599
  .customizer-mode-btn:first-child {
600
- border-radius: var(--btn-border-radius) 0 0 var(--btn-border-radius);
600
+ border-radius: var(--vd-btn-border-radius) 0 0 var(--vd-btn-border-radius);
601
601
  }
602
602
 
603
603
  .customizer-mode-btn:last-child {
604
- border-radius: 0 var(--btn-border-radius) var(--btn-border-radius) 0;
604
+ border-radius: 0 var(--vd-btn-border-radius) var(--vd-btn-border-radius) 0;
605
605
  }
606
606
 
607
607
  .customizer-mode-btn:not(:first-child) {
@@ -609,20 +609,20 @@ body > .vd-theme-customizer-panel.is-open {
609
609
  }
610
610
 
611
611
  .customizer-mode-btn:hover {
612
- background-color: var(--bg-secondary);
612
+ background-color: var(--vd-bg-secondary);
613
613
  z-index: 1;
614
614
  }
615
615
 
616
616
  .customizer-mode-btn:focus-visible {
617
- outline: 2px solid var(--color-primary);
617
+ outline: 2px solid var(--vd-color-primary);
618
618
  outline-offset: 1px;
619
619
  z-index: 2;
620
620
  }
621
621
 
622
622
  .customizer-mode-btn.is-active {
623
- background-color: var(--bg-dark);
624
- border-color: var(--bg-dark);
625
- color: var(--text-inverse);
623
+ background-color: var(--vd-bg-dark);
624
+ border-color: var(--vd-bg-dark);
625
+ color: var(--vd-text-inverse);
626
626
  z-index: 1;
627
627
  }
628
628
 
@@ -635,8 +635,8 @@ body > .vd-theme-customizer-panel.is-open {
635
635
  ========================================================================== */
636
636
 
637
637
  [data-theme="dark"] {
638
- --customizer-bg: var(--bg-primary);
639
- --customizer-border: var(--border-color);
638
+ --vd-customizer-bg: var(--vd-bg-primary);
639
+ --vd-customizer-border: var(--vd-border-color);
640
640
  }
641
641
 
642
642
  [data-theme="dark"] .customizer-swatch-dot,
@@ -648,15 +648,15 @@ body > .vd-theme-customizer-panel.is-open {
648
648
  [data-theme="dark"] .customizer-mode-btn.is-active,
649
649
  [data-theme="dark"] .tc-radius-btn.is-active,
650
650
  [data-theme="dark"] .tc-mode-btn.is-active {
651
- background-color: var(--gray-2);
652
- border-color: var(--gray-2);
653
- color: var(--gray-9);
651
+ background-color: var(--vd-gray-2);
652
+ border-color: var(--vd-gray-2);
653
+ color: var(--vd-gray-9);
654
654
  }
655
655
 
656
656
  @media (prefers-color-scheme: dark) {
657
657
  :root:not([data-theme]) {
658
- --customizer-bg: var(--bg-primary);
659
- --customizer-border: var(--border-color);
658
+ --vd-customizer-bg: var(--vd-bg-primary);
659
+ --vd-customizer-border: var(--vd-border-color);
660
660
  }
661
661
 
662
662
  :root:not([data-theme]) .customizer-swatch-dot,
@@ -668,9 +668,9 @@ body > .vd-theme-customizer-panel.is-open {
668
668
  :root:not([data-theme]) .customizer-mode-btn.is-active,
669
669
  :root:not([data-theme]) .tc-radius-btn.is-active,
670
670
  :root:not([data-theme]) .tc-mode-btn.is-active {
671
- background-color: var(--gray-2);
672
- border-color: var(--gray-2);
673
- color: var(--gray-9);
671
+ background-color: var(--vd-gray-2);
672
+ border-color: var(--vd-gray-2);
673
+ color: var(--vd-gray-9);
674
674
  }
675
675
  }
676
676
 
@@ -689,7 +689,7 @@ body > .vd-theme-customizer-panel.is-open {
689
689
  max-width: 320px;
690
690
  max-height: none;
691
691
  border: none;
692
- border-left: 1px solid var(--customizer-border);
692
+ border-left: 1px solid var(--vd-customizer-border);
693
693
  border-radius: 0;
694
694
  transform: none;
695
695
  opacity: 1;
@@ -728,14 +728,14 @@ body > .vd-theme-customizer-panel.is-open {
728
728
  height: 2rem;
729
729
  padding: 0;
730
730
  background: transparent;
731
- border: 1px solid var(--border-color);
732
- border-radius: calc(var(--radius-scale, 0.25) * 0.5rem);
733
- color: var(--text-primary);
731
+ border: 1px solid var(--vd-border-color);
732
+ border-radius: calc(var(--vd-radius-scale, 0.25) * 0.5rem);
733
+ color: var(--vd-text-primary);
734
734
  cursor: pointer;
735
735
  }
736
736
 
737
737
  .customizer-mobile-close:hover {
738
- background-color: var(--bg-secondary);
738
+ background-color: var(--vd-bg-secondary);
739
739
  }
740
740
 
741
741
  /* Mobile overlay */
@@ -746,7 +746,7 @@ body > .vd-theme-customizer-panel.is-open {
746
746
  right: 0;
747
747
  bottom: 0;
748
748
  background-color: rgba(0, 0, 0, 0.5);
749
- z-index: calc(var(--customizer-z-index) - 1);
749
+ z-index: calc(var(--vd-customizer-z-index) - 1);
750
750
  opacity: 0;
751
751
  visibility: hidden;
752
752
  transition: opacity 0.3s ease, visibility 0.3s ease;
@@ -781,12 +781,12 @@ body > .vd-theme-customizer-panel.is-open {
781
781
  }
782
782
 
783
783
  .vd-theme-customizer-panel::-webkit-scrollbar-thumb {
784
- background-color: var(--border-color);
784
+ background-color: var(--vd-border-color);
785
785
  border-radius: 3px;
786
786
  }
787
787
 
788
788
  .vd-theme-customizer-panel::-webkit-scrollbar-thumb:hover {
789
- background-color: var(--text-muted);
789
+ background-color: var(--vd-text-muted);
790
790
  }
791
791
 
792
792
  /* ==========================================================================
@@ -799,13 +799,13 @@ body > .vd-theme-customizer-panel.is-open {
799
799
  justify-content: space-between;
800
800
  padding-bottom: 0.75rem;
801
801
  margin-bottom: 0.75rem;
802
- border-bottom: 1px solid var(--border-color);
802
+ border-bottom: 1px solid var(--vd-border-color);
803
803
  }
804
804
 
805
805
  .customizer-title {
806
- font-size: var(--font-size-base);
807
- font-weight: var(--font-weight-semibold);
808
- color: var(--text-primary);
806
+ font-size: var(--vd-font-size-base);
807
+ font-weight: var(--vd-font-weight-semibold);
808
+ color: var(--vd-text-primary);
809
809
  margin: 0;
810
810
  }
811
811
 
@@ -815,21 +815,21 @@ body > .vd-theme-customizer-panel.is-open {
815
815
  gap: 0.25rem;
816
816
  padding: 0.25rem 0.5rem;
817
817
  background: transparent;
818
- border: 1px solid var(--border-color);
819
- border-radius: var(--btn-border-radius);
820
- color: var(--text-muted);
821
- font-size: var(--font-size-xs);
818
+ border: 1px solid var(--vd-border-color);
819
+ border-radius: var(--vd-btn-border-radius);
820
+ color: var(--vd-text-muted);
821
+ font-size: var(--vd-font-size-xs);
822
822
  cursor: pointer;
823
823
  transition: all 0.15s ease;
824
824
  }
825
825
 
826
826
  .customizer-reset:hover {
827
- background-color: var(--bg-secondary);
828
- color: var(--text-primary);
829
- border-color: var(--border-color-dark);
827
+ background-color: var(--vd-bg-secondary);
828
+ color: var(--vd-text-primary);
829
+ border-color: var(--vd-border-color-dark);
830
830
  }
831
831
 
832
832
  .customizer-reset:focus-visible {
833
- outline: 2px solid var(--color-primary);
833
+ outline: 2px solid var(--vd-color-primary);
834
834
  outline-offset: 1px;
835
835
  }