@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,37 +5,37 @@
5
5
 
6
6
  :root {
7
7
  /* Collapsible Colors */
8
- --collapsible-border-color: var(--border-color);
9
- --collapsible-bg: var(--color-white);
10
- --collapsible-header-bg: var(--bg-secondary);
11
- --collapsible-header-bg-hover: var(--bg-secondary);
12
- --collapsible-header-bg-active: var(--bg-secondary);
13
- --collapsible-focus-ring: 0 0 0 2px var(--input-focus-border-color);
8
+ --vd-collapsible-border-color: var(--vd-border-color);
9
+ --vd-collapsible-bg: var(--vd-color-white);
10
+ --vd-collapsible-header-bg: var(--vd-bg-secondary);
11
+ --vd-collapsible-header-bg-hover: var(--vd-bg-secondary);
12
+ --vd-collapsible-header-bg-active: var(--vd-bg-secondary);
13
+ --vd-collapsible-focus-ring: 0 0 0 2px var(--vd-input-focus-border-color);
14
14
 
15
15
  /* Collapsible Spacing (Fibonacci) */
16
- --collapsible-padding-y: 0.8125rem; /* 13px - fib */
17
- --collapsible-padding-x: 1.3125rem; /* 21px - fib (21/13 ~ phi) */
18
- --collapsible-body-padding: 1.3125rem; /* 21px - fib */
16
+ --vd-collapsible-padding-y: 0.8125rem; /* 13px - fib */
17
+ --vd-collapsible-padding-x: 1.3125rem; /* 21px - fib (21/13 ~ phi) */
18
+ --vd-collapsible-body-padding: 1.3125rem; /* 21px - fib */
19
19
 
20
20
  /* Collapsible Transitions */
21
- --collapsible-transition: height var(--transition-duration-slow) var(--transition-ease),
22
- opacity var(--transition-duration-base) var(--transition-ease);
21
+ --vd-collapsible-transition: height var(--vd-transition-duration-slow) var(--vd-transition-ease),
22
+ opacity var(--vd-transition-duration-base) var(--vd-transition-ease);
23
23
  }
24
24
 
25
25
  /* Dark Theme Overrides */
26
26
  [data-theme="dark"] {
27
- --collapsible-bg: var(--bg-secondary);
28
- --collapsible-header-bg: var(--bg-primary);
29
- --collapsible-header-bg-hover: var(--bg-primary);
30
- --collapsible-header-bg-active: var(--bg-primary);
27
+ --vd-collapsible-bg: var(--vd-bg-secondary);
28
+ --vd-collapsible-header-bg: var(--vd-bg-primary);
29
+ --vd-collapsible-header-bg-hover: var(--vd-bg-primary);
30
+ --vd-collapsible-header-bg-active: var(--vd-bg-primary);
31
31
  }
32
32
 
33
33
  @media (prefers-color-scheme: dark) {
34
34
  :root:not([data-theme]) {
35
- --collapsible-bg: var(--bg-secondary);
36
- --collapsible-header-bg: var(--bg-primary);
37
- --collapsible-header-bg-hover: var(--bg-primary);
38
- --collapsible-header-bg-active: var(--bg-primary);
35
+ --vd-collapsible-bg: var(--vd-bg-secondary);
36
+ --vd-collapsible-header-bg: var(--vd-bg-primary);
37
+ --vd-collapsible-header-bg-hover: var(--vd-bg-primary);
38
+ --vd-collapsible-header-bg-active: var(--vd-bg-primary);
39
39
  }
40
40
  }
41
41
 
@@ -50,11 +50,11 @@
50
50
  /* Collapsible Item */
51
51
  .vd-collapsible-item,
52
52
  .accordion-item {
53
- border: 1px solid var(--collapsible-border-color);
54
- border-radius: var(--btn-border-radius);
53
+ border: 1px solid var(--vd-collapsible-border-color);
54
+ border-radius: var(--vd-btn-border-radius);
55
55
  margin-bottom: 0.5rem;
56
56
  overflow: hidden;
57
- background-color: var(--collapsible-bg);
57
+ background-color: var(--vd-collapsible-bg);
58
58
  position: relative;
59
59
  }
60
60
 
@@ -69,25 +69,25 @@
69
69
  display: flex;
70
70
  align-items: center;
71
71
  justify-content: space-between;
72
- padding: var(--collapsible-padding-y) var(--collapsible-padding-x);
73
- background-color: var(--collapsible-header-bg);
72
+ padding: var(--vd-collapsible-padding-y) var(--vd-collapsible-padding-x);
73
+ background-color: var(--vd-collapsible-header-bg);
74
74
  cursor: pointer;
75
75
  user-select: none;
76
- transition: var(--transition-bg);
76
+ transition: var(--vd-transition-bg);
77
77
  border: none;
78
78
  -webkit-appearance: none;
79
79
  appearance: none;
80
80
  width: 100%;
81
81
  text-align: left;
82
- font-family: var(--font-family-sans);
83
- font-size: var(--font-size-base);
84
- font-weight: var(--font-weight-medium);
85
- color: var(--text-primary);
82
+ font-family: var(--vd-font-family-sans);
83
+ font-size: var(--vd-font-size-base);
84
+ font-weight: var(--vd-font-weight-medium);
85
+ color: var(--vd-text-primary);
86
86
  }
87
87
 
88
88
  .vd-collapsible-header:hover,
89
89
  .accordion-header:hover {
90
- background-color: var(--collapsible-header-bg-hover);
90
+ background-color: var(--vd-collapsible-header-bg-hover);
91
91
  }
92
92
 
93
93
  .vd-collapsible-header:focus,
@@ -102,14 +102,14 @@
102
102
  .vd-collapsible-item:has(.vd-collapsible-trigger:focus-visible),
103
103
  .accordion-item:has(.accordion-header:focus-visible),
104
104
  .accordion-item:has(.accordion-trigger:focus-visible) {
105
- box-shadow: var(--collapsible-focus-ring);
105
+ box-shadow: var(--vd-collapsible-focus-ring);
106
106
  z-index: 1;
107
107
  }
108
108
 
109
109
  .vd-collapsible-item.is-open .vd-collapsible-header,
110
110
  .accordion-item.is-open .accordion-header {
111
- background-color: var(--collapsible-header-bg-active);
112
- font-weight: var(--font-weight-semibold);
111
+ background-color: var(--vd-collapsible-header-bg-active);
112
+ font-weight: var(--vd-font-weight-semibold);
113
113
  }
114
114
 
115
115
  /* Collapsible Trigger */
@@ -119,10 +119,10 @@
119
119
  align-items: center;
120
120
  justify-content: space-between;
121
121
  width: 100%;
122
- font-family: var(--font-family-sans);
123
- font-size: var(--font-size-base);
124
- font-weight: var(--font-weight-medium);
125
- color: var(--text-primary);
122
+ font-family: var(--vd-font-family-sans);
123
+ font-size: var(--vd-font-size-base);
124
+ font-weight: var(--vd-font-weight-medium);
125
+ color: var(--vd-text-primary);
126
126
  text-decoration: none;
127
127
  background: none;
128
128
  border: none;
@@ -149,15 +149,15 @@
149
149
  height: 1.5rem;
150
150
  margin-left: 0.75rem;
151
151
  flex-shrink: 0;
152
- transition: transform var(--transition-duration-base) var(--transition-ease);
152
+ transition: transform var(--vd-transition-duration-base) var(--vd-transition-ease);
153
153
  }
154
154
 
155
155
  .vd-collapsible-icon::before,
156
156
  .accordion-icon::before {
157
157
  content: '▼';
158
158
  font-size: 0.75rem;
159
- color: var(--text-secondary);
160
- transition: transform var(--transition-duration-base) var(--transition-ease);
159
+ color: var(--vd-text-secondary);
160
+ transition: transform var(--vd-transition-duration-base) var(--vd-transition-ease);
161
161
  }
162
162
 
163
163
  .vd-collapsible-item.is-open .vd-collapsible-icon::before,
@@ -170,7 +170,7 @@
170
170
  .accordion-body {
171
171
  max-height: 0;
172
172
  overflow: hidden;
173
- transition: var(--collapsible-transition);
173
+ transition: var(--vd-collapsible-transition);
174
174
  opacity: 0;
175
175
  }
176
176
 
@@ -178,47 +178,47 @@
178
178
  .accordion-item.is-open .accordion-body {
179
179
  max-height: 5000px;
180
180
  opacity: 1;
181
- padding: var(--collapsible-body-padding);
182
- border-top: 1px solid var(--collapsible-border-color);
181
+ padding: var(--vd-collapsible-body-padding);
182
+ border-top: 1px solid var(--vd-collapsible-border-color);
183
183
  }
184
184
 
185
185
  /* Collapsible Content */
186
186
  .vd-collapsible-content,
187
187
  .accordion-content {
188
- color: var(--text-primary);
189
- line-height: var(--line-height-normal);
188
+ color: var(--vd-text-primary);
189
+ line-height: var(--vd-line-height-normal);
190
190
  }
191
191
 
192
192
  /* Collapsible States */
193
193
  .vd-collapsible-item.is-active,
194
194
  .accordion-item.is-active {
195
- border-color: var(--color-primary);
195
+ border-color: var(--vd-color-primary);
196
196
  }
197
197
 
198
198
  .vd-collapsible-item.is-active .vd-collapsible-header,
199
199
  .accordion-item.is-active .accordion-header {
200
- background-color: var(--color-primary-alpha-10);
201
- color: var(--color-primary);
200
+ background-color: var(--vd-color-primary-alpha-10);
201
+ color: var(--vd-color-primary);
202
202
  }
203
203
 
204
204
  /* Collapsible Variants - Bordered */
205
205
  .vd-collapsible-bordered .vd-collapsible-item,
206
206
  .accordion-bordered .accordion-item {
207
- border: 1px solid var(--collapsible-border-color);
207
+ border: 1px solid var(--vd-collapsible-border-color);
208
208
  border-radius: 0;
209
209
  margin-bottom: -1px;
210
210
  }
211
211
 
212
212
  .vd-collapsible-bordered .vd-collapsible-item:first-child,
213
213
  .accordion-bordered .accordion-item:first-child {
214
- border-top-left-radius: var(--btn-border-radius);
215
- border-top-right-radius: var(--btn-border-radius);
214
+ border-top-left-radius: var(--vd-btn-border-radius);
215
+ border-top-right-radius: var(--vd-btn-border-radius);
216
216
  }
217
217
 
218
218
  .vd-collapsible-bordered .vd-collapsible-item:last-child,
219
219
  .accordion-bordered .accordion-item:last-child {
220
- border-bottom-left-radius: var(--btn-border-radius);
221
- border-bottom-right-radius: var(--btn-border-radius);
220
+ border-bottom-left-radius: var(--vd-btn-border-radius);
221
+ border-bottom-right-radius: var(--vd-btn-border-radius);
222
222
  margin-bottom: 0;
223
223
  }
224
224
 
@@ -227,7 +227,7 @@
227
227
  .accordion-flush .accordion-item {
228
228
  border: none;
229
229
  border-radius: 0;
230
- border-bottom: 1px solid var(--collapsible-border-color);
230
+ border-bottom: 1px solid var(--vd-collapsible-border-color);
231
231
  margin-bottom: 0;
232
232
  background-color: transparent;
233
233
  overflow: visible;
@@ -249,7 +249,7 @@
249
249
  .vd-collapsible-flush .vd-collapsible-trigger:hover,
250
250
  .accordion-flush .accordion-header:hover,
251
251
  .accordion-flush .accordion-trigger:hover {
252
- border-radius: var(--btn-border-radius);
252
+ border-radius: var(--vd-btn-border-radius);
253
253
  }
254
254
 
255
255
  .vd-collapsible-flush .vd-collapsible-item:has(.vd-collapsible-header:focus-visible),
@@ -263,8 +263,8 @@
263
263
  .vd-collapsible-flush .vd-collapsible-trigger:focus-visible,
264
264
  .accordion-flush .accordion-header:focus-visible,
265
265
  .accordion-flush .accordion-trigger:focus-visible {
266
- border-radius: var(--btn-border-radius);
267
- box-shadow: var(--collapsible-focus-ring);
266
+ border-radius: var(--vd-btn-border-radius);
267
+ box-shadow: var(--vd-collapsible-focus-ring);
268
268
  position: relative;
269
269
  z-index: 1;
270
270
  }
@@ -272,24 +272,24 @@
272
272
  /* Collapsible Sizes */
273
273
  .vd-collapsible-sm .vd-collapsible-header,
274
274
  .accordion-sm .accordion-header {
275
- padding: calc(var(--collapsible-padding-y) * 0.75) calc(var(--collapsible-padding-x) * 0.75);
276
- font-size: var(--font-size-sm);
275
+ padding: calc(var(--vd-collapsible-padding-y) * 0.75) calc(var(--vd-collapsible-padding-x) * 0.75);
276
+ font-size: var(--vd-font-size-sm);
277
277
  }
278
278
 
279
279
  .vd-collapsible-sm .vd-collapsible-body,
280
280
  .accordion-sm .accordion-body {
281
- padding: calc(var(--collapsible-body-padding) * 0.75);
281
+ padding: calc(var(--vd-collapsible-body-padding) * 0.75);
282
282
  }
283
283
 
284
284
  .vd-collapsible-lg .vd-collapsible-header,
285
285
  .accordion-lg .accordion-header {
286
- padding: calc(var(--collapsible-padding-y) * 1.25) calc(var(--collapsible-padding-x) * 1.25);
287
- font-size: var(--font-size-lg);
286
+ padding: calc(var(--vd-collapsible-padding-y) * 1.25) calc(var(--vd-collapsible-padding-x) * 1.25);
287
+ font-size: var(--vd-font-size-lg);
288
288
  }
289
289
 
290
290
  .vd-collapsible-lg .vd-collapsible-body,
291
291
  .accordion-lg .accordion-body {
292
- padding: calc(var(--collapsible-body-padding) * 1.25);
292
+ padding: calc(var(--vd-collapsible-body-padding) * 1.25);
293
293
  }
294
294
 
295
295
  /* Accordion Mode (single open) */
@@ -300,20 +300,20 @@
300
300
  }
301
301
 
302
302
  .accordion .accordion-item.is-open ~ .accordion-item.is-open {
303
- border-top: 1px solid var(--collapsible-border-color);
303
+ border-top: 1px solid var(--vd-collapsible-border-color);
304
304
  }
305
305
 
306
306
  /* Responsive Behavior */
307
307
  @media (max-width: 575.98px) {
308
308
  .vd-collapsible-header,
309
309
  .accordion-header {
310
- padding: calc(var(--collapsible-padding-y) * 0.875) var(--collapsible-padding-x);
311
- font-size: var(--font-size-sm);
310
+ padding: calc(var(--vd-collapsible-padding-y) * 0.875) var(--vd-collapsible-padding-x);
311
+ font-size: var(--vd-font-size-sm);
312
312
  }
313
313
 
314
314
  .vd-collapsible-body,
315
315
  .accordion-body {
316
- padding: var(--collapsible-padding-x);
316
+ padding: var(--vd-collapsible-padding-x);
317
317
  }
318
318
  }
319
319
 
@@ -5,40 +5,40 @@
5
5
 
6
6
  :root {
7
7
  /* Collection Colors */
8
- --collection-bg: var(--color-white);
9
- --collection-item-bg: var(--color-white);
10
- --collection-item-bg-hover: var(--bg-secondary);
11
- --collection-item-bg-active: var(--color-primary-alpha-10);
12
- --collection-border-color: var(--border-color);
8
+ --vd-collection-bg: var(--vd-color-white);
9
+ --vd-collection-item-bg: var(--vd-color-white);
10
+ --vd-collection-item-bg-hover: var(--vd-bg-secondary);
11
+ --vd-collection-item-bg-active: var(--vd-color-primary-alpha-10);
12
+ --vd-collection-border-color: var(--vd-border-color);
13
13
 
14
14
  /* Collection Spacing (Fibonacci) */
15
- --collection-padding-y: 0;
16
- --collection-padding-x: 0;
17
- --collection-item-padding-y: 0.8125rem; /* 13px - fib */
18
- --collection-item-padding-x: 1.3125rem; /* 21px - fib */
19
- --collection-item-padding-y-sm: 0.5rem; /* 8px - fib */
20
- --collection-item-padding-x-sm: 0.8125rem; /* 13px - fib */
21
- --collection-item-padding-y-lg: 1.3125rem; /* 21px - fib */
22
- --collection-item-padding-x-lg: 2.125rem; /* 34px - fib */
15
+ --vd-collection-padding-y: 0;
16
+ --vd-collection-padding-x: 0;
17
+ --vd-collection-item-padding-y: 0.8125rem; /* 13px - fib */
18
+ --vd-collection-item-padding-x: 1.3125rem; /* 21px - fib */
19
+ --vd-collection-item-padding-y-sm: 0.5rem; /* 8px - fib */
20
+ --vd-collection-item-padding-x-sm: 0.8125rem; /* 13px - fib */
21
+ --vd-collection-item-padding-y-lg: 1.3125rem; /* 21px - fib */
22
+ --vd-collection-item-padding-x-lg: 2.125rem; /* 34px - fib */
23
23
 
24
24
  /* Collection Avatar (Fibonacci) */
25
- --collection-avatar-size: 2.125rem; /* 34px - fib */
26
- --collection-avatar-size-sm: 1.3125rem; /* 21px - fib */
27
- --collection-avatar-size-lg: 3.4375rem; /* 55px - fib */
25
+ --vd-collection-avatar-size: 2.125rem; /* 34px - fib */
26
+ --vd-collection-avatar-size-sm: 1.3125rem; /* 21px - fib */
27
+ --vd-collection-avatar-size-lg: 3.4375rem; /* 55px - fib */
28
28
  }
29
29
 
30
30
  /* Dark Theme Overrides */
31
31
  [data-theme="dark"] {
32
- --collection-bg: var(--bg-secondary);
33
- --collection-item-bg: var(--bg-secondary);
34
- --collection-item-bg-hover: var(--bg-primary);
32
+ --vd-collection-bg: var(--vd-bg-secondary);
33
+ --vd-collection-item-bg: var(--vd-bg-secondary);
34
+ --vd-collection-item-bg-hover: var(--vd-bg-primary);
35
35
  }
36
36
 
37
37
  @media (prefers-color-scheme: dark) {
38
38
  :root:not([data-theme]) {
39
- --collection-bg: var(--bg-secondary);
40
- --collection-item-bg: var(--bg-secondary);
41
- --collection-item-bg-hover: var(--bg-primary);
39
+ --vd-collection-bg: var(--vd-bg-secondary);
40
+ --vd-collection-item-bg: var(--vd-bg-secondary);
41
+ --vd-collection-item-bg-hover: var(--vd-bg-primary);
42
42
  }
43
43
  }
44
44
 
@@ -46,23 +46,23 @@
46
46
  .vd-collection {
47
47
  display: flex;
48
48
  flex-direction: column;
49
- padding: var(--collection-padding-y) var(--collection-padding-x);
49
+ padding: var(--vd-collection-padding-y) var(--vd-collection-padding-x);
50
50
  margin-bottom: 0;
51
51
  list-style: none;
52
- background-color: var(--collection-bg);
52
+ background-color: var(--vd-collection-bg);
53
53
  }
54
54
 
55
55
  /* Collection Item */
56
56
  .vd-collection-item {
57
57
  display: flex;
58
58
  align-items: center;
59
- padding: var(--collection-item-padding-y) var(--collection-item-padding-x);
59
+ padding: var(--vd-collection-item-padding-y) var(--vd-collection-item-padding-x);
60
60
  margin-bottom: 0;
61
- color: var(--text-primary);
61
+ color: var(--vd-text-primary);
62
62
  text-decoration: none;
63
- background-color: var(--collection-item-bg);
64
- border-bottom: 1px solid var(--collection-border-color);
65
- transition: var(--transition-bg);
63
+ background-color: var(--vd-collection-item-bg);
64
+ border-bottom: 1px solid var(--vd-collection-border-color);
65
+ transition: var(--vd-transition-bg);
66
66
  }
67
67
 
68
68
  .vd-collection-item:last-child {
@@ -70,14 +70,14 @@
70
70
  }
71
71
 
72
72
  .vd-collection-item:hover {
73
- background-color: var(--collection-item-bg-hover);
73
+ background-color: var(--vd-collection-item-bg-hover);
74
74
  text-decoration: none;
75
75
  }
76
76
 
77
77
  .vd-collection-item.active {
78
- background-color: var(--collection-item-bg-active);
79
- color: var(--color-primary);
80
- font-weight: var(--font-weight-medium);
78
+ background-color: var(--vd-collection-item-bg-active);
79
+ color: var(--vd-color-primary);
80
+ font-weight: var(--vd-font-weight-medium);
81
81
  }
82
82
 
83
83
  .vd-collection-item.disabled {
@@ -89,11 +89,11 @@
89
89
  /* Collection Avatar */
90
90
  .vd-collection-avatar {
91
91
  flex-shrink: 0;
92
- width: var(--collection-avatar-size);
93
- height: var(--collection-avatar-size);
92
+ width: var(--vd-collection-avatar-size);
93
+ height: var(--vd-collection-avatar-size);
94
94
  margin-right: 1rem;
95
95
  border-radius: 50%;
96
- background-color: var(--bg-secondary);
96
+ background-color: var(--vd-bg-secondary);
97
97
  display: flex;
98
98
  align-items: center;
99
99
  justify-content: center;
@@ -108,7 +108,7 @@
108
108
 
109
109
  .vd-collection-avatar-icon {
110
110
  font-size: 1.25rem;
111
- color: var(--text-secondary);
111
+ color: var(--vd-text-secondary);
112
112
  }
113
113
 
114
114
  /* Collection Content */
@@ -119,21 +119,21 @@
119
119
 
120
120
  .vd-collection-title {
121
121
  margin: 0 0 0.25rem 0;
122
- font-size: var(--font-size-base);
123
- font-weight: var(--font-weight-medium);
124
- line-height: var(--line-height-normal);
125
- color: var(--text-primary);
122
+ font-size: var(--vd-font-size-base);
123
+ font-weight: var(--vd-font-weight-medium);
124
+ line-height: var(--vd-line-height-normal);
125
+ color: var(--vd-text-primary);
126
126
  }
127
127
 
128
128
  .vd-collection-item.active .vd-collection-title {
129
- color: var(--color-primary);
129
+ color: var(--vd-color-primary);
130
130
  }
131
131
 
132
132
  .vd-collection-text {
133
133
  margin: 0;
134
- font-size: var(--font-size-sm);
135
- line-height: var(--line-height-normal);
136
- color: var(--text-secondary);
134
+ font-size: var(--vd-font-size-sm);
135
+ line-height: var(--vd-line-height-normal);
136
+ color: var(--vd-text-secondary);
137
137
  }
138
138
 
139
139
  .vd-collection-item-secondary {
@@ -159,31 +159,31 @@
159
159
  height: 0;
160
160
  margin: 0.5rem 0;
161
161
  overflow: hidden;
162
- border-top: 1px solid var(--collection-border-color);
162
+ border-top: 1px solid var(--vd-collection-border-color);
163
163
  }
164
164
 
165
165
  /* Collection Header */
166
166
  .vd-collection-header {
167
- padding: var(--collection-item-padding-y) var(--collection-item-padding-x);
167
+ padding: var(--vd-collection-item-padding-y) var(--vd-collection-item-padding-x);
168
168
  margin-bottom: 0;
169
- font-size: var(--font-size-sm);
170
- font-weight: var(--font-weight-semibold);
171
- color: var(--text-muted);
169
+ font-size: var(--vd-font-size-sm);
170
+ font-weight: var(--vd-font-weight-semibold);
171
+ color: var(--vd-text-muted);
172
172
  text-transform: uppercase;
173
173
  letter-spacing: 0.05em;
174
- background-color: var(--bg-secondary);
175
- border-bottom: 1px solid var(--collection-border-color);
174
+ background-color: var(--vd-bg-secondary);
175
+ border-bottom: 1px solid var(--vd-collection-border-color);
176
176
  }
177
177
 
178
178
  /* Collection Variants */
179
179
  .vd-collection-bordered {
180
- border: 1px solid var(--collection-border-color);
181
- border-radius: var(--btn-border-radius);
180
+ border: 1px solid var(--vd-collection-border-color);
181
+ border-radius: var(--vd-btn-border-radius);
182
182
  overflow: hidden;
183
183
  }
184
184
 
185
185
  .vd-collection-bordered .vd-collection-item {
186
- border-bottom: 1px solid var(--collection-border-color);
186
+ border-bottom: 1px solid var(--vd-collection-border-color);
187
187
  }
188
188
 
189
189
  .vd-collection-bordered .vd-collection-item:last-child {
@@ -191,11 +191,11 @@
191
191
  }
192
192
 
193
193
  .vd-collection-stripped .vd-collection-item:nth-child(odd) {
194
- background-color: var(--bg-secondary);
194
+ background-color: var(--vd-bg-secondary);
195
195
  }
196
196
 
197
197
  .vd-collection-stripped .vd-collection-item:nth-child(odd):hover {
198
- background-color: var(--collection-item-bg-hover);
198
+ background-color: var(--vd-collection-item-bg-hover);
199
199
  }
200
200
 
201
201
  .vd-collection-hoverable .vd-collection-item {
@@ -204,37 +204,37 @@
204
204
 
205
205
  /* Collection Sizes */
206
206
  .vd-collection-sm .vd-collection-item {
207
- padding: var(--collection-item-padding-y-sm) var(--collection-item-padding-x-sm);
207
+ padding: var(--vd-collection-item-padding-y-sm) var(--vd-collection-item-padding-x-sm);
208
208
  }
209
209
 
210
210
  .vd-collection-sm .vd-collection-avatar {
211
- width: var(--collection-avatar-size-sm);
212
- height: var(--collection-avatar-size-sm);
211
+ width: var(--vd-collection-avatar-size-sm);
212
+ height: var(--vd-collection-avatar-size-sm);
213
213
  }
214
214
 
215
215
  .vd-collection-sm .vd-collection-title {
216
- font-size: var(--font-size-sm);
216
+ font-size: var(--vd-font-size-sm);
217
217
  }
218
218
 
219
219
  .vd-collection-sm .vd-collection-text {
220
- font-size: var(--font-size-xs);
220
+ font-size: var(--vd-font-size-xs);
221
221
  }
222
222
 
223
223
  .vd-collection-lg .vd-collection-item {
224
- padding: var(--collection-item-padding-y-lg) var(--collection-item-padding-x-lg);
224
+ padding: var(--vd-collection-item-padding-y-lg) var(--vd-collection-item-padding-x-lg);
225
225
  }
226
226
 
227
227
  .vd-collection-lg .vd-collection-avatar {
228
- width: var(--collection-avatar-size-lg);
229
- height: var(--collection-avatar-size-lg);
228
+ width: var(--vd-collection-avatar-size-lg);
229
+ height: var(--vd-collection-avatar-size-lg);
230
230
  }
231
231
 
232
232
  .vd-collection-lg .vd-collection-title {
233
- font-size: var(--font-size-lg);
233
+ font-size: var(--vd-font-size-lg);
234
234
  }
235
235
 
236
236
  .vd-collection-lg .vd-collection-text {
237
- font-size: var(--font-size-base);
237
+ font-size: var(--vd-font-size-base);
238
238
  }
239
239
 
240
240
  /* Responsive Behavior */
@@ -247,7 +247,7 @@
247
247
  width: 100%;
248
248
  margin-left: 0;
249
249
  margin-top: 0.5rem;
250
- padding-left: calc(var(--collection-avatar-size) + 1rem);
250
+ padding-left: calc(var(--vd-collection-avatar-size) + 1rem);
251
251
  }
252
252
  }
253
253