vanduo-framework 1.1.8-docs-update

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (196) hide show
  1. package/LICENSE +35 -0
  2. package/README.md +216 -0
  3. package/css/components/alerts.css +224 -0
  4. package/css/components/avatar.css +275 -0
  5. package/css/components/badges.css +230 -0
  6. package/css/components/breadcrumbs.css +146 -0
  7. package/css/components/button-group.css +82 -0
  8. package/css/components/buttons.css +530 -0
  9. package/css/components/cards.css +304 -0
  10. package/css/components/chips.css +259 -0
  11. package/css/components/code-snippet.css +555 -0
  12. package/css/components/collapsible.css +267 -0
  13. package/css/components/collections.css +253 -0
  14. package/css/components/doc-search.css +464 -0
  15. package/css/components/doc-tabs.css +38 -0
  16. package/css/components/draggable.css +317 -0
  17. package/css/components/dropdown.css +266 -0
  18. package/css/components/footer.css +375 -0
  19. package/css/components/forms.css +1774 -0
  20. package/css/components/image-box.css +279 -0
  21. package/css/components/modals.css +285 -0
  22. package/css/components/navbar.css +530 -0
  23. package/css/components/pagination.css +186 -0
  24. package/css/components/preloader.css +340 -0
  25. package/css/components/progress.css +107 -0
  26. package/css/components/sidenav.css +301 -0
  27. package/css/components/skeleton.css +241 -0
  28. package/css/components/spinner.css +144 -0
  29. package/css/components/tabs.css +327 -0
  30. package/css/components/theme-customizer.css +835 -0
  31. package/css/components/toast.css +357 -0
  32. package/css/components/tooltips.css +270 -0
  33. package/css/core/colors.css +1017 -0
  34. package/css/core/fonts.css +266 -0
  35. package/css/core/grid.css +1699 -0
  36. package/css/core/helpers.css +2202 -0
  37. package/css/core/reset.css +128 -0
  38. package/css/core/tokens.css +213 -0
  39. package/css/core/typography.css +405 -0
  40. package/css/core/vd-aliases.css +47 -0
  41. package/css/effects/parallax.css +113 -0
  42. package/css/icons/icons-all.css +23 -0
  43. package/css/icons/icons.css +25 -0
  44. package/css/utilities/media.css +167 -0
  45. package/css/utilities/print.css +111 -0
  46. package/css/utilities/shadow.css +243 -0
  47. package/css/utilities/table.css +381 -0
  48. package/css/utilities/transforms.css +71 -0
  49. package/css/utilities/transitions.css +87 -0
  50. package/css/vanduo.css +80 -0
  51. package/dist/build-info.json +6 -0
  52. package/dist/fonts/fira-sans/fira-sans-bold.woff2 +0 -0
  53. package/dist/fonts/fira-sans/fira-sans-medium.woff2 +0 -0
  54. package/dist/fonts/fira-sans/fira-sans-regular.woff2 +0 -0
  55. package/dist/fonts/ibm-plex/ibm-plex-sans-bold.woff2 +0 -0
  56. package/dist/fonts/ibm-plex/ibm-plex-sans-medium.woff2 +0 -0
  57. package/dist/fonts/ibm-plex/ibm-plex-sans-regular.woff2 +0 -0
  58. package/dist/fonts/inter/inter-bold.woff2 +0 -0
  59. package/dist/fonts/inter/inter-medium.woff2 +0 -0
  60. package/dist/fonts/inter/inter-regular.woff2 +0 -0
  61. package/dist/fonts/inter/inter-semibold.woff2 +0 -0
  62. package/dist/fonts/jetbrains-mono/jetbrains-mono-bold.woff2 +0 -0
  63. package/dist/fonts/jetbrains-mono/jetbrains-mono-regular.woff2 +0 -0
  64. package/dist/fonts/open-sans/open-sans-bold.woff2 +0 -0
  65. package/dist/fonts/open-sans/open-sans-medium.woff2 +0 -0
  66. package/dist/fonts/open-sans/open-sans-regular.woff2 +0 -0
  67. package/dist/fonts/rubik/rubik-bold.woff2 +0 -0
  68. package/dist/fonts/rubik/rubik-medium.woff2 +0 -0
  69. package/dist/fonts/rubik/rubik-regular.woff2 +0 -0
  70. package/dist/fonts/source-sans/source-sans-bold.woff2 +0 -0
  71. package/dist/fonts/source-sans/source-sans-regular.woff2 +0 -0
  72. package/dist/fonts/source-sans/source-sans-semibold.woff2 +0 -0
  73. package/dist/fonts/titillium-web/titillium-web-bold.woff2 +0 -0
  74. package/dist/fonts/titillium-web/titillium-web-regular.woff2 +0 -0
  75. package/dist/fonts/titillium-web/titillium-web-semibold.woff2 +0 -0
  76. package/dist/fonts/ubuntu/ubuntu-bold.woff2 +0 -0
  77. package/dist/fonts/ubuntu/ubuntu-medium.woff2 +0 -0
  78. package/dist/fonts/ubuntu/ubuntu-regular.woff2 +0 -0
  79. package/dist/icons/phosphor/LICENSE +21 -0
  80. package/dist/icons/phosphor/bold/Phosphor-Bold.ttf +0 -0
  81. package/dist/icons/phosphor/bold/Phosphor-Bold.woff +0 -0
  82. package/dist/icons/phosphor/bold/Phosphor-Bold.woff2 +0 -0
  83. package/dist/icons/phosphor/bold/style.css +4627 -0
  84. package/dist/icons/phosphor/duotone/Phosphor-Duotone.ttf +0 -0
  85. package/dist/icons/phosphor/duotone/Phosphor-Duotone.woff +0 -0
  86. package/dist/icons/phosphor/duotone/Phosphor-Duotone.woff2 +0 -0
  87. package/dist/icons/phosphor/duotone/style.css +12115 -0
  88. package/dist/icons/phosphor/fill/Phosphor-Fill.ttf +0 -0
  89. package/dist/icons/phosphor/fill/Phosphor-Fill.woff +0 -0
  90. package/dist/icons/phosphor/fill/Phosphor-Fill.woff2 +0 -0
  91. package/dist/icons/phosphor/fill/style.css +4627 -0
  92. package/dist/icons/phosphor/light/Phosphor-Light.ttf +0 -0
  93. package/dist/icons/phosphor/light/Phosphor-Light.woff +0 -0
  94. package/dist/icons/phosphor/light/Phosphor-Light.woff2 +0 -0
  95. package/dist/icons/phosphor/light/style.css +4627 -0
  96. package/dist/icons/phosphor/regular/Phosphor.ttf +0 -0
  97. package/dist/icons/phosphor/regular/Phosphor.woff +0 -0
  98. package/dist/icons/phosphor/regular/Phosphor.woff2 +0 -0
  99. package/dist/icons/phosphor/regular/style.css +4627 -0
  100. package/dist/icons/phosphor/thin/Phosphor-Thin.ttf +0 -0
  101. package/dist/icons/phosphor/thin/Phosphor-Thin.woff +0 -0
  102. package/dist/icons/phosphor/thin/Phosphor-Thin.woff2 +0 -0
  103. package/dist/icons/phosphor/thin/style.css +4627 -0
  104. package/dist/vanduo.cjs.js +5569 -0
  105. package/dist/vanduo.cjs.js.map +7 -0
  106. package/dist/vanduo.cjs.min.js +48 -0
  107. package/dist/vanduo.cjs.min.js.map +7 -0
  108. package/dist/vanduo.css +60666 -0
  109. package/dist/vanduo.css.map +1 -0
  110. package/dist/vanduo.esm.js +5548 -0
  111. package/dist/vanduo.esm.js.map +7 -0
  112. package/dist/vanduo.esm.min.js +48 -0
  113. package/dist/vanduo.esm.min.js.map +7 -0
  114. package/dist/vanduo.js +5545 -0
  115. package/dist/vanduo.js.map +7 -0
  116. package/dist/vanduo.min.css +2 -0
  117. package/dist/vanduo.min.css.map +1 -0
  118. package/dist/vanduo.min.js +48 -0
  119. package/dist/vanduo.min.js.map +7 -0
  120. package/fonts/fira-sans/fira-sans-bold.woff2 +0 -0
  121. package/fonts/fira-sans/fira-sans-medium.woff2 +0 -0
  122. package/fonts/fira-sans/fira-sans-regular.woff2 +0 -0
  123. package/fonts/ibm-plex/ibm-plex-sans-bold.woff2 +0 -0
  124. package/fonts/ibm-plex/ibm-plex-sans-medium.woff2 +0 -0
  125. package/fonts/ibm-plex/ibm-plex-sans-regular.woff2 +0 -0
  126. package/fonts/inter/inter-bold.woff2 +0 -0
  127. package/fonts/inter/inter-medium.woff2 +0 -0
  128. package/fonts/inter/inter-regular.woff2 +0 -0
  129. package/fonts/inter/inter-semibold.woff2 +0 -0
  130. package/fonts/jetbrains-mono/jetbrains-mono-bold.woff2 +0 -0
  131. package/fonts/jetbrains-mono/jetbrains-mono-regular.woff2 +0 -0
  132. package/fonts/open-sans/open-sans-bold.woff2 +0 -0
  133. package/fonts/open-sans/open-sans-medium.woff2 +0 -0
  134. package/fonts/open-sans/open-sans-regular.woff2 +0 -0
  135. package/fonts/rubik/rubik-bold.woff2 +0 -0
  136. package/fonts/rubik/rubik-medium.woff2 +0 -0
  137. package/fonts/rubik/rubik-regular.woff2 +0 -0
  138. package/fonts/source-sans/source-sans-bold.woff2 +0 -0
  139. package/fonts/source-sans/source-sans-regular.woff2 +0 -0
  140. package/fonts/source-sans/source-sans-semibold.woff2 +0 -0
  141. package/fonts/titillium-web/titillium-web-bold.woff2 +0 -0
  142. package/fonts/titillium-web/titillium-web-regular.woff2 +0 -0
  143. package/fonts/titillium-web/titillium-web-semibold.woff2 +0 -0
  144. package/fonts/ubuntu/ubuntu-bold.woff2 +0 -0
  145. package/fonts/ubuntu/ubuntu-medium.woff2 +0 -0
  146. package/fonts/ubuntu/ubuntu-regular.woff2 +0 -0
  147. package/icons/phosphor/LICENSE +21 -0
  148. package/icons/phosphor/bold/Phosphor-Bold.ttf +0 -0
  149. package/icons/phosphor/bold/Phosphor-Bold.woff +0 -0
  150. package/icons/phosphor/bold/Phosphor-Bold.woff2 +0 -0
  151. package/icons/phosphor/bold/style.css +4627 -0
  152. package/icons/phosphor/duotone/Phosphor-Duotone.ttf +0 -0
  153. package/icons/phosphor/duotone/Phosphor-Duotone.woff +0 -0
  154. package/icons/phosphor/duotone/Phosphor-Duotone.woff2 +0 -0
  155. package/icons/phosphor/duotone/style.css +12115 -0
  156. package/icons/phosphor/fill/Phosphor-Fill.ttf +0 -0
  157. package/icons/phosphor/fill/Phosphor-Fill.woff +0 -0
  158. package/icons/phosphor/fill/Phosphor-Fill.woff2 +0 -0
  159. package/icons/phosphor/fill/style.css +4627 -0
  160. package/icons/phosphor/light/Phosphor-Light.ttf +0 -0
  161. package/icons/phosphor/light/Phosphor-Light.woff +0 -0
  162. package/icons/phosphor/light/Phosphor-Light.woff2 +0 -0
  163. package/icons/phosphor/light/style.css +4627 -0
  164. package/icons/phosphor/regular/Phosphor.ttf +0 -0
  165. package/icons/phosphor/regular/Phosphor.woff +0 -0
  166. package/icons/phosphor/regular/Phosphor.woff2 +0 -0
  167. package/icons/phosphor/regular/style.css +4627 -0
  168. package/icons/phosphor/thin/Phosphor-Thin.ttf +0 -0
  169. package/icons/phosphor/thin/Phosphor-Thin.woff +0 -0
  170. package/icons/phosphor/thin/Phosphor-Thin.woff2 +0 -0
  171. package/icons/phosphor/thin/style.css +4627 -0
  172. package/js/components/code-snippet.js +639 -0
  173. package/js/components/collapsible.js +226 -0
  174. package/js/components/doc-search.js +936 -0
  175. package/js/components/draggable.js +725 -0
  176. package/js/components/dropdown.js +362 -0
  177. package/js/components/font-switcher.js +253 -0
  178. package/js/components/grid.js +279 -0
  179. package/js/components/image-box.js +372 -0
  180. package/js/components/modals.js +367 -0
  181. package/js/components/navbar.js +264 -0
  182. package/js/components/pagination.js +286 -0
  183. package/js/components/parallax.js +216 -0
  184. package/js/components/preloader.js +183 -0
  185. package/js/components/select.js +444 -0
  186. package/js/components/sidenav.js +303 -0
  187. package/js/components/tabs.js +303 -0
  188. package/js/components/theme-customizer.js +784 -0
  189. package/js/components/theme-switcher.js +183 -0
  190. package/js/components/toast.js +343 -0
  191. package/js/components/tooltips.js +306 -0
  192. package/js/index.js +52 -0
  193. package/js/utils/helpers.js +306 -0
  194. package/js/utils/lifecycle.js +135 -0
  195. package/js/vanduo.js +120 -0
  196. package/package.json +78 -0
@@ -0,0 +1,340 @@
1
+ /**
2
+ * Vanduo Framework - Preloader/Progress Bars
3
+ * Loading indicators and progress bars
4
+ */
5
+
6
+ :root {
7
+ /* Spinner Colors */
8
+ --spinner-color: var(--color-primary);
9
+ --spinner-border-width: 0.25em;
10
+
11
+ /* Spinner Sizes (Fibonacci) */
12
+ --spinner-size: 2.125rem; /* 34px - fib */
13
+ --spinner-size-sm: 1.3125rem; /* 21px - fib */
14
+ --spinner-size-lg: 3.4375rem; /* 55px - fib */
15
+
16
+ /* Progress Bar (Fibonacci heights) */
17
+ --progress-bg: var(--bg-secondary);
18
+ --progress-bar-bg: var(--color-primary);
19
+ --progress-height: 0.8125rem; /* 13px - fib */
20
+ --progress-height-sm: 0.5rem; /* 8px - fib */
21
+ --progress-height-lg: 1.3125rem; /* 21px - fib */
22
+
23
+ /* Progress Bar Transitions */
24
+ --progress-transition: width var(--transition-duration-slow) var(--transition-ease);
25
+ }
26
+
27
+ /* Base Spinner */
28
+ .vd-spinner,
29
+ .vd-preloader {
30
+ display: inline-block;
31
+ width: var(--spinner-size);
32
+ height: var(--spinner-size);
33
+ vertical-align: text-bottom;
34
+ border: var(--spinner-border-width) solid currentColor;
35
+ border-right-color: transparent;
36
+ border-radius: 50%;
37
+ animation: spinner-rotate 0.75s linear infinite;
38
+ color: var(--spinner-color);
39
+ }
40
+
41
+ @keyframes spinner-rotate {
42
+ to {
43
+ transform: rotate(360deg);
44
+ }
45
+ }
46
+
47
+ /* Spinner Variants */
48
+ .vd-spinner-dots {
49
+ display: inline-flex;
50
+ align-items: center;
51
+ gap: 0.25rem;
52
+ border: none;
53
+ animation: none;
54
+ }
55
+
56
+ .vd-spinner-dots::before,
57
+ .vd-spinner-dots::after {
58
+ content: '';
59
+ width: 0.5em;
60
+ height: 0.5em;
61
+ border-radius: 50%;
62
+ background-color: currentColor;
63
+ animation: spinner-dots 1.4s ease-in-out infinite both;
64
+ }
65
+
66
+ .vd-spinner-dots::before {
67
+ animation-delay: -0.32s;
68
+ }
69
+
70
+ .vd-spinner-dots::after {
71
+ animation-delay: -0.16s;
72
+ }
73
+
74
+ @keyframes spinner-dots {
75
+ 0%, 80%, 100% {
76
+ transform: scale(0);
77
+ opacity: 0.5;
78
+ }
79
+ 40% {
80
+ transform: scale(1);
81
+ opacity: 1;
82
+ }
83
+ }
84
+
85
+ .vd-spinner-bars {
86
+ display: inline-flex;
87
+ align-items: center;
88
+ gap: 0.125rem;
89
+ border: none;
90
+ animation: none;
91
+ }
92
+
93
+ .vd-spinner-bars::before,
94
+ .vd-spinner-bars::after {
95
+ content: '';
96
+ width: 0.25em;
97
+ height: 1em;
98
+ background-color: currentColor;
99
+ animation: spinner-bars 1.2s ease-in-out infinite;
100
+ }
101
+
102
+ .vd-spinner-bars::before {
103
+ animation-delay: -0.4s;
104
+ }
105
+
106
+ .vd-spinner-bars::after {
107
+ animation-delay: -0.2s;
108
+ }
109
+
110
+ @keyframes spinner-bars {
111
+ 0%, 40%, 100% {
112
+ transform: scaleY(0.4);
113
+ opacity: 0.5;
114
+ }
115
+ 20% {
116
+ transform: scaleY(1);
117
+ opacity: 1;
118
+ }
119
+ }
120
+
121
+ .vd-spinner-pulse {
122
+ border: none;
123
+ background-color: currentColor;
124
+ opacity: 1;
125
+ animation: spinner-pulse 1.5s ease-in-out infinite;
126
+ }
127
+
128
+ @keyframes spinner-pulse {
129
+ 0%, 100% {
130
+ opacity: 1;
131
+ }
132
+ 50% {
133
+ opacity: 0.5;
134
+ }
135
+ }
136
+
137
+ /* Spinner Sizes */
138
+ .vd-spinner-sm,
139
+ .vd-preloader-sm {
140
+ width: var(--spinner-size-sm);
141
+ height: var(--spinner-size-sm);
142
+ border-width: calc(var(--spinner-border-width) * 0.75);
143
+ }
144
+
145
+ .vd-spinner-lg,
146
+ .vd-preloader-lg {
147
+ width: var(--spinner-size-lg);
148
+ height: var(--spinner-size-lg);
149
+ border-width: calc(var(--spinner-border-width) * 1.25);
150
+ }
151
+
152
+ /* Spinner Colors */
153
+ .vd-spinner-primary,
154
+ .vd-preloader-primary {
155
+ color: var(--color-primary);
156
+ }
157
+
158
+ .vd-spinner-secondary,
159
+ .vd-preloader-secondary {
160
+ color: var(--color-secondary);
161
+ }
162
+
163
+ .vd-spinner-success,
164
+ .vd-preloader-success {
165
+ color: var(--color-success);
166
+ }
167
+
168
+ .vd-spinner-warning,
169
+ .vd-preloader-warning {
170
+ color: var(--color-warning);
171
+ }
172
+
173
+ .vd-spinner-error,
174
+ .vd-preloader-error {
175
+ color: var(--color-error);
176
+ }
177
+
178
+ .vd-spinner-info,
179
+ .vd-preloader-info {
180
+ color: var(--color-info);
181
+ }
182
+
183
+ /* Progress Bar */
184
+ .vd-progress {
185
+ display: flex;
186
+ height: var(--progress-height);
187
+ overflow: hidden;
188
+ background-color: var(--progress-bg);
189
+ border-radius: var(--btn-border-radius);
190
+ }
191
+
192
+ .vd-progress-bar {
193
+ display: flex;
194
+ flex-direction: column;
195
+ justify-content: center;
196
+ color: var(--color-white);
197
+ text-align: center;
198
+ white-space: nowrap;
199
+ background-color: var(--progress-bar-bg);
200
+ transition: var(--progress-transition);
201
+ width: 0%;
202
+ }
203
+
204
+ .vd-progress-text {
205
+ padding: 0 0.5rem;
206
+ font-size: var(--font-size-sm);
207
+ font-weight: var(--font-weight-medium);
208
+ }
209
+
210
+ /* Progress Bar Sizes */
211
+ .vd-progress-sm {
212
+ height: var(--progress-height-sm);
213
+ }
214
+
215
+ .vd-progress-sm .vd-progress-text {
216
+ font-size: var(--font-size-xs);
217
+ padding: 0 0.25rem;
218
+ }
219
+
220
+ .vd-progress-lg {
221
+ height: var(--progress-height-lg);
222
+ }
223
+
224
+ .vd-progress-lg .vd-progress-text {
225
+ font-size: var(--font-size-base);
226
+ padding: 0 0.75rem;
227
+ }
228
+
229
+ /* Progress Bar Variants */
230
+ .vd-progress-striped .vd-progress-bar {
231
+ background-image: linear-gradient(
232
+ 45deg,
233
+ rgba(255, 255, 255, 0.15) 25%,
234
+ transparent 25%,
235
+ transparent 50%,
236
+ rgba(255, 255, 255, 0.15) 50%,
237
+ rgba(255, 255, 255, 0.15) 75%,
238
+ transparent 75%,
239
+ transparent
240
+ );
241
+ background-size: 1rem 1rem;
242
+ }
243
+
244
+ .vd-progress-animated .vd-progress-bar {
245
+ animation: progress-stripes 1s linear infinite;
246
+ }
247
+
248
+ @keyframes progress-stripes {
249
+ 0% {
250
+ background-position: 1rem 0;
251
+ }
252
+ 100% {
253
+ background-position: 0 0;
254
+ }
255
+ }
256
+
257
+ /* Progress Bar Colors */
258
+ .vd-progress-bar-primary,
259
+ .vd-progress-bar.bg-primary {
260
+ background-color: var(--color-primary);
261
+ }
262
+
263
+ .vd-progress-bar-secondary,
264
+ .vd-progress-bar.bg-secondary {
265
+ background-color: var(--color-secondary);
266
+ }
267
+
268
+ .vd-progress-bar-success,
269
+ .vd-progress-bar.bg-success {
270
+ background-color: var(--color-success);
271
+ }
272
+
273
+ .vd-progress-bar-warning,
274
+ .vd-progress-bar.bg-warning {
275
+ background-color: var(--color-warning);
276
+ color: var(--color-gray-900);
277
+ }
278
+
279
+ .vd-progress-bar-error,
280
+ .vd-progress-bar.bg-error {
281
+ background-color: var(--color-error);
282
+ }
283
+
284
+ .vd-progress-bar-info,
285
+ .vd-progress-bar.bg-info {
286
+ background-color: var(--color-info);
287
+ }
288
+
289
+ /* Indeterminate Progress */
290
+ .vd-progress-indeterminate .vd-progress-bar {
291
+ width: 100%;
292
+ background-image: linear-gradient(
293
+ to right,
294
+ transparent 0%,
295
+ var(--progress-bar-bg) 30%,
296
+ var(--progress-bar-bg) 70%,
297
+ transparent 100%
298
+ );
299
+ animation: progress-indeterminate 1.5s ease-in-out infinite;
300
+ }
301
+
302
+ @keyframes progress-indeterminate {
303
+ 0% {
304
+ transform: translateX(-100%);
305
+ }
306
+ 100% {
307
+ transform: translateX(400%);
308
+ }
309
+ }
310
+
311
+ /* Preloader Container */
312
+ .vd-preloader-container {
313
+ display: flex;
314
+ flex-direction: column;
315
+ align-items: center;
316
+ justify-content: center;
317
+ min-height: 200px;
318
+ gap: 1rem;
319
+ }
320
+
321
+ .vd-preloader-text {
322
+ color: var(--text-secondary);
323
+ font-size: var(--font-size-sm);
324
+ }
325
+
326
+ /* Reduced Motion */
327
+ @media (prefers-reduced-motion: reduce) {
328
+ .vd-spinner,
329
+ .vd-preloader,
330
+ .vd-spinner-dots::before,
331
+ .vd-spinner-dots::after,
332
+ .vd-spinner-bars::before,
333
+ .vd-spinner-bars::after,
334
+ .vd-spinner-pulse,
335
+ .vd-progress-animated .vd-progress-bar,
336
+ .vd-progress-indeterminate .vd-progress-bar {
337
+ animation: none;
338
+ }
339
+ }
340
+
@@ -0,0 +1,107 @@
1
+ /**
2
+ * Vanduo Framework - Progress Bar Component
3
+ * CSS-only progress bar with variants and sizes
4
+ */
5
+
6
+ :root {
7
+ --progress-height: 8px;
8
+ --progress-bg: var(--bg-tertiary, #e9ecef);
9
+ --progress-bar-bg: var(--color-primary);
10
+ --progress-border-radius: var(--radius-fib-5, 5px);
11
+ }
12
+
13
+ /* Base Progress */
14
+ .vd-progress {
15
+ display: flex;
16
+ height: var(--progress-height);
17
+ overflow: hidden;
18
+ background-color: var(--progress-bg);
19
+ border-radius: var(--progress-border-radius);
20
+ }
21
+
22
+ .vd-progress-bar {
23
+ display: flex;
24
+ flex-direction: column;
25
+ justify-content: center;
26
+ overflow: hidden;
27
+ color: #fff;
28
+ text-align: center;
29
+ white-space: nowrap;
30
+ background-color: var(--progress-bar-bg);
31
+ transition: width 0.4s ease;
32
+ border-radius: var(--progress-border-radius);
33
+ }
34
+
35
+ /* Variants */
36
+ .vd-progress-bar.vd-progress-success { background-color: var(--color-success); }
37
+ .vd-progress-bar.vd-progress-warning { background-color: var(--color-warning); }
38
+ .vd-progress-bar.vd-progress-error { background-color: var(--color-error); }
39
+ .vd-progress-bar.vd-progress-info { background-color: var(--color-info); }
40
+
41
+ /* Sizes */
42
+ .vd-progress-xs { --progress-height: 3px; }
43
+ .vd-progress-sm { --progress-height: 5px; }
44
+ .vd-progress-lg { --progress-height: 13px; }
45
+ .vd-progress-xl { --progress-height: 21px; }
46
+
47
+ /* Labeled (show text) */
48
+ .vd-progress-xl .vd-progress-bar,
49
+ .vd-progress-lg .vd-progress-bar {
50
+ font-size: var(--font-size-xs, 0.75rem);
51
+ line-height: 1;
52
+ }
53
+
54
+ /* Striped */
55
+ .vd-progress-striped .vd-progress-bar {
56
+ background-image: linear-gradient(
57
+ 45deg,
58
+ rgba(255, 255, 255, 0.15) 25%,
59
+ transparent 25%,
60
+ transparent 50%,
61
+ rgba(255, 255, 255, 0.15) 50%,
62
+ rgba(255, 255, 255, 0.15) 75%,
63
+ transparent 75%,
64
+ transparent
65
+ );
66
+ background-size: 1rem 1rem;
67
+ }
68
+
69
+ /* Animated Striped */
70
+ .vd-progress-animated .vd-progress-bar {
71
+ animation: progress-bar-stripes 1s linear infinite;
72
+ }
73
+
74
+ @keyframes progress-bar-stripes {
75
+ from { background-position: 1rem 0; }
76
+ to { background-position: 0 0; }
77
+ }
78
+
79
+ /* Indeterminate */
80
+ .vd-progress-indeterminate .vd-progress-bar {
81
+ width: 30%;
82
+ animation: progress-indeterminate 1.5s ease-in-out infinite;
83
+ }
84
+
85
+ @keyframes progress-indeterminate {
86
+ 0% { transform: translateX(-100%); }
87
+ 100% { transform: translateX(400%); }
88
+ }
89
+
90
+ /* Reduced motion */
91
+ @media (prefers-reduced-motion: reduce) {
92
+ .vd-progress-animated .vd-progress-bar,
93
+ .vd-progress-indeterminate .vd-progress-bar {
94
+ animation: none;
95
+ }
96
+ }
97
+
98
+ /* Dark mode */
99
+ [data-theme="dark"] {
100
+ --progress-bg: var(--bg-tertiary, #2d3748);
101
+ }
102
+
103
+ @media (prefers-color-scheme: dark) {
104
+ :root:not([data-theme]) {
105
+ --progress-bg: var(--bg-tertiary, #2d3748);
106
+ }
107
+ }