@vanduo-oss/framework 1.4.0 → 1.4.2

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 (89) hide show
  1. package/README.md +11 -9
  2. package/css/components/affix.css +11 -11
  3. package/css/components/alerts.css +55 -55
  4. package/css/components/avatar.css +62 -62
  5. package/css/components/badges.css +25 -25
  6. package/css/components/breadcrumbs.css +31 -31
  7. package/css/components/bubble.css +40 -40
  8. package/css/components/button-group.css +2 -2
  9. package/css/components/buttons.css +33 -33
  10. package/css/components/cards.css +76 -76
  11. package/css/components/chips.css +27 -27
  12. package/css/components/code-snippet.css +132 -132
  13. package/css/components/collapsible.css +60 -60
  14. package/css/components/collections.css +58 -58
  15. package/css/components/datepicker.css +55 -53
  16. package/css/components/doc-search.css +63 -63
  17. package/css/components/doc-tabs.css +1 -1
  18. package/css/components/draggable.css +69 -69
  19. package/css/components/dropdown.css +48 -48
  20. package/css/components/fab.css +60 -60
  21. package/css/components/flow.css +55 -55
  22. package/css/components/footer.css +52 -52
  23. package/css/components/forms.css +373 -373
  24. package/css/components/image-box.css +39 -39
  25. package/css/components/modals.css +53 -49
  26. package/css/components/music-player.css +150 -150
  27. package/css/components/navbar.css +71 -71
  28. package/css/components/pagination.css +50 -50
  29. package/css/components/preloader.css +18 -18
  30. package/css/components/progress.css +16 -16
  31. package/css/components/rating.css +18 -18
  32. package/css/components/ripple.css +10 -10
  33. package/css/components/sidenav.css +67 -67
  34. package/css/components/skeleton.css +13 -13
  35. package/css/components/spinner.css +30 -30
  36. package/css/components/spotlight.css +27 -27
  37. package/css/components/stepper.css +36 -36
  38. package/css/components/suggest.css +35 -35
  39. package/css/components/tabs.css +46 -46
  40. package/css/components/theme-customizer.css +73 -73
  41. package/css/components/timeline.css +43 -43
  42. package/css/components/timepicker.css +32 -30
  43. package/css/components/toast.css +27 -27
  44. package/css/components/tooltips.css +77 -77
  45. package/css/components/transfer.css +35 -35
  46. package/css/components/tree.css +25 -25
  47. package/css/components/waypoint.css +12 -12
  48. package/css/core/colors.css +610 -610
  49. package/css/core/grid.css +127 -127
  50. package/css/core/helpers.css +338 -338
  51. package/css/core/tokens.css +69 -81
  52. package/css/core/typography.css +91 -91
  53. package/css/effects/morph.css +17 -17
  54. package/css/effects/parallax.css +6 -6
  55. package/css/utilities/color-utilities.css +273 -273
  56. package/css/utilities/media.css +2 -2
  57. package/css/utilities/shadow.css +75 -75
  58. package/css/utilities/table.css +40 -40
  59. package/css/utilities/transitions.css +38 -38
  60. package/css/vanduo.css +1 -2
  61. package/dist/build-info.json +3 -3
  62. package/dist/vanduo.cjs.js +104 -29
  63. package/dist/vanduo.cjs.js.map +2 -2
  64. package/dist/vanduo.cjs.min.js +5 -5
  65. package/dist/vanduo.cjs.min.js.map +3 -3
  66. package/dist/vanduo.css +4042 -4133
  67. package/dist/vanduo.css.map +1 -1
  68. package/dist/vanduo.esm.js +104 -29
  69. package/dist/vanduo.esm.js.map +2 -2
  70. package/dist/vanduo.esm.min.js +5 -5
  71. package/dist/vanduo.esm.min.js.map +3 -3
  72. package/dist/vanduo.js +104 -29
  73. package/dist/vanduo.js.map +2 -2
  74. package/dist/vanduo.min.css +2 -2
  75. package/dist/vanduo.min.css.map +1 -1
  76. package/dist/vanduo.min.js +5 -5
  77. package/dist/vanduo.min.js.map +3 -3
  78. package/js/components/affix.js +2 -2
  79. package/js/components/datepicker.js +51 -4
  80. package/js/components/image-box.js +2 -2
  81. package/js/components/morph.js +1 -1
  82. package/js/components/music-player.js +11 -11
  83. package/js/components/navbar.js +1 -1
  84. package/js/components/preloader.js +1 -1
  85. package/js/components/theme-customizer.js +4 -4
  86. package/js/components/timepicker.js +48 -6
  87. package/js/components/vd-hex.js +8 -10
  88. package/package.json +1 -1
  89. package/css/core/vd-aliases.css +0 -108
@@ -9,53 +9,53 @@
9
9
  * sm: 8px/5px = 1.6 ~ phi
10
10
  * base: 13px/8px = 1.625 ~ phi
11
11
  * lg: 21px/13px = 1.615 ~ phi */
12
- --input-padding-x-sm: 0.5rem;
12
+ --vd-input-padding-x-sm: 0.5rem;
13
13
  /* 8px - fib */
14
- --input-padding-y-sm: 0.3125rem;
14
+ --vd-input-padding-y-sm: 0.3125rem;
15
15
  /* 5px - fib */
16
- --input-padding-x: 0.8125rem;
16
+ --vd-input-padding-x: 0.8125rem;
17
17
  /* 13px - fib */
18
- --input-padding-y: 0.5rem;
18
+ --vd-input-padding-y: 0.5rem;
19
19
  /* 8px - fib */
20
- --input-padding-x-lg: 1.3125rem;
20
+ --vd-input-padding-x-lg: 1.3125rem;
21
21
  /* 21px - fib */
22
- --input-padding-y-lg: 0.8125rem;
22
+ --vd-input-padding-y-lg: 0.8125rem;
23
23
  /* 13px - fib */
24
24
 
25
25
  /* Input Font Sizes */
26
- --input-font-size-sm: var(--font-size-sm);
27
- --input-font-size: var(--font-size-base);
28
- --input-font-size-lg: var(--font-size-lg);
26
+ --vd-input-font-size-sm: var(--vd-font-size-sm);
27
+ --vd-input-font-size: var(--vd-font-size-base);
28
+ --vd-input-font-size-lg: var(--vd-font-size-lg);
29
29
 
30
30
  /* Input Border */
31
- --input-border-width: 1px;
32
- --input-border-color: var(--vd-border-color);
33
- --input-border-radius: var(--btn-border-radius);
34
- --input-border-radius-sm: var(--btn-border-radius-sm);
35
- --input-border-radius-lg: var(--btn-border-radius-lg);
31
+ --vd-input-border-width: 1px;
32
+ --vd-input-border-color: var(--vd-border-color);
33
+ --vd-input-border-radius: var(--vd-btn-border-radius);
34
+ --vd-input-border-radius-sm: var(--vd-btn-border-radius-sm);
35
+ --vd-input-border-radius-lg: var(--vd-btn-border-radius-lg);
36
36
 
37
37
  /* Input Background */
38
- --input-bg: var(--vd-color-white);
39
- --input-bg-disabled: var(--vd-bg-secondary);
38
+ --vd-input-bg: var(--vd-color-white);
39
+ --vd-input-bg-disabled: var(--vd-bg-secondary);
40
40
 
41
41
  /* Input Focus */
42
- --input-focus-border-color: var(--vd-color-primary);
43
- --input-focus-box-shadow: 0 0 0 3px var(--vd-color-primary-alpha-20);
42
+ --vd-input-focus-border-color: var(--vd-color-primary);
43
+ --vd-input-focus-box-shadow: 0 0 0 3px var(--vd-color-primary-alpha-20);
44
44
 
45
45
  /* Input Transitions */
46
- --input-transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
46
+ --vd-input-transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
47
47
  }
48
48
 
49
49
  /* Dark Theme Overrides */
50
50
  [data-theme="dark"] {
51
- --input-bg: var(--vd-bg-secondary);
52
- --input-bg-disabled: var(--vd-bg-tertiary);
51
+ --vd-input-bg: var(--vd-bg-secondary);
52
+ --vd-input-bg-disabled: var(--vd-bg-tertiary);
53
53
  }
54
54
 
55
55
  @media (prefers-color-scheme: dark) {
56
56
  :root:not([data-theme]) {
57
- --input-bg: var(--vd-bg-secondary);
58
- --input-bg-disabled: var(--vd-bg-tertiary);
57
+ --vd-input-bg: var(--vd-bg-secondary);
58
+ --vd-input-bg-disabled: var(--vd-bg-tertiary);
59
59
  }
60
60
  }
61
61
 
@@ -77,16 +77,16 @@ input[type="time"],
77
77
  input[type="datetime-local"] {
78
78
  display: block;
79
79
  width: 100%;
80
- padding: var(--input-padding-y) var(--input-padding-x);
81
- font-family: var(--font-family-sans);
82
- font-size: var(--input-font-size);
83
- font-weight: var(--font-weight-normal);
84
- line-height: var(--line-height-normal);
80
+ padding: var(--vd-input-padding-y) var(--vd-input-padding-x);
81
+ font-family: var(--vd-font-family-sans);
82
+ font-size: var(--vd-input-font-size);
83
+ font-weight: var(--vd-font-weight-normal);
84
+ line-height: var(--vd-line-height-normal);
85
85
  color: var(--vd-text-primary);
86
- background-color: var(--input-bg);
87
- border: var(--input-border-width) solid var(--input-border-color);
88
- border-radius: var(--input-border-radius);
89
- transition: var(--input-transition);
86
+ background-color: var(--vd-input-bg);
87
+ border: var(--vd-input-border-width) solid var(--vd-input-border-color);
88
+ border-radius: var(--vd-input-border-radius);
89
+ transition: var(--vd-input-transition);
90
90
  appearance: none;
91
91
  }
92
92
 
@@ -102,8 +102,8 @@ input[type="date"]:focus,
102
102
  input[type="time"]:focus,
103
103
  input[type="datetime-local"]:focus {
104
104
  outline: 0;
105
- border-color: var(--input-focus-border-color);
106
- box-shadow: var(--input-focus-box-shadow);
105
+ border-color: var(--vd-input-focus-border-color);
106
+ box-shadow: var(--vd-input-focus-box-shadow);
107
107
  }
108
108
 
109
109
  .vd-input::placeholder,
@@ -116,7 +116,7 @@ input::placeholder {
116
116
  input:disabled,
117
117
  .vd-input.disabled,
118
118
  input.disabled {
119
- background-color: var(--input-bg-disabled);
119
+ background-color: var(--vd-input-bg-disabled);
120
120
  opacity: 0.6;
121
121
  cursor: not-allowed;
122
122
  }
@@ -126,16 +126,16 @@ input.disabled {
126
126
  textarea {
127
127
  display: block;
128
128
  width: 100%;
129
- padding: var(--input-padding-y) var(--input-padding-x);
130
- font-family: var(--font-family-sans);
131
- font-size: var(--input-font-size);
132
- font-weight: var(--font-weight-normal);
133
- line-height: var(--line-height-normal);
129
+ padding: var(--vd-input-padding-y) var(--vd-input-padding-x);
130
+ font-family: var(--vd-font-family-sans);
131
+ font-size: var(--vd-input-font-size);
132
+ font-weight: var(--vd-font-weight-normal);
133
+ line-height: var(--vd-line-height-normal);
134
134
  color: var(--vd-text-primary);
135
- background-color: var(--input-bg);
136
- border: var(--input-border-width) solid var(--input-border-color);
137
- border-radius: var(--input-border-radius);
138
- transition: var(--input-transition);
135
+ background-color: var(--vd-input-bg);
136
+ border: var(--vd-input-border-width) solid var(--vd-input-border-color);
137
+ border-radius: var(--vd-input-border-radius);
138
+ transition: var(--vd-input-transition);
139
139
  resize: vertical;
140
140
  min-height: 100px;
141
141
  }
@@ -143,8 +143,8 @@ textarea {
143
143
  .textarea:focus,
144
144
  textarea:focus {
145
145
  outline: 0;
146
- border-color: var(--input-focus-border-color);
147
- box-shadow: var(--input-focus-box-shadow);
146
+ border-color: var(--vd-input-focus-border-color);
147
+ box-shadow: var(--vd-input-focus-box-shadow);
148
148
  }
149
149
 
150
150
  .textarea::placeholder,
@@ -157,7 +157,7 @@ textarea::placeholder {
157
157
  textarea:disabled,
158
158
  .textarea.disabled,
159
159
  textarea.disabled {
160
- background-color: var(--input-bg-disabled);
160
+ background-color: var(--vd-input-bg-disabled);
161
161
  opacity: 0.6;
162
162
  cursor: not-allowed;
163
163
  }
@@ -170,31 +170,31 @@ textarea.no-resize {
170
170
  /* Input Sizes - Small */
171
171
  .vd-input-sm,
172
172
  input.vd-input-sm {
173
- padding: var(--input-padding-y-sm) var(--input-padding-x-sm);
174
- font-size: var(--input-font-size-sm);
175
- border-radius: var(--input-border-radius-sm);
173
+ padding: var(--vd-input-padding-y-sm) var(--vd-input-padding-x-sm);
174
+ font-size: var(--vd-input-font-size-sm);
175
+ border-radius: var(--vd-input-border-radius-sm);
176
176
  }
177
177
 
178
178
  .textarea-sm,
179
179
  textarea.textarea-sm {
180
- padding: var(--input-padding-y-sm) var(--input-padding-x-sm);
181
- font-size: var(--input-font-size-sm);
182
- border-radius: var(--input-border-radius-sm);
180
+ padding: var(--vd-input-padding-y-sm) var(--vd-input-padding-x-sm);
181
+ font-size: var(--vd-input-font-size-sm);
182
+ border-radius: var(--vd-input-border-radius-sm);
183
183
  }
184
184
 
185
185
  /* Input Sizes - Large */
186
186
  .vd-input-lg,
187
187
  input.vd-input-lg {
188
- padding: var(--input-padding-y-lg) var(--input-padding-x-lg);
189
- font-size: var(--input-font-size-lg);
190
- border-radius: var(--input-border-radius-lg);
188
+ padding: var(--vd-input-padding-y-lg) var(--vd-input-padding-x-lg);
189
+ font-size: var(--vd-input-font-size-lg);
190
+ border-radius: var(--vd-input-border-radius-lg);
191
191
  }
192
192
 
193
193
  .textarea-lg,
194
194
  textarea.textarea-lg {
195
- padding: var(--input-padding-y-lg) var(--input-padding-x-lg);
196
- font-size: var(--input-font-size-lg);
197
- border-radius: var(--input-border-radius-lg);
195
+ padding: var(--vd-input-padding-y-lg) var(--vd-input-padding-x-lg);
196
+ font-size: var(--vd-input-font-size-lg);
197
+ border-radius: var(--vd-input-border-radius-lg);
198
198
  }
199
199
 
200
200
  /* Input States - Error */
@@ -286,10 +286,10 @@ textarea.is-success:focus {
286
286
  label {
287
287
  display: inline-block;
288
288
  margin-bottom: 0.5rem;
289
- font-size: var(--font-size-sm);
290
- font-weight: var(--font-weight-medium);
289
+ font-size: var(--vd-font-size-sm);
290
+ font-weight: var(--vd-font-weight-medium);
291
291
  color: var(--vd-text-primary);
292
- line-height: var(--line-height-normal);
292
+ line-height: var(--vd-line-height-normal);
293
293
  }
294
294
 
295
295
  .label-required::after,
@@ -300,12 +300,12 @@ label.required::after {
300
300
 
301
301
  .label-sm,
302
302
  label.label-sm {
303
- font-size: var(--font-size-xs);
303
+ font-size: var(--vd-font-size-xs);
304
304
  }
305
305
 
306
306
  .label-lg,
307
307
  label.label-lg {
308
- font-size: var(--font-size-base);
308
+ font-size: var(--vd-font-size-base);
309
309
  }
310
310
 
311
311
  /* Form Groups */
@@ -323,14 +323,14 @@ label.label-lg {
323
323
  .error-message {
324
324
  display: block;
325
325
  margin-top: 0.5rem;
326
- font-size: var(--font-size-sm);
326
+ font-size: var(--vd-font-size-sm);
327
327
  color: var(--vd-color-error);
328
328
  }
329
329
 
330
330
  .vd-form-feedback {
331
331
  display: block;
332
332
  margin-top: 0.5rem;
333
- font-size: var(--font-size-sm);
333
+ font-size: var(--vd-font-size-sm);
334
334
  }
335
335
 
336
336
  .vd-form-feedback-invalid {
@@ -341,7 +341,7 @@ label.label-lg {
341
341
  .success-message {
342
342
  display: block;
343
343
  margin-top: 0.5rem;
344
- font-size: var(--font-size-sm);
344
+ font-size: var(--vd-font-size-sm);
345
345
  color: var(--vd-color-success);
346
346
  }
347
347
 
@@ -353,7 +353,7 @@ label.label-lg {
353
353
  .help-text {
354
354
  display: block;
355
355
  margin-top: 0.5rem;
356
- font-size: var(--font-size-sm);
356
+ font-size: var(--vd-font-size-sm);
357
357
  color: var(--vd-text-muted);
358
358
  }
359
359
 
@@ -389,25 +389,25 @@ label.label-lg {
389
389
  .vd-input-group-suffix {
390
390
  display: flex;
391
391
  align-items: center;
392
- padding: var(--input-padding-y) var(--input-padding-x);
393
- font-size: var(--input-font-size);
394
- font-weight: var(--font-weight-normal);
395
- line-height: var(--line-height-normal);
392
+ padding: var(--vd-input-padding-y) var(--vd-input-padding-x);
393
+ font-size: var(--vd-input-font-size);
394
+ font-weight: var(--vd-font-weight-normal);
395
+ line-height: var(--vd-line-height-normal);
396
396
  color: var(--vd-text-secondary);
397
397
  text-align: center;
398
398
  white-space: nowrap;
399
399
  background-color: var(--vd-bg-secondary);
400
- border: var(--input-border-width) solid var(--input-border-color);
400
+ border: var(--vd-input-border-width) solid var(--vd-input-border-color);
401
401
  }
402
402
 
403
403
  .vd-input-group-prefix {
404
404
  border-right: 0;
405
- border-radius: var(--input-border-radius) 0 0 var(--input-border-radius);
405
+ border-radius: var(--vd-input-border-radius) 0 0 var(--vd-input-border-radius);
406
406
  }
407
407
 
408
408
  .vd-input-group-suffix {
409
409
  border-left: 0;
410
- border-radius: 0 var(--input-border-radius) var(--input-border-radius) 0;
410
+ border-radius: 0 var(--vd-input-border-radius) var(--vd-input-border-radius) 0;
411
411
  }
412
412
 
413
413
  .vd-input-group>.vd-input-group-prefix+.vd-input,
@@ -427,21 +427,21 @@ label.label-lg {
427
427
  /* Checkbox Variables */
428
428
  /* stylelint-disable-next-line no-duplicate-selectors -- control-specific tokens stay grouped near their rules. */
429
429
  :root {
430
- --checkbox-size: 1.3125rem;
430
+ --vd-checkbox-size: 1.3125rem;
431
431
  /* 21px - fib */
432
- --checkbox-size-sm: 0.8125rem;
432
+ --vd-checkbox-size-sm: 0.8125rem;
433
433
  /* 13px - fib */
434
- --checkbox-size-lg: 2.125rem;
434
+ --vd-checkbox-size-lg: 2.125rem;
435
435
  /* 34px - fib */
436
- --checkbox-border-width: 2px;
436
+ --vd-checkbox-border-width: 2px;
437
437
  /* fib(2) */
438
- --checkbox-border-radius: var(--radius-fib-3);
438
+ --vd-checkbox-border-radius: var(--vd-radius-fib-3);
439
439
  /* 3px */
440
- --checkbox-check-color: var(--vd-color-white);
441
- --checkbox-bg-checked: var(--vd-color-primary);
442
- --checkbox-bg-indeterminate: var(--vd-color-primary);
443
- --checkbox-border-color: var(--input-border-color);
444
- --checkbox-transition: var(--transition-base);
440
+ --vd-checkbox-check-color: var(--vd-color-white);
441
+ --vd-checkbox-bg-checked: var(--vd-color-primary);
442
+ --vd-checkbox-bg-indeterminate: var(--vd-color-primary);
443
+ --vd-checkbox-border-color: var(--vd-input-border-color);
444
+ --vd-checkbox-transition: var(--vd-transition-base);
445
445
  }
446
446
 
447
447
  /* Checkbox Wrapper */
@@ -453,8 +453,8 @@ label.label-lg {
453
453
  /* 13px - fib */
454
454
  position: relative;
455
455
  cursor: pointer;
456
- font-size: var(--input-font-size);
457
- line-height: var(--line-height-normal);
456
+ font-size: var(--vd-input-font-size);
457
+ line-height: var(--vd-line-height-normal);
458
458
  color: var(--vd-text-primary);
459
459
  user-select: none;
460
460
  gap: 0.5rem;
@@ -466,22 +466,22 @@ label.label-lg {
466
466
  .vd-form-check>input[type="checkbox"] {
467
467
  appearance: none;
468
468
  -webkit-appearance: none;
469
- width: var(--checkbox-size);
470
- height: var(--checkbox-size);
471
- border: var(--checkbox-border-width) solid var(--checkbox-border-color);
472
- border-radius: var(--checkbox-border-radius);
473
- background-color: var(--input-bg);
469
+ width: var(--vd-checkbox-size);
470
+ height: var(--vd-checkbox-size);
471
+ border: var(--vd-checkbox-border-width) solid var(--vd-checkbox-border-color);
472
+ border-radius: var(--vd-checkbox-border-radius);
473
+ background-color: var(--vd-input-bg);
474
474
  cursor: pointer;
475
475
  flex-shrink: 0;
476
476
  margin: 0;
477
477
  position: relative;
478
- transition: var(--checkbox-transition);
478
+ transition: var(--vd-checkbox-transition);
479
479
  }
480
480
 
481
481
  .checkbox>input[type="checkbox"]:checked,
482
482
  .vd-form-check>input[type="checkbox"]:checked {
483
- background-color: var(--checkbox-bg-checked);
484
- border-color: var(--checkbox-bg-checked);
483
+ background-color: var(--vd-checkbox-bg-checked);
484
+ border-color: var(--vd-checkbox-bg-checked);
485
485
  }
486
486
 
487
487
  .checkbox>input[type="checkbox"]:checked::after,
@@ -493,13 +493,13 @@ label.label-lg {
493
493
  transform: translate(-50%, -50%) rotate(45deg);
494
494
  width: 0.3rem;
495
495
  height: 0.6rem;
496
- border: solid var(--checkbox-check-color);
496
+ border: solid var(--vd-checkbox-check-color);
497
497
  border-width: 0 2px 2px 0;
498
498
  }
499
499
 
500
500
  .checkbox>input[type="checkbox"]:disabled,
501
501
  .vd-form-check>input[type="checkbox"]:disabled {
502
- background-color: var(--input-bg-disabled);
502
+ background-color: var(--vd-input-bg-disabled);
503
503
  cursor: not-allowed;
504
504
  opacity: 0.6;
505
505
  }
@@ -512,7 +512,7 @@ label.label-lg {
512
512
 
513
513
  .checkbox>input[type="checkbox"]:focus-visible,
514
514
  .vd-form-check>input[type="checkbox"]:focus-visible {
515
- outline: 2px solid var(--input-focus-border-color);
515
+ outline: 2px solid var(--vd-input-focus-border-color);
516
516
  outline-offset: 2px;
517
517
  }
518
518
 
@@ -540,13 +540,13 @@ label.label-lg {
540
540
  display: inline-flex;
541
541
  align-items: center;
542
542
  cursor: pointer;
543
- font-size: var(--input-font-size);
544
- line-height: var(--line-height-normal);
543
+ font-size: var(--vd-input-font-size);
544
+ line-height: var(--vd-line-height-normal);
545
545
  color: var(--vd-text-primary);
546
546
  user-select: none;
547
- padding-left: calc(var(--checkbox-size) + 0.5rem);
547
+ padding-left: calc(var(--vd-checkbox-size) + 0.5rem);
548
548
  position: relative;
549
- min-height: var(--checkbox-size);
549
+ min-height: var(--vd-checkbox-size);
550
550
  }
551
551
 
552
552
  .checkbox-label::before,
@@ -556,20 +556,20 @@ label.label-lg {
556
556
  left: 0;
557
557
  top: 50%;
558
558
  transform: translateY(-50%);
559
- width: var(--checkbox-size);
560
- height: var(--checkbox-size);
561
- border: var(--checkbox-border-width) solid var(--checkbox-border-color);
562
- border-radius: var(--checkbox-border-radius);
563
- background-color: var(--input-bg);
564
- transition: var(--checkbox-transition);
559
+ width: var(--vd-checkbox-size);
560
+ height: var(--vd-checkbox-size);
561
+ border: var(--vd-checkbox-border-width) solid var(--vd-checkbox-border-color);
562
+ border-radius: var(--vd-checkbox-border-radius);
563
+ background-color: var(--vd-input-bg);
564
+ transition: var(--vd-checkbox-transition);
565
565
  flex-shrink: 0;
566
566
  }
567
567
 
568
568
  .checkbox-input:checked+.checkbox-label::before,
569
569
  .checkbox-input:checked~.checkbox-label::before,
570
570
  .vd-form-check-input:checked+.vd-form-check-label::before {
571
- background-color: var(--checkbox-bg-checked);
572
- border-color: var(--checkbox-bg-checked);
571
+ background-color: var(--vd-checkbox-bg-checked);
572
+ border-color: var(--vd-checkbox-bg-checked);
573
573
  }
574
574
 
575
575
  .checkbox-input:checked+.checkbox-label::after,
@@ -577,12 +577,12 @@ label.label-lg {
577
577
  .vd-form-check-input:checked+.vd-form-check-label::after {
578
578
  content: '';
579
579
  position: absolute;
580
- left: calc(var(--checkbox-size) / 2);
580
+ left: calc(var(--vd-checkbox-size) / 2);
581
581
  top: 50%;
582
582
  transform: translate(-50%, -60%) rotate(45deg);
583
583
  width: 0.375rem;
584
584
  height: 0.75rem;
585
- border: solid var(--checkbox-check-color);
585
+ border: solid var(--vd-checkbox-check-color);
586
586
  border-width: 0 2px 2px 0;
587
587
  opacity: 1;
588
588
  }
@@ -590,8 +590,8 @@ label.label-lg {
590
590
  .checkbox-input:indeterminate+.checkbox-label::before,
591
591
  .checkbox-input:indeterminate~.checkbox-label::before,
592
592
  .vd-form-check-input:indeterminate+.vd-form-check-label::before {
593
- background-color: var(--checkbox-bg-indeterminate);
594
- border-color: var(--checkbox-bg-indeterminate);
593
+ background-color: var(--vd-checkbox-bg-indeterminate);
594
+ border-color: var(--vd-checkbox-bg-indeterminate);
595
595
  }
596
596
 
597
597
  .checkbox-input:indeterminate+.checkbox-label::after,
@@ -599,12 +599,12 @@ label.label-lg {
599
599
  .vd-form-check-input:indeterminate+.vd-form-check-label::after {
600
600
  content: '';
601
601
  position: absolute;
602
- left: calc(var(--checkbox-size) / 2);
602
+ left: calc(var(--vd-checkbox-size) / 2);
603
603
  top: 50%;
604
604
  transform: translate(-50%, -50%);
605
605
  width: 0.5rem;
606
606
  height: 2px;
607
- background-color: var(--checkbox-check-color);
607
+ background-color: var(--vd-checkbox-check-color);
608
608
  border: none;
609
609
  opacity: 1;
610
610
  }
@@ -612,7 +612,7 @@ label.label-lg {
612
612
  .checkbox-input:focus-visible+.checkbox-label::before,
613
613
  .checkbox-input:focus-visible~.checkbox-label::before,
614
614
  .vd-form-check-input:focus-visible+.vd-form-check-label::before {
615
- outline: 2px solid var(--input-focus-border-color);
615
+ outline: 2px solid var(--vd-input-focus-border-color);
616
616
  outline-offset: 2px;
617
617
  }
618
618
 
@@ -626,8 +626,8 @@ label.label-lg {
626
626
  .checkbox-input:disabled+.checkbox-label::before,
627
627
  .checkbox-input:disabled~.checkbox-label::before,
628
628
  .vd-form-check-input:disabled+.vd-form-check-label::before {
629
- background-color: var(--input-bg-disabled);
630
- border-color: var(--checkbox-border-color);
629
+ background-color: var(--vd-input-bg-disabled);
630
+ border-color: var(--vd-checkbox-border-color);
631
631
  cursor: not-allowed;
632
632
  }
633
633
 
@@ -636,34 +636,34 @@ label.label-lg {
636
636
  .checkbox-sm .vd-form-check-label,
637
637
  .vd-form-check-sm .checkbox-label,
638
638
  .vd-form-check-sm .vd-form-check-label {
639
- font-size: var(--input-font-size-sm);
640
- padding-left: calc(var(--checkbox-size-sm) + 0.625rem);
641
- min-height: var(--checkbox-size-sm);
639
+ font-size: var(--vd-input-font-size-sm);
640
+ padding-left: calc(var(--vd-checkbox-size-sm) + 0.625rem);
641
+ min-height: var(--vd-checkbox-size-sm);
642
642
  }
643
643
 
644
644
  .checkbox-sm .checkbox-label::before,
645
645
  .checkbox-sm .vd-form-check-label::before,
646
646
  .vd-form-check-sm .checkbox-label::before,
647
647
  .vd-form-check-sm .vd-form-check-label::before {
648
- width: var(--checkbox-size-sm);
649
- height: var(--checkbox-size-sm);
648
+ width: var(--vd-checkbox-size-sm);
649
+ height: var(--vd-checkbox-size-sm);
650
650
  }
651
651
 
652
652
  .checkbox-lg .checkbox-label,
653
653
  .checkbox-lg .vd-form-check-label,
654
654
  .vd-form-check-lg .checkbox-label,
655
655
  .vd-form-check-lg .vd-form-check-label {
656
- font-size: var(--input-font-size-lg);
657
- padding-left: calc(var(--checkbox-size-lg) + 0.875rem);
658
- min-height: var(--checkbox-size-lg);
656
+ font-size: var(--vd-input-font-size-lg);
657
+ padding-left: calc(var(--vd-checkbox-size-lg) + 0.875rem);
658
+ min-height: var(--vd-checkbox-size-lg);
659
659
  }
660
660
 
661
661
  .checkbox-lg .checkbox-label::before,
662
662
  .checkbox-lg .vd-form-check-label::before,
663
663
  .vd-form-check-lg .checkbox-label::before,
664
664
  .vd-form-check-lg .vd-form-check-label::before {
665
- width: var(--checkbox-size-lg);
666
- height: var(--checkbox-size-lg);
665
+ width: var(--vd-checkbox-size-lg);
666
+ height: var(--vd-checkbox-size-lg);
667
667
  }
668
668
 
669
669
  /* Checkbox Groups */
@@ -683,23 +683,23 @@ label.label-lg {
683
683
  /* Radio Button Variables */
684
684
  /* stylelint-disable-next-line no-duplicate-selectors -- control-specific tokens stay grouped near their rules. */
685
685
  :root {
686
- --radio-size: 1.3125rem;
686
+ --vd-radio-size: 1.3125rem;
687
687
  /* 21px - fib */
688
- --radio-size-sm: 0.8125rem;
688
+ --vd-radio-size-sm: 0.8125rem;
689
689
  /* 13px - fib */
690
- --radio-size-lg: 2.125rem;
690
+ --vd-radio-size-lg: 2.125rem;
691
691
  /* 34px - fib */
692
- --radio-border-width: 2px;
692
+ --vd-radio-border-width: 2px;
693
693
  /* fib(2) */
694
- --radio-dot-size: 0.5rem;
694
+ --vd-radio-dot-size: 0.5rem;
695
695
  /* 8px - fib */
696
- --radio-dot-size-sm: 0.3125rem;
696
+ --vd-radio-dot-size-sm: 0.3125rem;
697
697
  /* 5px - fib */
698
- --radio-dot-size-lg: 0.8125rem;
698
+ --vd-radio-dot-size-lg: 0.8125rem;
699
699
  /* 13px - fib */
700
- --radio-bg-checked: var(--vd-color-primary);
701
- --radio-border-color: var(--input-border-color);
702
- --radio-transition: var(--transition-base);
700
+ --vd-radio-bg-checked: var(--vd-color-primary);
701
+ --vd-radio-border-color: var(--vd-input-border-color);
702
+ --vd-radio-transition: var(--vd-transition-base);
703
703
  }
704
704
 
705
705
  /* Radio Wrapper */
@@ -710,8 +710,8 @@ label.label-lg {
710
710
  margin-bottom: 0.75rem;
711
711
  position: relative;
712
712
  cursor: pointer;
713
- font-size: var(--input-font-size);
714
- line-height: var(--line-height-normal);
713
+ font-size: var(--vd-input-font-size);
714
+ line-height: var(--vd-line-height-normal);
715
715
  color: var(--vd-text-primary);
716
716
  user-select: none;
717
717
  gap: 0.5rem;
@@ -722,21 +722,21 @@ label.label-lg {
722
722
  .vd-form-radio>input[type="radio"] {
723
723
  appearance: none;
724
724
  -webkit-appearance: none;
725
- width: var(--radio-size);
726
- height: var(--radio-size);
727
- border: var(--radio-border-width) solid var(--radio-border-color);
725
+ width: var(--vd-radio-size);
726
+ height: var(--vd-radio-size);
727
+ border: var(--vd-radio-border-width) solid var(--vd-radio-border-color);
728
728
  border-radius: 50%;
729
- background-color: var(--input-bg);
729
+ background-color: var(--vd-input-bg);
730
730
  cursor: pointer;
731
731
  flex-shrink: 0;
732
732
  margin: 0;
733
733
  position: relative;
734
- transition: var(--radio-transition);
734
+ transition: var(--vd-radio-transition);
735
735
  }
736
736
 
737
737
  .radio>input[type="radio"]:checked,
738
738
  .vd-form-radio>input[type="radio"]:checked {
739
- border-color: var(--radio-bg-checked);
739
+ border-color: var(--vd-radio-bg-checked);
740
740
  }
741
741
 
742
742
  .radio>input[type="radio"]:checked::after,
@@ -746,15 +746,15 @@ label.label-lg {
746
746
  left: 50%;
747
747
  top: 50%;
748
748
  transform: translate(-50%, -50%);
749
- width: var(--radio-dot-size);
750
- height: var(--radio-dot-size);
749
+ width: var(--vd-radio-dot-size);
750
+ height: var(--vd-radio-dot-size);
751
751
  border-radius: 50%;
752
- background-color: var(--radio-bg-checked);
752
+ background-color: var(--vd-radio-bg-checked);
753
753
  }
754
754
 
755
755
  .radio>input[type="radio"]:disabled,
756
756
  .vd-form-radio>input[type="radio"]:disabled {
757
- background-color: var(--input-bg-disabled);
757
+ background-color: var(--vd-input-bg-disabled);
758
758
  cursor: not-allowed;
759
759
  opacity: 0.6;
760
760
  }
@@ -767,7 +767,7 @@ label.label-lg {
767
767
 
768
768
  .radio>input[type="radio"]:focus-visible,
769
769
  .vd-form-radio>input[type="radio"]:focus-visible {
770
- outline: 2px solid var(--input-focus-border-color);
770
+ outline: 2px solid var(--vd-input-focus-border-color);
771
771
  outline-offset: 2px;
772
772
  }
773
773
 
@@ -795,13 +795,13 @@ label.label-lg {
795
795
  display: inline-flex;
796
796
  align-items: center;
797
797
  cursor: pointer;
798
- font-size: var(--input-font-size);
799
- line-height: var(--line-height-normal);
798
+ font-size: var(--vd-input-font-size);
799
+ line-height: var(--vd-line-height-normal);
800
800
  color: var(--vd-text-primary);
801
801
  user-select: none;
802
- padding-left: calc(var(--radio-size) + 0.5rem);
802
+ padding-left: calc(var(--vd-radio-size) + 0.5rem);
803
803
  position: relative;
804
- min-height: var(--radio-size);
804
+ min-height: var(--vd-radio-size);
805
805
  }
806
806
 
807
807
  .radio-label::before,
@@ -811,19 +811,19 @@ label.label-lg {
811
811
  left: 0;
812
812
  top: 50%;
813
813
  transform: translateY(-50%);
814
- width: var(--radio-size);
815
- height: var(--radio-size);
816
- border: var(--radio-border-width) solid var(--radio-border-color);
814
+ width: var(--vd-radio-size);
815
+ height: var(--vd-radio-size);
816
+ border: var(--vd-radio-border-width) solid var(--vd-radio-border-color);
817
817
  border-radius: 50%;
818
- background-color: var(--input-bg);
819
- transition: var(--radio-transition);
818
+ background-color: var(--vd-input-bg);
819
+ transition: var(--vd-radio-transition);
820
820
  flex-shrink: 0;
821
821
  }
822
822
 
823
823
  .radio-input:checked+.radio-label::before,
824
824
  .radio-input:checked~.radio-label::before,
825
825
  .vd-form-radio-input:checked+.vd-form-radio-label::before {
826
- border-color: var(--radio-bg-checked);
826
+ border-color: var(--vd-radio-bg-checked);
827
827
  }
828
828
 
829
829
  .radio-input:checked+.radio-label::after,
@@ -831,20 +831,20 @@ label.label-lg {
831
831
  .vd-form-radio-input:checked+.vd-form-radio-label::after {
832
832
  content: '';
833
833
  position: absolute;
834
- left: calc(var(--radio-size) / 2);
834
+ left: calc(var(--vd-radio-size) / 2);
835
835
  top: 50%;
836
836
  transform: translate(-50%, -50%);
837
- width: var(--radio-dot-size);
838
- height: var(--radio-dot-size);
837
+ width: var(--vd-radio-dot-size);
838
+ height: var(--vd-radio-dot-size);
839
839
  border-radius: 50%;
840
- background-color: var(--radio-bg-checked);
840
+ background-color: var(--vd-radio-bg-checked);
841
841
  opacity: 1;
842
842
  }
843
843
 
844
844
  .radio-input:focus-visible+.radio-label::before,
845
845
  .radio-input:focus-visible~.radio-label::before,
846
846
  .vd-form-radio-input:focus-visible+.vd-form-radio-label::before {
847
- outline: 2px solid var(--input-focus-border-color);
847
+ outline: 2px solid var(--vd-input-focus-border-color);
848
848
  outline-offset: 2px;
849
849
  }
850
850
 
@@ -858,8 +858,8 @@ label.label-lg {
858
858
  .radio-input:disabled+.radio-label::before,
859
859
  .radio-input:disabled~.radio-label::before,
860
860
  .vd-form-radio-input:disabled+.vd-form-radio-label::before {
861
- background-color: var(--input-bg-disabled);
862
- border-color: var(--radio-border-color);
861
+ background-color: var(--vd-input-bg-disabled);
862
+ border-color: var(--vd-radio-border-color);
863
863
  cursor: not-allowed;
864
864
  }
865
865
 
@@ -868,50 +868,50 @@ label.label-lg {
868
868
  .radio-sm .vd-form-radio-label,
869
869
  .vd-form-radio-sm .radio-label,
870
870
  .vd-form-radio-sm .vd-form-radio-label {
871
- font-size: var(--input-font-size-sm);
872
- padding-left: calc(var(--radio-size-sm) + 0.625rem);
873
- min-height: var(--radio-size-sm);
871
+ font-size: var(--vd-input-font-size-sm);
872
+ padding-left: calc(var(--vd-radio-size-sm) + 0.625rem);
873
+ min-height: var(--vd-radio-size-sm);
874
874
  }
875
875
 
876
876
  .radio-sm .radio-label::before,
877
877
  .radio-sm .vd-form-radio-label::before,
878
878
  .vd-form-radio-sm .radio-label::before,
879
879
  .vd-form-radio-sm .vd-form-radio-label::before {
880
- width: var(--radio-size-sm);
881
- height: var(--radio-size-sm);
880
+ width: var(--vd-radio-size-sm);
881
+ height: var(--vd-radio-size-sm);
882
882
  }
883
883
 
884
884
  .radio-sm .radio-label::after,
885
885
  .radio-sm .vd-form-radio-label::after,
886
886
  .vd-form-radio-sm .radio-label::after,
887
887
  .vd-form-radio-sm .vd-form-radio-label::after {
888
- width: var(--radio-dot-size-sm);
889
- height: var(--radio-dot-size-sm);
888
+ width: var(--vd-radio-dot-size-sm);
889
+ height: var(--vd-radio-dot-size-sm);
890
890
  }
891
891
 
892
892
  .radio-lg .radio-label,
893
893
  .radio-lg .vd-form-radio-label,
894
894
  .vd-form-radio-lg .radio-label,
895
895
  .vd-form-radio-lg .vd-form-radio-label {
896
- font-size: var(--input-font-size-lg);
897
- padding-left: calc(var(--radio-size-lg) + 0.875rem);
898
- min-height: var(--radio-size-lg);
896
+ font-size: var(--vd-input-font-size-lg);
897
+ padding-left: calc(var(--vd-radio-size-lg) + 0.875rem);
898
+ min-height: var(--vd-radio-size-lg);
899
899
  }
900
900
 
901
901
  .radio-lg .radio-label::before,
902
902
  .radio-lg .vd-form-radio-label::before,
903
903
  .vd-form-radio-lg .radio-label::before,
904
904
  .vd-form-radio-lg .vd-form-radio-label::before {
905
- width: var(--radio-size-lg);
906
- height: var(--radio-size-lg);
905
+ width: var(--vd-radio-size-lg);
906
+ height: var(--vd-radio-size-lg);
907
907
  }
908
908
 
909
909
  .radio-lg .radio-label::after,
910
910
  .radio-lg .vd-form-radio-label::after,
911
911
  .vd-form-radio-lg .radio-label::after,
912
912
  .vd-form-radio-lg .vd-form-radio-label::after {
913
- width: var(--radio-dot-size-lg);
914
- height: var(--radio-dot-size-lg);
913
+ width: var(--vd-radio-dot-size-lg);
914
+ height: var(--vd-radio-dot-size-lg);
915
915
  }
916
916
 
917
917
  /* Radio Groups */
@@ -931,29 +931,29 @@ label.label-lg {
931
931
  /* Range Variables */
932
932
  /* stylelint-disable-next-line no-duplicate-selectors -- range tokens stay grouped with range control styles. */
933
933
  :root {
934
- --range-track-height: 0.5rem;
935
- --range-track-height-sm: 0.375rem;
936
- --range-track-height-lg: 0.625rem;
937
- --range-thumb-size: 1.25rem;
938
- --range-thumb-size-sm: 1rem;
939
- --range-thumb-size-lg: 1.5rem;
940
- --range-track-bg: var(--vd-color-gray-300);
941
- --range-track-border: none;
942
- --range-track-fill: var(--vd-color-primary);
943
- --range-thumb-bg: var(--vd-color-primary);
944
- --range-thumb-border: 2px solid var(--vd-color-white);
945
- --range-thumb-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
934
+ --vd-range-track-height: 0.5rem;
935
+ --vd-range-track-height-sm: 0.375rem;
936
+ --vd-range-track-height-lg: 0.625rem;
937
+ --vd-range-thumb-size: 1.25rem;
938
+ --vd-range-thumb-size-sm: 1rem;
939
+ --vd-range-thumb-size-lg: 1.5rem;
940
+ --vd-range-track-bg: var(--vd-color-gray-300);
941
+ --vd-range-track-border: none;
942
+ --vd-range-track-fill: var(--vd-color-primary);
943
+ --vd-range-thumb-bg: var(--vd-color-primary);
944
+ --vd-range-thumb-border: 2px solid var(--vd-color-white);
945
+ --vd-range-thumb-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
946
946
  }
947
947
 
948
948
  /* Dark Theme Range Overrides - more visible track */
949
949
  /* stylelint-disable-next-line no-duplicate-selectors -- dark-mode token overrides stay adjacent to range styles. */
950
950
  [data-theme="dark"] {
951
- --range-track-bg: var(--vd-color-gray-400);
951
+ --vd-range-track-bg: var(--vd-color-gray-400);
952
952
  }
953
953
 
954
954
  @media (prefers-color-scheme: dark) {
955
955
  :root:not([data-theme]) {
956
- --range-track-bg: var(--vd-color-gray-400);
956
+ --vd-range-track-bg: var(--vd-color-gray-400);
957
957
  }
958
958
  }
959
959
 
@@ -969,7 +969,7 @@ label.label-lg {
969
969
  input[type="range"].range-input,
970
970
  input[type="range"] {
971
971
  width: 100%;
972
- height: var(--range-track-height);
972
+ height: var(--vd-range-track-height);
973
973
  -webkit-appearance: none;
974
974
  appearance: none;
975
975
  background: transparent;
@@ -986,29 +986,29 @@ input[type="range"]:focus {
986
986
 
987
987
  input[type="range"].range-input:focus::-webkit-slider-thumb,
988
988
  input[type="range"]:focus::-webkit-slider-thumb {
989
- box-shadow: var(--range-thumb-shadow), 0 0 0 3px var(--vd-color-primary-alpha-10);
989
+ box-shadow: var(--vd-range-thumb-shadow), 0 0 0 3px var(--vd-color-primary-alpha-10);
990
990
  }
991
991
 
992
992
  input[type="range"].range-input:focus::-moz-range-thumb,
993
993
  input[type="range"]:focus::-moz-range-thumb {
994
- box-shadow: var(--range-thumb-shadow), 0 0 0 3px var(--vd-color-primary-alpha-10);
994
+ box-shadow: var(--vd-range-thumb-shadow), 0 0 0 3px var(--vd-color-primary-alpha-10);
995
995
  }
996
996
 
997
997
  /* Range Track (Webkit - Chrome, Safari, Edge) */
998
998
  input[type="range"]::-webkit-slider-runnable-track {
999
999
  width: 100%;
1000
- height: var(--range-track-height);
1001
- background: var(--range-track-bg);
1002
- border: var(--range-track-border);
1000
+ height: var(--vd-range-track-height);
1001
+ background: var(--vd-range-track-bg);
1002
+ border: var(--vd-range-track-border);
1003
1003
  border-radius: 0.5rem;
1004
1004
  cursor: pointer;
1005
1005
  }
1006
1006
 
1007
1007
  input[type="range"].range-input::-webkit-slider-runnable-track {
1008
1008
  width: 100%;
1009
- height: var(--range-track-height);
1010
- background: var(--range-track-bg);
1011
- border: var(--range-track-border);
1009
+ height: var(--vd-range-track-height);
1010
+ background: var(--vd-range-track-bg);
1011
+ border: var(--vd-range-track-border);
1012
1012
  border-radius: 0.5rem;
1013
1013
  cursor: pointer;
1014
1014
  }
@@ -1017,18 +1017,18 @@ input[type="range"].range-input::-webkit-slider-runnable-track {
1017
1017
  input[type="range"].range-input::-moz-range-track,
1018
1018
  input[type="range"]::-moz-range-track {
1019
1019
  width: 100%;
1020
- height: var(--range-track-height);
1021
- background: var(--range-track-bg);
1022
- border: var(--range-track-border);
1020
+ height: var(--vd-range-track-height);
1021
+ background: var(--vd-range-track-bg);
1022
+ border: var(--vd-range-track-border);
1023
1023
  border-radius: 0.5rem;
1024
1024
  cursor: pointer;
1025
1025
  }
1026
1026
 
1027
- /* Range Progress/Fill (Firefox) - uses --range-track-fill */
1027
+ /* Range Progress/Fill (Firefox) - uses --vd-range-track-fill */
1028
1028
  input[type="range"].range-input::-moz-range-progress,
1029
1029
  input[type="range"]::-moz-range-progress {
1030
- height: var(--range-track-height);
1031
- background: var(--range-track-fill);
1030
+ height: var(--vd-range-track-height);
1031
+ background: var(--vd-range-track-fill);
1032
1032
  border-radius: 0.5rem 0 0 0.5rem;
1033
1033
  }
1034
1034
 
@@ -1037,15 +1037,15 @@ input[type="range"].range-input::-webkit-slider-thumb,
1037
1037
  input[type="range"]::-webkit-slider-thumb {
1038
1038
  -webkit-appearance: none;
1039
1039
  appearance: none;
1040
- width: var(--range-thumb-size);
1041
- height: var(--range-thumb-size);
1042
- background: var(--range-thumb-bg);
1043
- border: var(--range-thumb-border);
1040
+ width: var(--vd-range-thumb-size);
1041
+ height: var(--vd-range-thumb-size);
1042
+ background: var(--vd-range-thumb-bg);
1043
+ border: var(--vd-range-thumb-border);
1044
1044
  border-radius: 50%;
1045
1045
  cursor: pointer;
1046
- box-shadow: var(--range-thumb-shadow);
1047
- transition: var(--transition-base);
1048
- margin-top: calc((var(--range-track-height) - var(--range-thumb-size)) / 2);
1046
+ box-shadow: var(--vd-range-thumb-shadow);
1047
+ transition: var(--vd-transition-base);
1048
+ margin-top: calc((var(--vd-range-track-height) - var(--vd-range-thumb-size)) / 2);
1049
1049
  }
1050
1050
 
1051
1051
  input[type="range"].range-input::-webkit-slider-thumb:hover,
@@ -1056,14 +1056,14 @@ input[type="range"]::-webkit-slider-thumb:hover {
1056
1056
  /* Range Thumb (Firefox) */
1057
1057
  input[type="range"].range-input::-moz-range-thumb,
1058
1058
  input[type="range"]::-moz-range-thumb {
1059
- width: var(--range-thumb-size);
1060
- height: var(--range-thumb-size);
1061
- background: var(--range-thumb-bg);
1062
- border: var(--range-thumb-border);
1059
+ width: var(--vd-range-thumb-size);
1060
+ height: var(--vd-range-thumb-size);
1061
+ background: var(--vd-range-thumb-bg);
1062
+ border: var(--vd-range-thumb-border);
1063
1063
  border-radius: 50%;
1064
1064
  cursor: pointer;
1065
- box-shadow: var(--range-thumb-shadow);
1066
- transition: var(--transition-base);
1065
+ box-shadow: var(--vd-range-thumb-shadow);
1066
+ transition: var(--vd-transition-base);
1067
1067
  }
1068
1068
 
1069
1069
  input[type="range"].range-input::-moz-range-thumb:hover,
@@ -1090,58 +1090,58 @@ input[type="range"]:disabled::-moz-range-thumb {
1090
1090
  /* Range Sizes */
1091
1091
  .range-sm input[type="range"],
1092
1092
  input[type="range"].range-sm {
1093
- height: var(--range-track-height-sm);
1093
+ height: var(--vd-range-track-height-sm);
1094
1094
  }
1095
1095
 
1096
1096
  .range-sm input[type="range"]::-webkit-slider-track,
1097
1097
  input[type="range"].range-sm::-webkit-slider-track {
1098
- height: var(--range-track-height-sm);
1098
+ height: var(--vd-range-track-height-sm);
1099
1099
  }
1100
1100
 
1101
1101
  .range-sm input[type="range"]::-moz-range-track,
1102
1102
  input[type="range"].range-sm::-moz-range-track {
1103
- height: var(--range-track-height-sm);
1103
+ height: var(--vd-range-track-height-sm);
1104
1104
  }
1105
1105
 
1106
1106
  .range-sm input[type="range"]::-webkit-slider-thumb,
1107
1107
  input[type="range"].range-sm::-webkit-slider-thumb {
1108
- width: var(--range-thumb-size-sm);
1109
- height: var(--range-thumb-size-sm);
1110
- margin-top: calc((var(--range-track-height-sm) - var(--range-thumb-size-sm)) / 2);
1108
+ width: var(--vd-range-thumb-size-sm);
1109
+ height: var(--vd-range-thumb-size-sm);
1110
+ margin-top: calc((var(--vd-range-track-height-sm) - var(--vd-range-thumb-size-sm)) / 2);
1111
1111
  }
1112
1112
 
1113
1113
  .range-sm input[type="range"]::-moz-range-thumb,
1114
1114
  input[type="range"].range-sm::-moz-range-thumb {
1115
- width: var(--range-thumb-size-sm);
1116
- height: var(--range-thumb-size-sm);
1115
+ width: var(--vd-range-thumb-size-sm);
1116
+ height: var(--vd-range-thumb-size-sm);
1117
1117
  }
1118
1118
 
1119
1119
  .range-lg input[type="range"],
1120
1120
  input[type="range"].range-lg {
1121
- height: var(--range-track-height-lg);
1121
+ height: var(--vd-range-track-height-lg);
1122
1122
  }
1123
1123
 
1124
1124
  .range-lg input[type="range"]::-webkit-slider-track,
1125
1125
  input[type="range"].range-lg::-webkit-slider-track {
1126
- height: var(--range-track-height-lg);
1126
+ height: var(--vd-range-track-height-lg);
1127
1127
  }
1128
1128
 
1129
1129
  .range-lg input[type="range"]::-moz-range-track,
1130
1130
  input[type="range"].range-lg::-moz-range-track {
1131
- height: var(--range-track-height-lg);
1131
+ height: var(--vd-range-track-height-lg);
1132
1132
  }
1133
1133
 
1134
1134
  .range-lg input[type="range"]::-webkit-slider-thumb,
1135
1135
  input[type="range"].range-lg::-webkit-slider-thumb {
1136
- width: var(--range-thumb-size-lg);
1137
- height: var(--range-thumb-size-lg);
1138
- margin-top: calc((var(--range-track-height-lg) - var(--range-thumb-size-lg)) / 2);
1136
+ width: var(--vd-range-thumb-size-lg);
1137
+ height: var(--vd-range-thumb-size-lg);
1138
+ margin-top: calc((var(--vd-range-track-height-lg) - var(--vd-range-thumb-size-lg)) / 2);
1139
1139
  }
1140
1140
 
1141
1141
  .range-lg input[type="range"]::-moz-range-thumb,
1142
1142
  input[type="range"].range-lg::-moz-range-thumb {
1143
- width: var(--range-thumb-size-lg);
1144
- height: var(--range-thumb-size-lg);
1143
+ width: var(--vd-range-thumb-size-lg);
1144
+ height: var(--vd-range-thumb-size-lg);
1145
1145
  }
1146
1146
 
1147
1147
  /* Range Value Display */
@@ -1150,9 +1150,9 @@ input[type="range"].range-lg::-moz-range-thumb {
1150
1150
  margin-left: 0.5rem;
1151
1151
  padding: 0.25rem 0.5rem;
1152
1152
  background-color: var(--vd-bg-secondary);
1153
- border-radius: var(--btn-border-radius-sm);
1154
- font-size: var(--font-size-sm);
1155
- font-weight: var(--font-weight-medium);
1153
+ border-radius: var(--vd-btn-border-radius-sm);
1154
+ font-size: var(--vd-font-size-sm);
1155
+ font-weight: var(--vd-font-weight-medium);
1156
1156
  color: var(--vd-text-primary);
1157
1157
  min-width: 3rem;
1158
1158
  text-align: center;
@@ -1162,8 +1162,8 @@ input[type="range"].range-lg::-moz-range-thumb {
1162
1162
  display: flex;
1163
1163
  align-items: center;
1164
1164
  margin-bottom: 0.5rem;
1165
- font-size: var(--font-size-sm);
1166
- font-weight: var(--font-weight-medium);
1165
+ font-size: var(--vd-font-size-sm);
1166
+ font-weight: var(--vd-font-weight-medium);
1167
1167
  color: var(--vd-text-primary);
1168
1168
  }
1169
1169
 
@@ -1171,7 +1171,7 @@ input[type="range"].range-lg::-moz-range-thumb {
1171
1171
  display: flex;
1172
1172
  justify-content: space-between;
1173
1173
  margin-top: 0.25rem;
1174
- font-size: var(--font-size-xs);
1174
+ font-size: var(--vd-font-size-xs);
1175
1175
  color: var(--vd-text-muted);
1176
1176
  }
1177
1177
 
@@ -1179,44 +1179,44 @@ input[type="range"].range-lg::-moz-range-thumb {
1179
1179
  /* stylelint-disable-next-line no-duplicate-selectors -- control-specific tokens stay grouped near their rules. */
1180
1180
  :root {
1181
1181
  /* Switch: golden rectangle (55x34 outer, 21px thumb) */
1182
- --switch-width: 3.4375rem;
1182
+ --vd-switch-width: 3.4375rem;
1183
1183
  /* 55px - fib */
1184
- --switch-width-sm: 2.125rem;
1184
+ --vd-switch-width-sm: 2.125rem;
1185
1185
  /* 34px - fib */
1186
- --switch-width-lg: 5.5625rem;
1186
+ --vd-switch-width-lg: 5.5625rem;
1187
1187
  /* 89px - fib */
1188
- --switch-height: 2.125rem;
1188
+ --vd-switch-height: 2.125rem;
1189
1189
  /* 34px - fib (55/34 ~ phi) */
1190
- --switch-height-sm: 1.3125rem;
1190
+ --vd-switch-height-sm: 1.3125rem;
1191
1191
  /* 21px - fib (34/21 ~ phi) */
1192
- --switch-height-lg: 3.4375rem;
1192
+ --vd-switch-height-lg: 3.4375rem;
1193
1193
  /* 55px - fib (89/55 ~ phi) */
1194
- --switch-thumb-size: 1.3125rem;
1194
+ --vd-switch-thumb-size: 1.3125rem;
1195
1195
  /* 21px - fib */
1196
- --switch-thumb-size-sm: 0.8125rem;
1196
+ --vd-switch-thumb-size-sm: 0.8125rem;
1197
1197
  /* 13px - fib */
1198
- --switch-thumb-size-lg: 2.125rem;
1198
+ --vd-switch-thumb-size-lg: 2.125rem;
1199
1199
  /* 34px - fib */
1200
- --switch-thumb-offset: 0.1875rem;
1200
+ --vd-switch-thumb-offset: 0.1875rem;
1201
1201
  /* 3px - fib */
1202
- --switch-bg-off: var(--vd-color-gray-300);
1203
- --switch-bg-on: var(--vd-color-primary);
1204
- --switch-bg-on-success: var(--vd-color-success);
1205
- --switch-bg-on-warning: var(--vd-color-warning);
1206
- --switch-bg-on-error: var(--vd-color-error);
1207
- --switch-thumb-bg: var(--vd-color-white);
1208
- --switch-transition: var(--transition-base);
1202
+ --vd-switch-bg-off: var(--vd-color-gray-300);
1203
+ --vd-switch-bg-on: var(--vd-color-primary);
1204
+ --vd-switch-bg-on-success: var(--vd-color-success);
1205
+ --vd-switch-bg-on-warning: var(--vd-color-warning);
1206
+ --vd-switch-bg-on-error: var(--vd-color-error);
1207
+ --vd-switch-thumb-bg: var(--vd-color-white);
1208
+ --vd-switch-transition: var(--vd-transition-base);
1209
1209
  }
1210
1210
 
1211
1211
  /* Dark Theme Switch Overrides */
1212
1212
  /* stylelint-disable-next-line no-duplicate-selectors -- dark-mode token overrides stay adjacent to switch styles. */
1213
1213
  [data-theme="dark"] {
1214
- --switch-bg-off: var(--vd-color-gray-600);
1214
+ --vd-switch-bg-off: var(--vd-color-gray-600);
1215
1215
  }
1216
1216
 
1217
1217
  @media (prefers-color-scheme: dark) {
1218
1218
  :root:not([data-theme]) {
1219
- --switch-bg-off: var(--vd-color-gray-600);
1219
+ --vd-switch-bg-off: var(--vd-color-gray-600);
1220
1220
  }
1221
1221
  }
1222
1222
 
@@ -1228,8 +1228,8 @@ input[type="range"].range-lg::-moz-range-thumb {
1228
1228
  margin-bottom: 0.75rem;
1229
1229
  position: relative;
1230
1230
  cursor: pointer;
1231
- font-size: var(--input-font-size);
1232
- line-height: var(--line-height-normal);
1231
+ font-size: var(--vd-input-font-size);
1232
+ line-height: var(--vd-line-height-normal);
1233
1233
  color: var(--vd-text-primary);
1234
1234
  user-select: none;
1235
1235
  gap: 0.75rem;
@@ -1245,38 +1245,38 @@ input[type="range"].range-lg::-moz-range-thumb {
1245
1245
 
1246
1246
  .switch-slider {
1247
1247
  position: relative;
1248
- width: var(--switch-width);
1249
- height: var(--switch-height);
1250
- background-color: var(--switch-bg-off);
1251
- border-radius: calc(var(--switch-height) / 2);
1252
- transition: var(--switch-transition);
1248
+ width: var(--vd-switch-width);
1249
+ height: var(--vd-switch-height);
1250
+ background-color: var(--vd-switch-bg-off);
1251
+ border-radius: calc(var(--vd-switch-height) / 2);
1252
+ transition: var(--vd-switch-transition);
1253
1253
  flex-shrink: 0;
1254
1254
  }
1255
1255
 
1256
1256
  .switch-slider::after {
1257
1257
  content: '';
1258
1258
  position: absolute;
1259
- left: var(--switch-thumb-offset);
1259
+ left: var(--vd-switch-thumb-offset);
1260
1260
  top: 50%;
1261
1261
  transform: translateY(-50%);
1262
- width: var(--switch-thumb-size);
1263
- height: var(--switch-thumb-size);
1264
- background-color: var(--switch-thumb-bg);
1262
+ width: var(--vd-switch-thumb-size);
1263
+ height: var(--vd-switch-thumb-size);
1264
+ background-color: var(--vd-switch-thumb-bg);
1265
1265
  border-radius: 50%;
1266
- box-shadow: var(--shadow-sm);
1267
- transition: var(--switch-transition);
1266
+ box-shadow: var(--vd-shadow-sm);
1267
+ transition: var(--vd-switch-transition);
1268
1268
  }
1269
1269
 
1270
1270
  .switch>input[type="checkbox"]:checked+.switch-slider {
1271
- background-color: var(--switch-bg-on);
1271
+ background-color: var(--vd-switch-bg-on);
1272
1272
  }
1273
1273
 
1274
1274
  .switch>input[type="checkbox"]:checked+.switch-slider::after {
1275
- left: calc(var(--switch-width) - var(--switch-thumb-size) - var(--switch-thumb-offset));
1275
+ left: calc(var(--vd-switch-width) - var(--vd-switch-thumb-size) - var(--vd-switch-thumb-offset));
1276
1276
  }
1277
1277
 
1278
1278
  .switch>input[type="checkbox"]:focus-visible+.switch-slider {
1279
- outline: 2px solid var(--input-focus-border-color);
1279
+ outline: 2px solid var(--vd-input-focus-border-color);
1280
1280
  outline-offset: 2px;
1281
1281
  }
1282
1282
 
@@ -1315,8 +1315,8 @@ input[type="range"].range-lg::-moz-range-thumb {
1315
1315
  display: flex;
1316
1316
  align-items: center;
1317
1317
  cursor: pointer;
1318
- font-size: var(--input-font-size);
1319
- line-height: var(--line-height-normal);
1318
+ font-size: var(--vd-input-font-size);
1319
+ line-height: var(--vd-line-height-normal);
1320
1320
  color: var(--vd-text-primary);
1321
1321
  user-select: none;
1322
1322
  position: relative;
@@ -1327,11 +1327,11 @@ input[type="range"].range-lg::-moz-range-thumb {
1327
1327
  .vd-form-switch-label::before {
1328
1328
  content: '';
1329
1329
  position: relative;
1330
- width: var(--switch-width);
1331
- height: var(--switch-height);
1332
- background-color: var(--switch-bg-off);
1333
- border-radius: calc(var(--switch-height) / 2);
1334
- transition: var(--switch-transition);
1330
+ width: var(--vd-switch-width);
1331
+ height: var(--vd-switch-height);
1332
+ background-color: var(--vd-switch-bg-off);
1333
+ border-radius: calc(var(--vd-switch-height) / 2);
1334
+ transition: var(--vd-switch-transition);
1335
1335
  flex-shrink: 0;
1336
1336
  margin-right: 0.75rem;
1337
1337
  }
@@ -1341,34 +1341,34 @@ input[type="range"].range-lg::-moz-range-thumb {
1341
1341
  .vd-form-switch-label::after {
1342
1342
  content: '';
1343
1343
  position: absolute;
1344
- left: var(--switch-thumb-offset);
1344
+ left: var(--vd-switch-thumb-offset);
1345
1345
  top: 50%;
1346
1346
  transform: translateY(-50%);
1347
- width: var(--switch-thumb-size);
1348
- height: var(--switch-thumb-size);
1349
- background-color: var(--switch-thumb-bg);
1347
+ width: var(--vd-switch-thumb-size);
1348
+ height: var(--vd-switch-thumb-size);
1349
+ background-color: var(--vd-switch-thumb-bg);
1350
1350
  border-radius: 50%;
1351
- box-shadow: var(--shadow-sm);
1352
- transition: var(--switch-transition);
1351
+ box-shadow: var(--vd-shadow-sm);
1352
+ transition: var(--vd-switch-transition);
1353
1353
  pointer-events: none;
1354
1354
  }
1355
1355
 
1356
1356
  .switch-input:checked+.switch-label::before,
1357
1357
  .switch-input:checked~.switch-label::before,
1358
1358
  .vd-form-switch-input:checked+.vd-form-switch-label::before {
1359
- background-color: var(--switch-bg-on);
1359
+ background-color: var(--vd-switch-bg-on);
1360
1360
  }
1361
1361
 
1362
1362
  .switch-input:checked+.switch-label::after,
1363
1363
  .switch-input:checked~.switch-label::after,
1364
1364
  .vd-form-switch-input:checked+.vd-form-switch-label::after {
1365
- left: calc(var(--switch-width) - var(--switch-thumb-size) - var(--switch-thumb-offset));
1365
+ left: calc(var(--vd-switch-width) - var(--vd-switch-thumb-size) - var(--vd-switch-thumb-offset));
1366
1366
  }
1367
1367
 
1368
1368
  .switch-input:focus-visible+.switch-label::before,
1369
1369
  .switch-input:focus-visible~.switch-label::before,
1370
1370
  .vd-form-switch-input:focus-visible+.vd-form-switch-label::before {
1371
- outline: 2px solid var(--input-focus-border-color);
1371
+ outline: 2px solid var(--vd-input-focus-border-color);
1372
1372
  outline-offset: 2px;
1373
1373
  }
1374
1374
 
@@ -1382,7 +1382,7 @@ input[type="range"].range-lg::-moz-range-thumb {
1382
1382
  .switch-input:disabled+.switch-label::before,
1383
1383
  .switch-input:disabled~.switch-label::before,
1384
1384
  .vd-form-switch-input:disabled+.vd-form-switch-label::before {
1385
- background-color: var(--input-bg-disabled);
1385
+ background-color: var(--vd-input-bg-disabled);
1386
1386
  cursor: not-allowed;
1387
1387
  }
1388
1388
 
@@ -1401,13 +1401,13 @@ input[type="range"].range-lg::-moz-range-thumb {
1401
1401
  .switch-label-right .switch-label::after,
1402
1402
  .switch-label-right .vd-form-switch-label::after {
1403
1403
  left: auto;
1404
- right: var(--switch-thumb-offset);
1404
+ right: var(--vd-switch-thumb-offset);
1405
1405
  }
1406
1406
 
1407
1407
  .switch-label-right .switch-input:checked+.switch-label::after,
1408
1408
  .switch-label-right .switch-input:checked~.switch-label::after,
1409
1409
  .switch-label-right .vd-form-switch-input:checked+.vd-form-switch-label::after {
1410
- right: calc(var(--switch-width) - var(--switch-thumb-size) - var(--switch-thumb-offset));
1410
+ right: calc(var(--vd-switch-width) - var(--vd-switch-thumb-size) - var(--vd-switch-thumb-offset));
1411
1411
  left: auto;
1412
1412
  }
1413
1413
 
@@ -1416,85 +1416,85 @@ input[type="range"].range-lg::-moz-range-thumb {
1416
1416
  .switch-sm .vd-form-switch-label,
1417
1417
  .vd-form-switch-sm .switch-label,
1418
1418
  .vd-form-switch-sm .vd-form-switch-label {
1419
- font-size: var(--input-font-size-sm);
1419
+ font-size: var(--vd-input-font-size-sm);
1420
1420
  }
1421
1421
 
1422
1422
  .switch-sm .switch-label::before,
1423
1423
  .switch-sm .vd-form-switch-label::before,
1424
1424
  .vd-form-switch-sm .switch-label::before,
1425
1425
  .vd-form-switch-sm .vd-form-switch-label::before {
1426
- width: var(--switch-width-sm);
1427
- height: var(--switch-height-sm);
1426
+ width: var(--vd-switch-width-sm);
1427
+ height: var(--vd-switch-height-sm);
1428
1428
  }
1429
1429
 
1430
1430
  .switch-sm .switch-label::after,
1431
1431
  .switch-sm .vd-form-switch-label::after,
1432
1432
  .vd-form-switch-sm .switch-label::after,
1433
1433
  .vd-form-switch-sm .vd-form-switch-label::after {
1434
- width: var(--switch-thumb-size-sm);
1435
- height: var(--switch-thumb-size-sm);
1434
+ width: var(--vd-switch-thumb-size-sm);
1435
+ height: var(--vd-switch-thumb-size-sm);
1436
1436
  }
1437
1437
 
1438
1438
  .switch-sm .switch-input:checked+.switch-label::after,
1439
1439
  .switch-sm .switch-input:checked~.switch-label::after,
1440
1440
  .vd-form-switch-sm .vd-form-switch-input:checked+.vd-form-switch-label::after {
1441
- left: calc(var(--switch-width-sm) - var(--switch-thumb-size-sm) - var(--switch-thumb-offset));
1441
+ left: calc(var(--vd-switch-width-sm) - var(--vd-switch-thumb-size-sm) - var(--vd-switch-thumb-offset));
1442
1442
  }
1443
1443
 
1444
1444
  .switch-lg .switch-label,
1445
1445
  .switch-lg .vd-form-switch-label,
1446
1446
  .vd-form-switch-lg .switch-label,
1447
1447
  .vd-form-switch-lg .vd-form-switch-label {
1448
- font-size: var(--input-font-size-lg);
1448
+ font-size: var(--vd-input-font-size-lg);
1449
1449
  }
1450
1450
 
1451
1451
  .switch-lg .switch-label::before,
1452
1452
  .switch-lg .vd-form-switch-label::before,
1453
1453
  .vd-form-switch-lg .switch-label::before,
1454
1454
  .vd-form-switch-lg .vd-form-switch-label::before {
1455
- width: var(--switch-width-lg);
1456
- height: var(--switch-height-lg);
1455
+ width: var(--vd-switch-width-lg);
1456
+ height: var(--vd-switch-height-lg);
1457
1457
  }
1458
1458
 
1459
1459
  .switch-lg .switch-label::after,
1460
1460
  .switch-lg .vd-form-switch-label::after,
1461
1461
  .vd-form-switch-lg .switch-label::after,
1462
1462
  .vd-form-switch-lg .vd-form-switch-label::after {
1463
- width: var(--switch-thumb-size-lg);
1464
- height: var(--switch-thumb-size-lg);
1463
+ width: var(--vd-switch-thumb-size-lg);
1464
+ height: var(--vd-switch-thumb-size-lg);
1465
1465
  }
1466
1466
 
1467
1467
  .switch-lg .switch-input:checked+.switch-label::after,
1468
1468
  .switch-lg .switch-input:checked~.switch-label::after,
1469
1469
  .vd-form-switch-lg .vd-form-switch-input:checked+.vd-form-switch-label::after {
1470
- left: calc(var(--switch-width-lg) - var(--switch-thumb-size-lg) - var(--switch-thumb-offset));
1470
+ left: calc(var(--vd-switch-width-lg) - var(--vd-switch-thumb-size-lg) - var(--vd-switch-thumb-offset));
1471
1471
  }
1472
1472
 
1473
1473
  /* Switch Variants */
1474
1474
  .switch-success .switch-input:checked+.switch-label::before,
1475
1475
  .switch-success .switch-input:checked~.switch-label::before,
1476
1476
  .vd-form-switch-success .vd-form-switch-input:checked+.vd-form-switch-label::before {
1477
- background-color: var(--switch-bg-on-success);
1477
+ background-color: var(--vd-switch-bg-on-success);
1478
1478
  }
1479
1479
 
1480
1480
  .switch-warning .switch-input:checked+.switch-label::before,
1481
1481
  .switch-warning .switch-input:checked~.switch-label::before,
1482
1482
  .vd-form-switch-warning .vd-form-switch-input:checked+.vd-form-switch-label::before {
1483
- background-color: var(--switch-bg-on-warning);
1483
+ background-color: var(--vd-switch-bg-on-warning);
1484
1484
  }
1485
1485
 
1486
1486
  .switch-error .switch-input:checked+.switch-label::before,
1487
1487
  .switch-error .switch-input:checked~.switch-label::before,
1488
1488
  .vd-form-switch-error .vd-form-switch-input:checked+.vd-form-switch-label::before {
1489
- background-color: var(--switch-bg-on-error);
1489
+ background-color: var(--vd-switch-bg-on-error);
1490
1490
  }
1491
1491
 
1492
1492
  /* Select Variables */
1493
1493
  /* stylelint-disable-next-line no-duplicate-selectors -- control-specific tokens stay grouped near their rules. */
1494
1494
  :root {
1495
- --select-arrow-size: 16px;
1496
- --select-arrow-color: var(--vd-text-secondary);
1497
- --select-arrow-color-focus: var(--vd-color-primary);
1495
+ --vd-select-arrow-size: 16px;
1496
+ --vd-select-arrow-color: var(--vd-text-secondary);
1497
+ --vd-select-arrow-color-focus: var(--vd-color-primary);
1498
1498
  }
1499
1499
 
1500
1500
  /* Select Wrapper */
@@ -1510,34 +1510,34 @@ input[type="range"].range-lg::-moz-range-thumb {
1510
1510
  .custom-select-button {
1511
1511
  display: block;
1512
1512
  width: 100%;
1513
- padding: var(--input-padding-y) var(--input-padding-x);
1514
- padding-right: calc(var(--input-padding-x) + var(--select-arrow-size) + 0.5rem);
1515
- font-family: var(--font-family-sans);
1516
- font-size: var(--input-font-size);
1517
- font-weight: var(--font-weight-normal);
1518
- line-height: var(--line-height-normal);
1513
+ padding: var(--vd-input-padding-y) var(--vd-input-padding-x);
1514
+ padding-right: calc(var(--vd-input-padding-x) + var(--vd-select-arrow-size) + 0.5rem);
1515
+ font-family: var(--vd-font-family-sans);
1516
+ font-size: var(--vd-input-font-size);
1517
+ font-weight: var(--vd-font-weight-normal);
1518
+ line-height: var(--vd-line-height-normal);
1519
1519
  color: var(--vd-text-primary);
1520
1520
  text-align: left;
1521
- background-color: var(--input-bg);
1521
+ background-color: var(--vd-input-bg);
1522
1522
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23495057' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e");
1523
1523
  background-repeat: no-repeat;
1524
1524
  background-position: right 0.75rem center;
1525
- background-size: var(--select-arrow-size) 12px;
1526
- border: var(--input-border-width) solid var(--input-border-color);
1527
- border-radius: var(--input-border-radius);
1528
- transition: var(--input-transition);
1525
+ background-size: var(--vd-select-arrow-size) 12px;
1526
+ border: var(--vd-input-border-width) solid var(--vd-input-border-color);
1527
+ border-radius: var(--vd-input-border-radius);
1528
+ transition: var(--vd-input-transition);
1529
1529
  cursor: pointer;
1530
1530
  appearance: none;
1531
1531
  }
1532
1532
 
1533
1533
  .custom-select-button:hover {
1534
- border-color: var(--input-focus-border-color);
1534
+ border-color: var(--vd-input-focus-border-color);
1535
1535
  }
1536
1536
 
1537
1537
  .custom-select-button:focus {
1538
1538
  outline: 0;
1539
- border-color: var(--input-focus-border-color);
1540
- box-shadow: var(--input-focus-box-shadow);
1539
+ border-color: var(--vd-input-focus-border-color);
1540
+ box-shadow: var(--vd-input-focus-box-shadow);
1541
1541
  }
1542
1542
 
1543
1543
  .custom-select-wrapper select {
@@ -1555,21 +1555,21 @@ select,
1555
1555
  .custom-select-input {
1556
1556
  display: block;
1557
1557
  width: 100%;
1558
- padding: var(--input-padding-y) var(--input-padding-x);
1559
- padding-right: calc(var(--input-padding-x) + var(--select-arrow-size) + 0.5rem);
1560
- font-family: var(--font-family-sans);
1561
- font-size: var(--input-font-size);
1562
- font-weight: var(--font-weight-normal);
1563
- line-height: var(--line-height-normal);
1558
+ padding: var(--vd-input-padding-y) var(--vd-input-padding-x);
1559
+ padding-right: calc(var(--vd-input-padding-x) + var(--vd-select-arrow-size) + 0.5rem);
1560
+ font-family: var(--vd-font-family-sans);
1561
+ font-size: var(--vd-input-font-size);
1562
+ font-weight: var(--vd-font-weight-normal);
1563
+ line-height: var(--vd-line-height-normal);
1564
1564
  color: var(--vd-text-primary);
1565
- background-color: var(--input-bg);
1565
+ background-color: var(--vd-input-bg);
1566
1566
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23495057' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e");
1567
1567
  background-repeat: no-repeat;
1568
1568
  background-position: right 0.75rem center;
1569
- background-size: var(--select-arrow-size) 12px;
1570
- border: var(--input-border-width) solid var(--input-border-color);
1571
- border-radius: var(--input-border-radius);
1572
- transition: var(--input-transition);
1569
+ background-size: var(--vd-select-arrow-size) 12px;
1570
+ border: var(--vd-input-border-width) solid var(--vd-input-border-color);
1571
+ border-radius: var(--vd-input-border-radius);
1572
+ transition: var(--vd-input-transition);
1573
1573
  appearance: none;
1574
1574
  cursor: pointer;
1575
1575
  }
@@ -1579,8 +1579,8 @@ select:focus,
1579
1579
  .select-input:focus,
1580
1580
  .custom-select-input:focus {
1581
1581
  outline: 0;
1582
- border-color: var(--input-focus-border-color);
1583
- box-shadow: var(--input-focus-box-shadow);
1582
+ border-color: var(--vd-input-focus-border-color);
1583
+ box-shadow: var(--vd-input-focus-box-shadow);
1584
1584
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%2322b8cf' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e");
1585
1585
  }
1586
1586
 
@@ -1588,7 +1588,7 @@ select.vd-input:disabled,
1588
1588
  select:disabled,
1589
1589
  .select-input:disabled,
1590
1590
  .custom-select-input:disabled {
1591
- background-color: var(--input-bg-disabled);
1591
+ background-color: var(--vd-input-bg-disabled);
1592
1592
  opacity: 0.6;
1593
1593
  cursor: not-allowed;
1594
1594
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23868e96' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e");
@@ -1613,20 +1613,20 @@ select.vd-input.is-success,
1613
1613
  select.vd-input-sm,
1614
1614
  .select-input-sm,
1615
1615
  .custom-select-sm {
1616
- padding: var(--input-padding-y-sm) var(--input-padding-x-sm);
1617
- padding-right: calc(var(--input-padding-x-sm) + var(--select-arrow-size) + 0.5rem);
1618
- font-size: var(--input-font-size-sm);
1619
- border-radius: var(--input-border-radius-sm);
1616
+ padding: var(--vd-input-padding-y-sm) var(--vd-input-padding-x-sm);
1617
+ padding-right: calc(var(--vd-input-padding-x-sm) + var(--vd-select-arrow-size) + 0.5rem);
1618
+ font-size: var(--vd-input-font-size-sm);
1619
+ border-radius: var(--vd-input-border-radius-sm);
1620
1620
  background-size: 14px 10px;
1621
1621
  }
1622
1622
 
1623
1623
  select.vd-input-lg,
1624
1624
  .select-input-lg,
1625
1625
  .custom-select-lg {
1626
- padding: var(--input-padding-y-lg) var(--input-padding-x-lg);
1627
- padding-right: calc(var(--input-padding-x-lg) + var(--select-arrow-size) + 0.5rem);
1628
- font-size: var(--input-font-size-lg);
1629
- border-radius: var(--input-border-radius-lg);
1626
+ padding: var(--vd-input-padding-y-lg) var(--vd-input-padding-x-lg);
1627
+ padding-right: calc(var(--vd-input-padding-x-lg) + var(--vd-select-arrow-size) + 0.5rem);
1628
+ font-size: var(--vd-input-font-size-lg);
1629
+ border-radius: var(--vd-input-border-radius-lg);
1630
1630
  background-size: 18px 14px;
1631
1631
  }
1632
1632
 
@@ -1635,8 +1635,8 @@ select[multiple].vd-input,
1635
1635
  select[multiple],
1636
1636
  .select-input[multiple],
1637
1637
  .custom-select-input[multiple] {
1638
- padding: var(--input-padding-y) var(--input-padding-x);
1639
- padding-right: var(--input-padding-x);
1638
+ padding: var(--vd-input-padding-y) var(--vd-input-padding-x);
1639
+ padding-right: var(--vd-input-padding-x);
1640
1640
  background-image: none;
1641
1641
  min-height: 120px;
1642
1642
  }
@@ -1657,10 +1657,10 @@ select[multiple] option,
1657
1657
  z-index: 1000;
1658
1658
  display: none;
1659
1659
  margin-top: 0.25rem;
1660
- background-color: var(--input-bg);
1661
- border: 1px solid var(--input-border-color);
1662
- border-radius: var(--input-border-radius);
1663
- box-shadow: var(--shadow-lg);
1660
+ background-color: var(--vd-input-bg);
1661
+ border: 1px solid var(--vd-input-border-color);
1662
+ border-radius: var(--vd-input-border-radius);
1663
+ box-shadow: var(--vd-shadow-lg);
1664
1664
  max-height: 300px;
1665
1665
  overflow-y: auto;
1666
1666
  }
@@ -1672,14 +1672,14 @@ select[multiple] option,
1672
1672
  .custom-select-option {
1673
1673
  display: block;
1674
1674
  width: 100%;
1675
- padding: var(--input-padding-y) var(--input-padding-x);
1676
- font-size: var(--input-font-size);
1675
+ padding: var(--vd-input-padding-y) var(--vd-input-padding-x);
1676
+ font-size: var(--vd-input-font-size);
1677
1677
  color: var(--vd-text-primary);
1678
1678
  background-color: transparent;
1679
1679
  border: none;
1680
1680
  text-align: left;
1681
1681
  cursor: pointer;
1682
- transition: var(--transition-bg);
1682
+ transition: var(--vd-transition-bg);
1683
1683
  }
1684
1684
 
1685
1685
  .custom-select-option:hover,
@@ -1691,7 +1691,7 @@ select[multiple] option,
1691
1691
  .custom-select-option.is-selected {
1692
1692
  background-color: var(--vd-color-primary-alpha-10);
1693
1693
  color: var(--vd-color-primary);
1694
- font-weight: var(--font-weight-medium);
1694
+ font-weight: var(--vd-font-weight-medium);
1695
1695
  }
1696
1696
 
1697
1697
  .custom-select-option.is-disabled,
@@ -1702,25 +1702,25 @@ select[multiple] option,
1702
1702
  }
1703
1703
 
1704
1704
  .custom-select-option-group {
1705
- padding: 0.5rem var(--input-padding-x);
1706
- font-size: var(--font-size-sm);
1707
- font-weight: var(--font-weight-semibold);
1705
+ padding: 0.5rem var(--vd-input-padding-x);
1706
+ font-size: var(--vd-font-size-sm);
1707
+ font-weight: var(--vd-font-weight-semibold);
1708
1708
  color: var(--vd-text-muted);
1709
1709
  text-transform: uppercase;
1710
1710
  letter-spacing: 0.05em;
1711
1711
  }
1712
1712
 
1713
1713
  .custom-select-search {
1714
- padding: var(--input-padding-y) var(--input-padding-x);
1715
- border-bottom: 1px solid var(--input-border-color);
1714
+ padding: var(--vd-input-padding-y) var(--vd-input-padding-x);
1715
+ border-bottom: 1px solid var(--vd-input-border-color);
1716
1716
  }
1717
1717
 
1718
1718
  .custom-select-search input {
1719
1719
  width: 100%;
1720
1720
  padding: 0.5rem;
1721
- font-size: var(--input-font-size-sm);
1722
- border: 1px solid var(--input-border-color);
1723
- border-radius: var(--input-border-radius-sm);
1721
+ font-size: var(--vd-input-font-size-sm);
1722
+ border: 1px solid var(--vd-input-border-color);
1723
+ border-radius: var(--vd-input-border-radius-sm);
1724
1724
  }
1725
1725
 
1726
1726
  /* Dark Mode - Select Arrow Colors */