@vanduo-oss/framework 1.4.0 → 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 (87) 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 +52 -52
  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 +47 -47
  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 +29 -29
  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 +20 -20
  63. package/dist/vanduo.cjs.js.map +2 -2
  64. package/dist/vanduo.cjs.min.js +4 -4
  65. package/dist/vanduo.cjs.min.js.map +2 -2
  66. package/dist/vanduo.css +4030 -4127
  67. package/dist/vanduo.css.map +1 -1
  68. package/dist/vanduo.esm.js +20 -20
  69. package/dist/vanduo.esm.js.map +2 -2
  70. package/dist/vanduo.esm.min.js +4 -4
  71. package/dist/vanduo.esm.min.js.map +2 -2
  72. package/dist/vanduo.js +20 -20
  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 +4 -4
  77. package/dist/vanduo.min.js.map +2 -2
  78. package/js/components/affix.js +2 -2
  79. package/js/components/image-box.js +2 -2
  80. package/js/components/morph.js +1 -1
  81. package/js/components/music-player.js +11 -11
  82. package/js/components/navbar.js +1 -1
  83. package/js/components/preloader.js +1 -1
  84. package/js/components/theme-customizer.js +4 -4
  85. package/js/components/vd-hex.js +8 -10
  86. package/package.json +1 -1
  87. package/css/core/vd-aliases.css +0 -108
@@ -5,24 +5,24 @@
5
5
 
6
6
  :root {
7
7
  /* Rating Colors */
8
- --rating-active-color: #f59e0b;
9
- --rating-inactive-color: var(--vd-color-gray-300, #dee2e6);
10
- --rating-hover-color: #fbbf24;
8
+ --vd-rating-active-color: #f59e0b;
9
+ --vd-rating-inactive-color: var(--vd-color-gray-300, #dee2e6);
10
+ --vd-rating-hover-color: #fbbf24;
11
11
 
12
12
  /* Rating Dimensions (Fibonacci) */
13
- --rating-size: 1.3125rem; /* 21px - fib */
14
- --rating-size-sm: 1rem;
15
- --rating-size-lg: 2.125rem; /* 34px ~ fib */
16
- --rating-gap: 0.125rem; /* 2px */
13
+ --vd-rating-size: 1.3125rem; /* 21px - fib */
14
+ --vd-rating-size-sm: 1rem;
15
+ --vd-rating-size-lg: 2.125rem; /* 34px ~ fib */
16
+ --vd-rating-gap: 0.125rem; /* 2px */
17
17
  }
18
18
 
19
19
  [data-theme="dark"] {
20
- --rating-inactive-color: var(--vd-color-gray-600, #6c757d);
20
+ --vd-rating-inactive-color: var(--vd-color-gray-600, #6c757d);
21
21
  }
22
22
 
23
23
  @media (prefers-color-scheme: dark) {
24
24
  :root:not([data-theme]) {
25
- --rating-inactive-color: var(--vd-color-gray-600, #6c757d);
25
+ --vd-rating-inactive-color: var(--vd-color-gray-600, #6c757d);
26
26
  }
27
27
  }
28
28
 
@@ -31,15 +31,15 @@
31
31
  .vd-rating {
32
32
  display: inline-flex;
33
33
  align-items: center;
34
- gap: var(--rating-gap);
34
+ gap: var(--vd-rating-gap);
35
35
  }
36
36
 
37
37
  .vd-rating-star {
38
38
  display: inline-flex;
39
39
  align-items: center;
40
40
  justify-content: center;
41
- font-size: var(--rating-size);
42
- color: var(--rating-inactive-color);
41
+ font-size: var(--vd-rating-size);
42
+ color: var(--vd-rating-inactive-color);
43
43
  cursor: pointer;
44
44
  transition: color 0.15s ease, transform 0.15s ease;
45
45
  user-select: none;
@@ -58,17 +58,17 @@
58
58
  }
59
59
 
60
60
  .vd-rating-star.is-active {
61
- color: var(--rating-active-color);
61
+ color: var(--vd-rating-active-color);
62
62
  }
63
63
 
64
64
  .vd-rating-star.is-hovered {
65
- color: var(--rating-hover-color);
65
+ color: var(--vd-rating-hover-color);
66
66
  }
67
67
 
68
68
  /* Half-star support */
69
69
  .vd-rating-star.is-half {
70
70
  position: relative;
71
- color: var(--rating-inactive-color);
71
+ color: var(--vd-rating-inactive-color);
72
72
  }
73
73
 
74
74
  .vd-rating-star.is-half::after {
@@ -78,7 +78,7 @@
78
78
  top: 0;
79
79
  width: 50%;
80
80
  overflow: hidden;
81
- color: var(--rating-active-color);
81
+ color: var(--vd-rating-active-color);
82
82
  }
83
83
 
84
84
  /* ========== Read-only ========== */
@@ -95,11 +95,11 @@
95
95
  /* ========== Sizes ========== */
96
96
 
97
97
  .vd-rating-sm .vd-rating-star {
98
- font-size: var(--rating-size-sm);
98
+ font-size: var(--vd-rating-size-sm);
99
99
  }
100
100
 
101
101
  .vd-rating-lg .vd-rating-star {
102
- font-size: var(--rating-size-lg);
102
+ font-size: var(--vd-rating-size-lg);
103
103
  }
104
104
 
105
105
  /* ========== Value Display ========== */
@@ -4,18 +4,18 @@
4
4
  */
5
5
 
6
6
  :root {
7
- --ripple-color: rgba(255, 255, 255, 0.35);
8
- --ripple-duration: 0.6s;
9
- --ripple-timing: cubic-bezier(0, 0, 0.2, 1);
7
+ --vd-ripple-color: rgba(255, 255, 255, 0.35);
8
+ --vd-ripple-duration: 0.6s;
9
+ --vd-ripple-timing: cubic-bezier(0, 0, 0.2, 1);
10
10
  }
11
11
 
12
12
  [data-theme="dark"] {
13
- --ripple-color: rgba(255, 255, 255, 0.2);
13
+ --vd-ripple-color: rgba(255, 255, 255, 0.2);
14
14
  }
15
15
 
16
16
  @media (prefers-color-scheme: dark) {
17
17
  :root:not([data-theme]) {
18
- --ripple-color: rgba(255, 255, 255, 0.2);
18
+ --vd-ripple-color: rgba(255, 255, 255, 0.2);
19
19
  }
20
20
  }
21
21
 
@@ -32,9 +32,9 @@
32
32
  .vd-ripple-wave {
33
33
  position: absolute;
34
34
  border-radius: 50%;
35
- background: var(--ripple-color);
35
+ background: var(--vd-ripple-color);
36
36
  transform: scale(0);
37
- animation: vd-ripple-expand var(--ripple-duration) var(--ripple-timing) forwards;
37
+ animation: vd-ripple-expand var(--vd-ripple-duration) var(--vd-ripple-timing) forwards;
38
38
  pointer-events: none;
39
39
  }
40
40
 
@@ -49,15 +49,15 @@
49
49
 
50
50
  .vd-ripple-dark,
51
51
  [data-vd-ripple="dark"] {
52
- --ripple-color: rgba(0, 0, 0, 0.15);
52
+ --vd-ripple-color: rgba(0, 0, 0, 0.15);
53
53
  }
54
54
 
55
55
  .vd-ripple-primary,
56
56
  [data-vd-ripple="primary"] {
57
- --ripple-color: rgba(13, 110, 253, 0.3);
57
+ --vd-ripple-color: rgba(13, 110, 253, 0.3);
58
58
  }
59
59
 
60
60
  .vd-ripple-light,
61
61
  [data-vd-ripple="light"] {
62
- --ripple-color: rgba(255, 255, 255, 0.5);
62
+ --vd-ripple-color: rgba(255, 255, 255, 0.5);
63
63
  }
@@ -5,42 +5,42 @@
5
5
 
6
6
  :root {
7
7
  /* Sidenav Colors */
8
- --sidenav-bg: var(--vd-color-white);
9
- --sidenav-overlay-bg: rgba(0, 0, 0, 0.35);
10
- --sidenav-border-color: var(--vd-border-color);
11
- --sidenav-item-bg-hover: var(--vd-bg-secondary);
12
- --sidenav-item-bg-active: var(--vd-color-primary-alpha-10);
13
- --sidenav-item-color-active: var(--vd-color-primary);
8
+ --vd-sidenav-bg: var(--vd-color-white);
9
+ --vd-sidenav-overlay-bg: rgba(0, 0, 0, 0.35);
10
+ --vd-sidenav-border-color: var(--vd-border-color);
11
+ --vd-sidenav-item-bg-hover: var(--vd-bg-secondary);
12
+ --vd-sidenav-item-bg-active: var(--vd-color-primary-alpha-10);
13
+ --vd-sidenav-item-color-active: var(--vd-color-primary);
14
14
 
15
15
  /* Sidenav Dimensions (Fibonacci) */
16
- --sidenav-width: 233px; /* fib */
17
- --sidenav-width-sm: 233px; /* fib */
18
- --sidenav-width-lg: 377px; /* fib */
16
+ --vd-sidenav-width: 233px; /* fib */
17
+ --vd-sidenav-width-sm: 233px; /* fib */
18
+ --vd-sidenav-width-lg: 377px; /* fib */
19
19
 
20
20
  /* Sidenav Spacing (Fibonacci) */
21
- --sidenav-padding-y: 0.8125rem; /* 13px - fib */
22
- --sidenav-padding-x: 1.3125rem; /* 21px - fib */
23
- --sidenav-item-padding-y: 0.5rem; /* 8px - fib */
24
- --sidenav-item-padding-x: 0.8125rem; /* 13px - fib */
21
+ --vd-sidenav-padding-y: 0.8125rem; /* 13px - fib */
22
+ --vd-sidenav-padding-x: 1.3125rem; /* 21px - fib */
23
+ --vd-sidenav-item-padding-y: 0.5rem; /* 8px - fib */
24
+ --vd-sidenav-item-padding-x: 0.8125rem; /* 13px - fib */
25
25
 
26
26
  /* Sidenav Z-index */
27
- --sidenav-z-index: 1040;
28
- --sidenav-overlay-z-index: 1030;
27
+ --vd-sidenav-z-index: 1040;
28
+ --vd-sidenav-overlay-z-index: 1030;
29
29
 
30
30
  /* Sidenav Transitions */
31
- --sidenav-transition: transform var(--transition-duration-slow) var(--transition-ease);
31
+ --vd-sidenav-transition: transform var(--vd-transition-duration-slow) var(--vd-transition-ease);
32
32
  }
33
33
 
34
34
  /* Dark Theme Overrides */
35
35
  [data-theme="dark"] {
36
- --sidenav-bg: var(--vd-bg-secondary);
37
- --sidenav-item-bg-hover: var(--vd-bg-primary);
36
+ --vd-sidenav-bg: var(--vd-bg-secondary);
37
+ --vd-sidenav-item-bg-hover: var(--vd-bg-primary);
38
38
  }
39
39
 
40
40
  @media (prefers-color-scheme: dark) {
41
41
  :root:not([data-theme]) {
42
- --sidenav-bg: var(--vd-bg-secondary);
43
- --sidenav-item-bg-hover: var(--vd-bg-primary);
42
+ --vd-sidenav-bg: var(--vd-bg-secondary);
43
+ --vd-sidenav-item-bg-hover: var(--vd-bg-primary);
44
44
  }
45
45
  }
46
46
 
@@ -49,12 +49,12 @@
49
49
  position: fixed;
50
50
  top: 0;
51
51
  left: 0;
52
- z-index: var(--sidenav-overlay-z-index);
52
+ z-index: var(--vd-sidenav-overlay-z-index);
53
53
  width: 100vw;
54
54
  height: 100vh;
55
- background-color: var(--sidenav-overlay-bg);
55
+ background-color: var(--vd-sidenav-overlay-bg);
56
56
  opacity: 0;
57
- transition: opacity var(--transition-duration-base) var(--transition-ease);
57
+ transition: opacity var(--vd-transition-duration-base) var(--vd-transition-ease);
58
58
  pointer-events: none;
59
59
  }
60
60
 
@@ -68,15 +68,15 @@
68
68
  position: fixed;
69
69
  top: 0;
70
70
  left: 0;
71
- z-index: var(--sidenav-z-index);
72
- width: var(--sidenav-width);
71
+ z-index: var(--vd-sidenav-z-index);
72
+ width: var(--vd-sidenav-width);
73
73
  height: 100vh;
74
74
  display: flex;
75
75
  flex-direction: column;
76
- background-color: var(--sidenav-bg);
77
- box-shadow: var(--shadow-lg);
76
+ background-color: var(--vd-sidenav-bg);
77
+ box-shadow: var(--vd-shadow-lg);
78
78
  transform: translateX(-100%);
79
- transition: var(--sidenav-transition);
79
+ transition: var(--vd-sidenav-transition);
80
80
  overflow-y: auto;
81
81
  overflow-x: hidden;
82
82
  }
@@ -106,13 +106,13 @@
106
106
  }
107
107
 
108
108
  .vd-sidenav-push.is-open ~ * {
109
- margin-left: var(--sidenav-width);
110
- transition: margin-left var(--transition-duration-slow) var(--transition-ease);
109
+ margin-left: var(--vd-sidenav-width);
110
+ transition: margin-left var(--vd-transition-duration-slow) var(--vd-transition-ease);
111
111
  }
112
112
 
113
113
  .vd-sidenav-push.vd-sidenav-right.is-open ~ * {
114
114
  margin-left: 0;
115
- margin-right: var(--sidenav-width);
115
+ margin-right: var(--vd-sidenav-width);
116
116
  }
117
117
 
118
118
  .vd-sidenav-fixed {
@@ -129,15 +129,15 @@
129
129
  display: flex;
130
130
  align-items: center;
131
131
  justify-content: space-between;
132
- padding: var(--sidenav-padding-y) var(--sidenav-padding-x);
133
- border-bottom: 1px solid var(--sidenav-border-color);
132
+ padding: var(--vd-sidenav-padding-y) var(--vd-sidenav-padding-x);
133
+ border-bottom: 1px solid var(--vd-sidenav-border-color);
134
134
  flex-shrink: 0;
135
135
  }
136
136
 
137
137
  .vd-sidenav-title {
138
138
  margin: 0;
139
- font-size: var(--font-size-lg);
140
- font-weight: var(--font-weight-semibold);
139
+ font-size: var(--vd-font-size-lg);
140
+ font-weight: var(--vd-font-weight-semibold);
141
141
  color: var(--vd-text-primary);
142
142
  }
143
143
 
@@ -146,14 +146,14 @@
146
146
  margin: -0.5rem -0.5rem -0.5rem auto;
147
147
  background: transparent;
148
148
  border: 0;
149
- border-radius: var(--btn-border-radius);
149
+ border-radius: var(--vd-btn-border-radius);
150
150
  opacity: 0.5;
151
151
  cursor: pointer;
152
152
  font-size: 1.5rem;
153
- font-weight: var(--font-weight-bold);
153
+ font-weight: var(--vd-font-weight-bold);
154
154
  line-height: 1;
155
155
  color: var(--vd-text-secondary);
156
- transition: var(--transition-opacity);
156
+ transition: var(--vd-transition-opacity);
157
157
  }
158
158
 
159
159
  .vd-sidenav-close:hover,
@@ -165,15 +165,15 @@
165
165
  /* Sidenav Body */
166
166
  .vd-sidenav-body {
167
167
  flex: 1 1 auto;
168
- padding: var(--sidenav-padding-y) 0;
168
+ padding: var(--vd-sidenav-padding-y) 0;
169
169
  overflow-y: auto;
170
170
  overflow-x: hidden;
171
171
  }
172
172
 
173
173
  /* Sidenav Footer */
174
174
  .vd-sidenav-footer {
175
- padding: var(--sidenav-padding-y) var(--sidenav-padding-x);
176
- border-top: 1px solid var(--sidenav-border-color);
175
+ padding: var(--vd-sidenav-padding-y) var(--vd-sidenav-padding-x);
176
+ border-top: 1px solid var(--vd-sidenav-border-color);
177
177
  flex-shrink: 0;
178
178
  }
179
179
 
@@ -186,10 +186,10 @@
186
186
 
187
187
  /* Sidenav Section */
188
188
  .vd-sidenav-section {
189
- padding: 0.5rem var(--sidenav-padding-x);
189
+ padding: 0.5rem var(--vd-sidenav-padding-x);
190
190
  margin-top: 0.5rem;
191
- font-size: var(--font-size-xs);
192
- font-weight: var(--font-weight-semibold);
191
+ font-size: var(--vd-font-size-xs);
192
+ font-weight: var(--vd-font-weight-semibold);
193
193
  color: var(--vd-text-muted);
194
194
  text-transform: uppercase;
195
195
  letter-spacing: 0.05em;
@@ -207,64 +207,64 @@
207
207
  .vd-sidenav-link {
208
208
  display: flex;
209
209
  align-items: center;
210
- padding: var(--sidenav-item-padding-y) var(--sidenav-item-padding-x);
211
- font-size: var(--font-size-base);
212
- font-weight: var(--font-weight-normal);
213
- line-height: var(--line-height-normal);
210
+ padding: var(--vd-sidenav-item-padding-y) var(--vd-sidenav-item-padding-x);
211
+ font-size: var(--vd-font-size-base);
212
+ font-weight: var(--vd-font-weight-normal);
213
+ line-height: var(--vd-line-height-normal);
214
214
  color: var(--vd-text-primary);
215
215
  text-decoration: none;
216
- transition: var(--transition-bg);
216
+ transition: var(--vd-transition-bg);
217
217
  cursor: pointer;
218
218
  }
219
219
 
220
220
  .vd-sidenav-link:hover {
221
- background-color: var(--sidenav-item-bg-hover);
221
+ background-color: var(--vd-sidenav-item-bg-hover);
222
222
  color: var(--vd-text-primary);
223
223
  text-decoration: none;
224
224
  }
225
225
 
226
226
  .vd-sidenav-link:focus {
227
- outline: 2px solid var(--input-focus-border-color);
227
+ outline: 2px solid var(--vd-input-focus-border-color);
228
228
  outline-offset: -2px;
229
229
  }
230
230
 
231
231
  .vd-sidenav-item.active .vd-sidenav-link {
232
- background-color: var(--sidenav-item-bg-active);
233
- color: var(--sidenav-item-color-active);
234
- font-weight: var(--font-weight-medium);
232
+ background-color: var(--vd-sidenav-item-bg-active);
233
+ color: var(--vd-sidenav-item-color-active);
234
+ font-weight: var(--vd-font-weight-medium);
235
235
  }
236
236
 
237
237
  /* Sidenav Divider */
238
238
  .vd-sidenav-divider {
239
239
  height: 0;
240
- margin: 0.5rem var(--sidenav-padding-x);
240
+ margin: 0.5rem var(--vd-sidenav-padding-x);
241
241
  overflow: hidden;
242
- border-top: 1px solid var(--sidenav-border-color);
242
+ border-top: 1px solid var(--vd-sidenav-border-color);
243
243
  }
244
244
 
245
245
  /* Sidenav Sizes */
246
246
  .vd-sidenav-sm {
247
- width: var(--sidenav-width-sm);
247
+ width: var(--vd-sidenav-width-sm);
248
248
  }
249
249
 
250
250
  .vd-sidenav-sm.vd-sidenav-push.is-open ~ * {
251
- margin-left: var(--sidenav-width-sm);
251
+ margin-left: var(--vd-sidenav-width-sm);
252
252
  }
253
253
 
254
254
  .vd-sidenav-sm.vd-sidenav-push.vd-sidenav-right.is-open ~ * {
255
- margin-right: var(--sidenav-width-sm);
255
+ margin-right: var(--vd-sidenav-width-sm);
256
256
  }
257
257
 
258
258
  .vd-sidenav-lg {
259
- width: var(--sidenav-width-lg);
259
+ width: var(--vd-sidenav-width-lg);
260
260
  }
261
261
 
262
262
  .vd-sidenav-lg.vd-sidenav-push.is-open ~ * {
263
- margin-left: var(--sidenav-width-lg);
263
+ margin-left: var(--vd-sidenav-width-lg);
264
264
  }
265
265
 
266
266
  .vd-sidenav-lg.vd-sidenav-push.vd-sidenav-right.is-open ~ * {
267
- margin-right: var(--sidenav-width-lg);
267
+ margin-right: var(--vd-sidenav-width-lg);
268
268
  }
269
269
 
270
270
  /* ========== Offcanvas Alias ========== */
@@ -273,15 +273,15 @@
273
273
  position: fixed;
274
274
  top: 0;
275
275
  left: 0;
276
- z-index: var(--sidenav-z-index);
277
- width: var(--sidenav-width);
276
+ z-index: var(--vd-sidenav-z-index);
277
+ width: var(--vd-sidenav-width);
278
278
  height: 100vh;
279
279
  display: flex;
280
280
  flex-direction: column;
281
- background-color: var(--sidenav-bg);
282
- box-shadow: var(--shadow-lg);
281
+ background-color: var(--vd-sidenav-bg);
282
+ box-shadow: var(--vd-shadow-lg);
283
283
  transform: translateX(-100%);
284
- transition: var(--sidenav-transition);
284
+ transition: var(--vd-sidenav-transition);
285
285
  overflow-y: auto;
286
286
  overflow-x: hidden;
287
287
  }
@@ -5,21 +5,21 @@
5
5
 
6
6
  :root {
7
7
  /* Skeleton Colors */
8
- --skeleton-bg: var(--vd-color-gray-200);
9
- --skeleton-shimmer: var(--vd-color-gray-100);
10
- --skeleton-border-radius: var(--btn-border-radius);
8
+ --vd-skeleton-bg: var(--vd-color-gray-200);
9
+ --vd-skeleton-shimmer: var(--vd-color-gray-100);
10
+ --vd-skeleton-border-radius: var(--vd-btn-border-radius);
11
11
  }
12
12
 
13
13
  /* Dark Theme Overrides */
14
14
  [data-theme="dark"] {
15
- --skeleton-bg: var(--vd-color-gray-700);
16
- --skeleton-shimmer: var(--vd-color-gray-600);
15
+ --vd-skeleton-bg: var(--vd-color-gray-700);
16
+ --vd-skeleton-shimmer: var(--vd-color-gray-600);
17
17
  }
18
18
 
19
19
  @media (prefers-color-scheme: dark) {
20
20
  :root:not([data-theme]) {
21
- --skeleton-bg: var(--vd-color-gray-700);
22
- --skeleton-shimmer: var(--vd-color-gray-600);
21
+ --vd-skeleton-bg: var(--vd-color-gray-700);
22
+ --vd-skeleton-shimmer: var(--vd-color-gray-600);
23
23
  }
24
24
  }
25
25
 
@@ -27,8 +27,8 @@
27
27
  .vd-skeleton {
28
28
  position: relative;
29
29
  overflow: hidden;
30
- background-color: var(--skeleton-bg);
31
- border-radius: var(--skeleton-border-radius);
30
+ background-color: var(--vd-skeleton-bg);
31
+ border-radius: var(--vd-skeleton-border-radius);
32
32
  }
33
33
 
34
34
  /* Shimmer Animation */
@@ -43,7 +43,7 @@
43
43
  background: linear-gradient(
44
44
  90deg,
45
45
  transparent,
46
- var(--skeleton-shimmer),
46
+ var(--vd-skeleton-shimmer),
47
47
  transparent
48
48
  );
49
49
  animation: skeleton-shimmer 1.5s infinite;
@@ -111,7 +111,7 @@
111
111
  .vd-skeleton-button {
112
112
  height: 2.5rem;
113
113
  width: 6rem;
114
- border-radius: var(--btn-border-radius);
114
+ border-radius: var(--vd-btn-border-radius);
115
115
  }
116
116
 
117
117
  .vd-skeleton-button-sm {
@@ -127,7 +127,7 @@
127
127
  /* Skeleton Card */
128
128
  .vd-skeleton-card {
129
129
  padding: 1rem;
130
- border-radius: var(--btn-border-radius);
130
+ border-radius: var(--vd-btn-border-radius);
131
131
  border: 1px solid var(--vd-border-color);
132
132
  }
133
133
 
@@ -135,7 +135,7 @@
135
135
  .vd-skeleton-input {
136
136
  height: 2.5rem;
137
137
  width: 100%;
138
- border-radius: var(--btn-border-radius);
138
+ border-radius: var(--vd-btn-border-radius);
139
139
  }
140
140
 
141
141
  /* Skeleton Paragraph (multiple lines) */
@@ -4,21 +4,21 @@
4
4
  */
5
5
 
6
6
  :root {
7
- --spinner-size: 2rem;
8
- --spinner-border-width: 3px;
9
- --spinner-color: var(--vd-color-primary);
10
- --spinner-speed: 0.65s;
7
+ --vd-spinner-size: 2rem;
8
+ --vd-spinner-border-width: 3px;
9
+ --vd-spinner-color: var(--vd-color-primary);
10
+ --vd-spinner-speed: 0.65s;
11
11
  }
12
12
 
13
13
  /* Border Spinner */
14
14
  .vd-spinner {
15
15
  display: inline-block;
16
- width: var(--spinner-size);
17
- height: var(--spinner-size);
18
- border: var(--spinner-border-width) solid var(--vd-border-color, #e9ecef);
19
- border-top-color: var(--spinner-color);
16
+ width: var(--vd-spinner-size);
17
+ height: var(--vd-spinner-size);
18
+ border: var(--vd-spinner-border-width) solid var(--vd-border-color, #e9ecef);
19
+ border-top-color: var(--vd-spinner-color);
20
20
  border-radius: 50%;
21
- animation: spinner-rotate var(--spinner-speed) linear infinite;
21
+ animation: spinner-rotate var(--vd-spinner-speed) linear infinite;
22
22
  }
23
23
 
24
24
  @keyframes spinner-rotate {
@@ -40,7 +40,7 @@
40
40
  width: 8px;
41
41
  height: 8px;
42
42
  border-radius: 50%;
43
- background-color: var(--spinner-color);
43
+ background-color: var(--vd-spinner-color);
44
44
  animation: spinner-dots-bounce 1.4s ease-in-out infinite both;
45
45
  }
46
46
 
@@ -60,9 +60,9 @@
60
60
  /* Growing Spinner */
61
61
  .vd-spinner-grow {
62
62
  display: inline-block;
63
- width: var(--spinner-size);
64
- height: var(--spinner-size);
65
- background-color: var(--spinner-color);
63
+ width: var(--vd-spinner-size);
64
+ height: var(--vd-spinner-size);
65
+ background-color: var(--vd-spinner-color);
66
66
  border-radius: 50%;
67
67
  opacity: 0;
68
68
  animation: spinner-grow 0.75s linear infinite;
@@ -74,25 +74,25 @@
74
74
  }
75
75
 
76
76
  /* Size Variants */
77
- .vd-spinner-xs { --spinner-size: 1rem; --spinner-border-width: 2px; }
78
- .vd-spinner-sm { --spinner-size: 1.5rem; --spinner-border-width: 2px; }
79
- .vd-spinner-lg { --spinner-size: 3rem; --spinner-border-width: 4px; }
80
- .vd-spinner-xl { --spinner-size: 4rem; --spinner-border-width: 5px; }
77
+ .vd-spinner-xs { --vd-spinner-size: 1rem; --vd-spinner-border-width: 2px; }
78
+ .vd-spinner-sm { --vd-spinner-size: 1.5rem; --vd-spinner-border-width: 2px; }
79
+ .vd-spinner-lg { --vd-spinner-size: 3rem; --vd-spinner-border-width: 4px; }
80
+ .vd-spinner-xl { --vd-spinner-size: 4rem; --vd-spinner-border-width: 5px; }
81
81
 
82
82
  /* Color Variants */
83
- .vd-spinner-success { --spinner-color: var(--vd-color-success); }
84
- .vd-spinner-warning { --spinner-color: var(--vd-color-warning); }
85
- .vd-spinner-error { --spinner-color: var(--vd-color-error); }
86
- .vd-spinner-info { --spinner-color: var(--vd-color-info); }
87
- .vd-spinner-light { --spinner-color: #fff; }
88
- .vd-spinner-dark { --spinner-color: var(--vd-text-primary); }
83
+ .vd-spinner-success { --vd-spinner-color: var(--vd-color-success); }
84
+ .vd-spinner-warning { --vd-spinner-color: var(--vd-color-warning); }
85
+ .vd-spinner-error { --vd-spinner-color: var(--vd-color-error); }
86
+ .vd-spinner-info { --vd-spinner-color: var(--vd-color-info); }
87
+ .vd-spinner-light { --vd-spinner-color: #fff; }
88
+ .vd-spinner-dark { --vd-spinner-color: var(--vd-text-primary); }
89
89
 
90
90
  /* Centering Helper */
91
91
  .vd-spinner-center {
92
92
  display: flex;
93
93
  justify-content: center;
94
94
  align-items: center;
95
- padding: var(--spacing-5, 1rem);
95
+ padding: var(--vd-spacing-5, 1rem);
96
96
  }
97
97
 
98
98
  /* Quad-Spinner Loader — signature Vanduo 2x2 grid loader */
@@ -114,12 +114,12 @@
114
114
  }
115
115
 
116
116
  .vd-dynamic-loader-grid .vd-spinner {
117
- --spinner-size: 1.125rem;
118
- --spinner-border-width: 2px;
119
- --spinner-speed: 0.9s;
117
+ --vd-spinner-size: 1.125rem;
118
+ --vd-spinner-border-width: 2px;
119
+ --vd-spinner-speed: 0.9s;
120
120
 
121
121
  border-color: var(--vd-border-color, #d9d9d9);
122
- border-top-color: var(--spinner-color);
122
+ border-top-color: var(--vd-spinner-color);
123
123
  }
124
124
 
125
125
  .vd-dynamic-loader-grid .vd-spinner:nth-child(1) {
@@ -140,7 +140,7 @@
140
140
 
141
141
  .vd-dynamic-loader-text {
142
142
  color: var(--vd-text-muted);
143
- font-size: var(--font-size-sm, 0.8125rem);
143
+ font-size: var(--vd-font-size-sm, 0.8125rem);
144
144
  }
145
145
 
146
146
  /* Quad-Spinner overlaying a skeleton card */
@@ -149,7 +149,7 @@
149
149
  min-height: 300px;
150
150
  padding: 2rem;
151
151
  overflow: hidden;
152
- border-radius: var(--btn-border-radius, 0.5rem);
152
+ border-radius: var(--vd-btn-border-radius, 0.5rem);
153
153
  border: 1px solid var(--vd-border-color);
154
154
  }
155
155