@vanduo-oss/framework 1.3.9 → 1.4.0

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 (119) hide show
  1. package/README.md +87 -42
  2. package/css/components/affix.css +1 -1
  3. package/css/components/alerts.css +40 -40
  4. package/css/components/avatar.css +33 -33
  5. package/css/components/badges.css +42 -42
  6. package/css/components/breadcrumbs.css +5 -5
  7. package/css/components/bubble.css +4 -4
  8. package/css/components/buttons.css +124 -124
  9. package/css/components/cards.css +10 -10
  10. package/css/components/chips.css +28 -28
  11. package/css/components/code-snippet.css +18 -18
  12. package/css/components/collapsible.css +20 -20
  13. package/css/components/collections.css +21 -21
  14. package/css/components/datepicker.css +13 -13
  15. package/css/components/doc-search.css +46 -53
  16. package/css/components/doc-tabs.css +10 -10
  17. package/css/components/draggable.css +34 -34
  18. package/css/components/dropdown.css +14 -14
  19. package/css/components/expanding-cards.css +1 -1
  20. package/css/components/fab.css +7 -7
  21. package/css/components/flow.css +3 -3
  22. package/css/components/footer.css +26 -26
  23. package/css/components/forms.css +95 -83
  24. package/css/components/image-box.css +13 -17
  25. package/css/components/modals.css +8 -8
  26. package/css/components/music-player.css +26 -26
  27. package/css/components/navbar.css +27 -27
  28. package/css/components/pagination.css +15 -15
  29. package/css/components/preloader.css +10 -10
  30. package/css/components/progress.css +8 -8
  31. package/css/components/rating.css +4 -4
  32. package/css/components/sidenav.css +14 -14
  33. package/css/components/skeleton.css +10 -9
  34. package/css/components/spinner.css +10 -10
  35. package/css/components/spotlight.css +7 -7
  36. package/css/components/stepper.css +13 -13
  37. package/css/components/suggest.css +10 -10
  38. package/css/components/tabs.css +22 -22
  39. package/css/components/theme-customizer.css +87 -87
  40. package/css/components/timeline.css +14 -14
  41. package/css/components/timepicker.css +7 -7
  42. package/css/components/toast.css +31 -31
  43. package/css/components/tooltips.css +11 -11
  44. package/css/components/transfer.css +12 -12
  45. package/css/components/tree.css +9 -9
  46. package/css/components/waypoint.css +3 -3
  47. package/css/core/colors.css +34 -34
  48. package/css/core/grid.css +1 -6
  49. package/css/core/helpers.css +11 -11
  50. package/css/core/tokens.css +113 -35
  51. package/css/core/typography.css +14 -12
  52. package/css/core/vd-aliases.css +100 -52
  53. package/css/effects/morph.css +5 -5
  54. package/css/utilities/media.css +2 -2
  55. package/css/utilities/table.css +34 -34
  56. package/css/utilities/transitions.css +22 -10
  57. package/css/vanduo.css +14 -34
  58. package/dist/build-info.json +3 -3
  59. package/dist/vanduo.cjs.js +929 -289
  60. package/dist/vanduo.cjs.js.map +3 -3
  61. package/dist/vanduo.cjs.min.js +7 -7
  62. package/dist/vanduo.cjs.min.js.map +3 -3
  63. package/dist/vanduo.css +7914 -7823
  64. package/dist/vanduo.css.map +1 -1
  65. package/dist/vanduo.esm.js +929 -289
  66. package/dist/vanduo.esm.js.map +3 -3
  67. package/dist/vanduo.esm.min.js +7 -7
  68. package/dist/vanduo.esm.min.js.map +3 -3
  69. package/dist/vanduo.js +929 -289
  70. package/dist/vanduo.js.map +3 -3
  71. package/dist/vanduo.min.css +2 -2
  72. package/dist/vanduo.min.css.map +1 -1
  73. package/dist/vanduo.min.js +7 -7
  74. package/dist/vanduo.min.js.map +3 -3
  75. package/js/components/affix.js +2 -2
  76. package/js/components/bubble.js +3 -3
  77. package/js/components/code-snippet.js +129 -5
  78. package/js/components/collapsible.js +2 -3
  79. package/js/components/datepicker.js +2 -2
  80. package/js/components/doc-search.js +69 -11
  81. package/js/components/draggable.js +4 -4
  82. package/js/components/dropdown.js +2 -3
  83. package/js/components/expanding-cards.js +2 -2
  84. package/js/components/flow.js +2 -2
  85. package/js/components/font-switcher.js +23 -13
  86. package/js/components/glass.js +2 -2
  87. package/js/components/grid.js +19 -8
  88. package/js/components/image-box.js +49 -10
  89. package/js/components/lazy-load.js +81 -9
  90. package/js/components/modals.js +28 -12
  91. package/js/components/morph.js +2 -2
  92. package/js/components/music-player.js +2 -2
  93. package/js/components/navbar.js +2 -2
  94. package/js/components/pagination.js +2 -3
  95. package/js/components/parallax.js +9 -10
  96. package/js/components/preloader.js +14 -5
  97. package/js/components/rating.js +2 -2
  98. package/js/components/ripple.js +2 -2
  99. package/js/components/select.js +2 -3
  100. package/js/components/sidenav.js +43 -14
  101. package/js/components/spotlight.js +2 -2
  102. package/js/components/stepper.js +2 -2
  103. package/js/components/suggest.js +9 -3
  104. package/js/components/tabs.js +2 -2
  105. package/js/components/theme-customizer.js +151 -21
  106. package/js/components/theme-switcher.js +27 -16
  107. package/js/components/timeline.js +41 -12
  108. package/js/components/timepicker.js +2 -2
  109. package/js/components/toast.js +1 -1
  110. package/js/components/tooltips.js +4 -4
  111. package/js/components/transfer.js +2 -2
  112. package/js/components/tree.js +2 -2
  113. package/js/components/validate.js +2 -2
  114. package/js/components/vd-hex.js +12 -6
  115. package/js/components/waypoint.js +2 -2
  116. package/js/utils/helpers.js +7 -4
  117. package/js/utils/lifecycle.js +158 -83
  118. package/js/vanduo.js +203 -34
  119. package/package.json +2 -1
@@ -5,9 +5,9 @@
5
5
 
6
6
  :root {
7
7
  /* Modal Colors */
8
- --modal-bg: var(--color-white);
8
+ --modal-bg: var(--vd-color-white);
9
9
  --modal-backdrop-bg: rgba(0, 0, 0, 0.5);
10
- --modal-border-color: var(--border-color);
10
+ --modal-border-color: var(--vd-border-color);
11
11
 
12
12
  /* Modal Spacing (Fibonacci: 21px) */
13
13
  --modal-padding: 1.3125rem;
@@ -32,12 +32,12 @@
32
32
 
33
33
  /* Dark Theme Overrides */
34
34
  [data-theme="dark"] {
35
- --modal-bg: var(--bg-secondary);
35
+ --modal-bg: var(--vd-bg-secondary);
36
36
  }
37
37
 
38
38
  @media (prefers-color-scheme: dark) {
39
39
  :root:not([data-theme]) {
40
- --modal-bg: var(--bg-secondary);
40
+ --modal-bg: var(--vd-bg-secondary);
41
41
  }
42
42
  }
43
43
 
@@ -143,7 +143,7 @@
143
143
  line-height: var(--line-height-normal);
144
144
  font-size: var(--font-size-xl);
145
145
  font-weight: var(--font-weight-semibold);
146
- color: var(--text-primary);
146
+ color: var(--vd-text-primary);
147
147
  }
148
148
 
149
149
  /* Modal Close Button */
@@ -158,15 +158,15 @@
158
158
  font-size: 1.5rem;
159
159
  font-weight: var(--font-weight-bold);
160
160
  line-height: 1;
161
- color: var(--text-secondary);
162
- text-shadow: 0 1px 0 var(--color-white);
161
+ color: var(--vd-text-secondary);
162
+ text-shadow: 0 1px 0 var(--vd-color-white);
163
163
  transition: var(--transition-opacity);
164
164
  user-select: none;
165
165
  }
166
166
 
167
167
  .vd-modal-close:hover,
168
168
  .vd-modal-close:focus {
169
- color: var(--text-primary);
169
+ color: var(--vd-text-primary);
170
170
  text-decoration: none;
171
171
  opacity: 0.75;
172
172
  outline: none;
@@ -24,19 +24,19 @@
24
24
  --music-player-border-width: 1px;
25
25
 
26
26
  /* Colors */
27
- --music-player-bg: var(--bg-primary);
28
- --music-player-bg-secondary: var(--bg-secondary);
29
- --music-player-border: var(--border-color);
30
- --music-player-text: var(--text-primary);
31
- --music-player-text-muted: var(--text-muted);
32
- --music-player-accent: var(--color-primary);
33
- --music-player-btn-hover-bg: var(--bg-secondary);
34
- --music-player-btn-active-bg: var(--color-primary-alpha-10, rgba(var(--color-primary-rgb, 59,130,246), 0.1));
35
- --music-player-track-bg: var(--border-color);
36
- --music-player-track-fill: var(--color-primary);
37
- --music-player-playlist-hover: var(--bg-secondary);
38
- --music-player-playlist-active-bg: var(--color-primary-alpha-10, rgba(var(--color-primary-rgb, 59,130,246), 0.1));
39
- --music-player-playlist-active-text: var(--color-primary);
27
+ --music-player-bg: var(--vd-bg-primary);
28
+ --music-player-bg-secondary: var(--vd-bg-secondary);
29
+ --music-player-border: var(--vd-border-color);
30
+ --music-player-text: var(--vd-text-primary);
31
+ --music-player-text-muted: var(--vd-text-muted);
32
+ --music-player-accent: var(--vd-color-primary);
33
+ --music-player-btn-hover-bg: var(--vd-bg-secondary);
34
+ --music-player-btn-active-bg: var(--vd-color-primary-alpha-10, rgba(var(--vd-color-primary-rgb, 59,130,246), 0.1));
35
+ --music-player-track-bg: var(--vd-border-color);
36
+ --music-player-track-fill: var(--vd-color-primary);
37
+ --music-player-playlist-hover: var(--vd-bg-secondary);
38
+ --music-player-playlist-active-bg: var(--vd-color-primary-alpha-10, rgba(var(--vd-color-primary-rgb, 59,130,246), 0.1));
39
+ --music-player-playlist-active-text: var(--vd-color-primary);
40
40
 
41
41
  /* Transitions */
42
42
  --music-player-transition: 0.15s ease;
@@ -54,20 +54,20 @@
54
54
 
55
55
  /* Dark Theme */
56
56
  [data-theme="dark"] {
57
- --music-player-bg: var(--bg-primary);
58
- --music-player-bg-secondary: var(--color-gray-800);
59
- --music-player-btn-hover-bg: var(--color-gray-700);
60
- --music-player-playlist-hover: var(--color-gray-700);
57
+ --music-player-bg: var(--vd-bg-primary);
58
+ --music-player-bg-secondary: var(--vd-color-gray-800);
59
+ --music-player-btn-hover-bg: var(--vd-color-gray-700);
60
+ --music-player-playlist-hover: var(--vd-color-gray-700);
61
61
  --music-player-glass-bg: var(--vd-glass-bg-dark, rgba(30, 30, 40, 0.72));
62
62
  --music-player-glass-border: var(--vd-glass-border-dark, rgba(255, 255, 255, 0.14));
63
63
  }
64
64
 
65
65
  @media (prefers-color-scheme: dark) {
66
66
  :root:not([data-theme]) {
67
- --music-player-bg: var(--bg-primary);
68
- --music-player-bg-secondary: var(--color-gray-800);
69
- --music-player-btn-hover-bg: var(--color-gray-700);
70
- --music-player-playlist-hover: var(--color-gray-700);
67
+ --music-player-bg: var(--vd-bg-primary);
68
+ --music-player-bg-secondary: var(--vd-color-gray-800);
69
+ --music-player-btn-hover-bg: var(--vd-color-gray-700);
70
+ --music-player-playlist-hover: var(--vd-color-gray-700);
71
71
  --music-player-glass-bg: var(--vd-glass-bg-dark, rgba(30, 30, 40, 0.72));
72
72
  --music-player-glass-border: var(--vd-glass-border-dark, rgba(255, 255, 255, 0.14));
73
73
  }
@@ -550,11 +550,11 @@
550
550
  ============================================================ */
551
551
 
552
552
  .vd-music-player-neutral {
553
- --music-player-accent: var(--text-primary);
554
- --music-player-track-fill: var(--text-primary);
555
- --music-player-playlist-active-text: var(--text-primary);
556
- --music-player-playlist-active-bg: var(--bg-secondary);
557
- --music-player-btn-active-bg: var(--bg-secondary);
553
+ --music-player-accent: var(--vd-text-primary);
554
+ --music-player-track-fill: var(--vd-text-primary);
555
+ --music-player-playlist-active-text: var(--vd-text-primary);
556
+ --music-player-playlist-active-bg: var(--vd-bg-secondary);
557
+ --music-player-btn-active-bg: var(--vd-bg-secondary);
558
558
  }
559
559
 
560
560
  /* ============================================================
@@ -5,14 +5,14 @@
5
5
 
6
6
  :root {
7
7
  /* Navbar Colors */
8
- --navbar-bg: var(--color-white);
9
- --navbar-bg-dark: var(--bg-dark);
10
- --navbar-text-color: var(--text-primary);
11
- --navbar-text-color-dark: var(--text-inverse);
12
- --navbar-link-color: var(--text-primary);
13
- --navbar-link-hover-color: var(--color-primary);
14
- --navbar-link-active-color: var(--color-primary);
15
- --navbar-border-color: var(--border-color);
8
+ --navbar-bg: var(--vd-color-white);
9
+ --navbar-bg-dark: var(--vd-bg-dark);
10
+ --navbar-text-color: var(--vd-text-primary);
11
+ --navbar-text-color-dark: var(--vd-text-inverse);
12
+ --navbar-link-color: var(--vd-text-primary);
13
+ --navbar-link-hover-color: var(--vd-color-primary);
14
+ --navbar-link-active-color: var(--vd-color-primary);
15
+ --navbar-border-color: var(--vd-border-color);
16
16
 
17
17
  /* Navbar Spacing (Fibonacci) */
18
18
  --navbar-padding-y: 0.8125rem; /* 13px - fib */
@@ -23,26 +23,26 @@
23
23
  --navbar-actions-gap: 2.125rem; /* 34px - fib */
24
24
 
25
25
  /* Mobile Menu */
26
- --navbar-mobile-menu-bg: var(--color-white);
27
- --navbar-mobile-menu-bg-dark: var(--bg-dark);
26
+ --navbar-mobile-menu-bg: var(--vd-color-white);
27
+ --navbar-mobile-menu-bg-dark: var(--vd-bg-dark);
28
28
  --navbar-mobile-menu-width: 233px; /* fib */
29
29
  --navbar-mobile-overlay-bg: rgba(0, 0, 0, 0.5);
30
30
  }
31
31
 
32
32
  /* Dark Theme Overrides */
33
33
  [data-theme="dark"] {
34
- --navbar-bg: var(--bg-primary);
35
- --navbar-text-color: var(--text-primary);
36
- --navbar-link-color: var(--text-primary);
37
- --navbar-mobile-menu-bg: var(--bg-primary);
34
+ --navbar-bg: var(--vd-bg-primary);
35
+ --navbar-text-color: var(--vd-text-primary);
36
+ --navbar-link-color: var(--vd-text-primary);
37
+ --navbar-mobile-menu-bg: var(--vd-bg-primary);
38
38
  }
39
39
 
40
40
  @media (prefers-color-scheme: dark) {
41
41
  :root:not([data-theme]) {
42
- --navbar-bg: var(--bg-primary);
43
- --navbar-text-color: var(--text-primary);
44
- --navbar-link-color: var(--text-primary);
45
- --navbar-mobile-menu-bg: var(--bg-primary);
42
+ --navbar-bg: var(--vd-bg-primary);
43
+ --navbar-text-color: var(--vd-text-primary);
44
+ --navbar-link-color: var(--vd-text-primary);
45
+ --navbar-mobile-menu-bg: var(--vd-bg-primary);
46
46
  }
47
47
  }
48
48
 
@@ -168,7 +168,7 @@
168
168
  }
169
169
 
170
170
  .vd-navbar-nav .vd-nav-link:focus-visible {
171
- outline: 2px solid var(--color-primary);
171
+ outline: 2px solid var(--vd-color-primary);
172
172
  outline-offset: 2px;
173
173
  }
174
174
 
@@ -268,7 +268,7 @@
268
268
 
269
269
  .vd-navbar-dark .vd-navbar-brand:hover,
270
270
  .vd-navbar-dark .vd-navbar-brand:focus {
271
- color: var(--color-primary-light);
271
+ color: var(--vd-color-primary-light);
272
272
  }
273
273
 
274
274
  .vd-navbar-dark .vd-navbar-nav .vd-nav-link {
@@ -277,12 +277,12 @@
277
277
 
278
278
  .vd-navbar-dark .vd-navbar-nav .vd-nav-link:hover,
279
279
  .vd-navbar-dark .vd-navbar-nav .vd-nav-link:focus {
280
- color: var(--color-primary-light);
280
+ color: var(--vd-color-primary-light);
281
281
  background-color: rgba(255, 255, 255, 0.1);
282
282
  }
283
283
 
284
284
  .vd-navbar-dark .vd-navbar-nav .vd-nav-link.active {
285
- color: var(--color-primary-light);
285
+ color: var(--vd-color-primary-light);
286
286
  }
287
287
 
288
288
  .vd-navbar-dark .vd-navbar-toggle span,
@@ -358,7 +358,7 @@
358
358
  min-width: 200px;
359
359
  padding: 0.5rem 0;
360
360
  margin: 0.125rem 0 0;
361
- background-color: var(--color-white);
361
+ background-color: var(--vd-color-white);
362
362
  border: 1px solid var(--navbar-border-color);
363
363
  border-radius: var(--btn-border-radius);
364
364
  box-shadow: var(--shadow-md);
@@ -387,13 +387,13 @@
387
387
  .vd-navbar-dropdown-item:hover,
388
388
  .vd-navbar-dropdown-item:focus {
389
389
  color: var(--navbar-link-hover-color);
390
- background-color: var(--bg-secondary);
390
+ background-color: var(--vd-bg-secondary);
391
391
  text-decoration: none;
392
392
  }
393
393
 
394
394
  .vd-navbar-dropdown-item.active {
395
395
  color: var(--navbar-link-active-color);
396
- background-color: var(--color-primary-alpha-10);
396
+ background-color: var(--vd-color-primary-alpha-10);
397
397
  }
398
398
 
399
399
  .vd-navbar-dark .vd-navbar-dropdown-menu {
@@ -407,7 +407,7 @@
407
407
 
408
408
  .vd-navbar-dark .vd-navbar-dropdown-item:hover,
409
409
  .vd-navbar-dark .vd-navbar-dropdown-item:focus {
410
- color: var(--color-primary-light);
410
+ color: var(--vd-color-primary-light);
411
411
  background-color: rgba(255, 255, 255, 0.1);
412
412
  }
413
413
 
@@ -525,7 +525,7 @@
525
525
  padding: 0;
526
526
  border: none;
527
527
  box-shadow: none;
528
- background-color: var(--bg-secondary);
528
+ background-color: var(--vd-bg-secondary);
529
529
  }
530
530
 
531
531
  .vd-navbar-dark .vd-navbar-dropdown-menu {
@@ -5,14 +5,14 @@
5
5
 
6
6
  :root {
7
7
  /* Pagination Colors */
8
- --pagination-bg: var(--color-white);
9
- --pagination-border-color: var(--border-color);
10
- --pagination-link-color: var(--color-primary);
11
- --pagination-link-bg: var(--color-white);
12
- --pagination-link-bg-hover: var(--bg-secondary);
13
- --pagination-link-bg-active: var(--color-primary);
14
- --pagination-link-color-active: var(--color-white);
15
- --pagination-link-color-disabled: var(--text-muted);
8
+ --pagination-bg: var(--vd-color-white);
9
+ --pagination-border-color: var(--vd-border-color);
10
+ --pagination-link-color: var(--vd-color-primary);
11
+ --pagination-link-bg: var(--vd-color-white);
12
+ --pagination-link-bg-hover: var(--vd-bg-secondary);
13
+ --pagination-link-bg-active: var(--vd-color-primary);
14
+ --pagination-link-color-active: var(--vd-color-white);
15
+ --pagination-link-color-disabled: var(--vd-text-muted);
16
16
 
17
17
  /* Pagination Spacing (Fibonacci pairs: x/y ratio ~ phi) */
18
18
  --pagination-padding-y: 0.5rem; /* 8px - fib */
@@ -30,16 +30,16 @@
30
30
 
31
31
  /* Dark Theme Overrides */
32
32
  [data-theme="dark"] {
33
- --pagination-bg: var(--bg-secondary);
34
- --pagination-link-bg: var(--bg-secondary);
35
- --pagination-link-bg-hover: var(--bg-primary);
33
+ --pagination-bg: var(--vd-bg-secondary);
34
+ --pagination-link-bg: var(--vd-bg-secondary);
35
+ --pagination-link-bg-hover: var(--vd-bg-primary);
36
36
  }
37
37
 
38
38
  @media (prefers-color-scheme: dark) {
39
39
  :root:not([data-theme]) {
40
- --pagination-bg: var(--bg-secondary);
41
- --pagination-link-bg: var(--bg-secondary);
42
- --pagination-link-bg-hover: var(--bg-primary);
40
+ --pagination-bg: var(--vd-bg-secondary);
41
+ --pagination-link-bg: var(--vd-bg-secondary);
42
+ --pagination-link-bg-hover: var(--vd-bg-primary);
43
43
  }
44
44
  }
45
45
 
@@ -140,7 +140,7 @@
140
140
  /* Pagination Ellipsis */
141
141
  .vd-pagination-ellipsis {
142
142
  padding: var(--pagination-padding-y) var(--pagination-padding-x);
143
- color: var(--text-muted);
143
+ color: var(--vd-text-muted);
144
144
  pointer-events: none;
145
145
  cursor: default;
146
146
  }
@@ -10,8 +10,8 @@
10
10
  display: inline-block;
11
11
  width: var(--spinner-size, 2rem);
12
12
  height: var(--spinner-size, 2rem);
13
- border: var(--spinner-border-width, 3px) solid var(--border-color, #e9ecef);
14
- border-top-color: var(--spinner-color, var(--color-primary));
13
+ border: var(--spinner-border-width, 3px) solid var(--vd-border-color, #e9ecef);
14
+ border-top-color: var(--spinner-color, var(--vd-color-primary));
15
15
  border-radius: 50%;
16
16
  animation: spinner-rotate var(--spinner-speed, 0.65s) linear infinite;
17
17
  }
@@ -23,14 +23,14 @@
23
23
  .vd-preloader-xl { --spinner-size: 4rem; --spinner-border-width: 5px; }
24
24
 
25
25
  /* Preloader Colors */
26
- .vd-preloader-primary { --spinner-color: var(--color-primary); }
27
- .vd-preloader-secondary { --spinner-color: var(--color-secondary); }
28
- .vd-preloader-success { --spinner-color: var(--color-success); }
29
- .vd-preloader-warning { --spinner-color: var(--color-warning); }
30
- .vd-preloader-error { --spinner-color: var(--color-error); }
31
- .vd-preloader-info { --spinner-color: var(--color-info); }
26
+ .vd-preloader-primary { --spinner-color: var(--vd-color-primary); }
27
+ .vd-preloader-secondary { --spinner-color: var(--vd-color-secondary); }
28
+ .vd-preloader-success { --spinner-color: var(--vd-color-success); }
29
+ .vd-preloader-warning { --spinner-color: var(--vd-color-warning); }
30
+ .vd-preloader-error { --spinner-color: var(--vd-color-error); }
31
+ .vd-preloader-info { --spinner-color: var(--vd-color-info); }
32
32
  .vd-preloader-light { --spinner-color: #fff; }
33
- .vd-preloader-dark { --spinner-color: var(--text-primary); }
33
+ .vd-preloader-dark { --spinner-color: var(--vd-text-primary); }
34
34
 
35
35
  /* Preloader Container */
36
36
  .vd-preloader-container {
@@ -43,7 +43,7 @@
43
43
  }
44
44
 
45
45
  .vd-preloader-text {
46
- color: var(--text-secondary);
46
+ color: var(--vd-text-secondary);
47
47
  font-size: var(--font-size-sm);
48
48
  }
49
49
 
@@ -5,8 +5,8 @@
5
5
 
6
6
  :root {
7
7
  --progress-height: 8px;
8
- --progress-bg: var(--bg-tertiary, #e9ecef);
9
- --progress-bar-bg: var(--color-primary);
8
+ --progress-bg: var(--vd-bg-tertiary, #e9ecef);
9
+ --progress-bar-bg: var(--vd-color-primary);
10
10
  --progress-border-radius: var(--radius-fib-5, 5px);
11
11
  }
12
12
 
@@ -33,10 +33,10 @@
33
33
  }
34
34
 
35
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); }
36
+ .vd-progress-bar.vd-progress-success { background-color: var(--vd-color-success); }
37
+ .vd-progress-bar.vd-progress-warning { background-color: var(--vd-color-warning); }
38
+ .vd-progress-bar.vd-progress-error { background-color: var(--vd-color-error); }
39
+ .vd-progress-bar.vd-progress-info { background-color: var(--vd-color-info); }
40
40
 
41
41
  /* Sizes */
42
42
  .vd-progress-xs { --progress-height: 3px; }
@@ -97,11 +97,11 @@
97
97
 
98
98
  /* Dark mode */
99
99
  [data-theme="dark"] {
100
- --progress-bg: var(--bg-tertiary, #2d3748);
100
+ --progress-bg: var(--vd-bg-tertiary, #2d3748);
101
101
  }
102
102
 
103
103
  @media (prefers-color-scheme: dark) {
104
104
  :root:not([data-theme]) {
105
- --progress-bg: var(--bg-tertiary, #2d3748);
105
+ --progress-bg: var(--vd-bg-tertiary, #2d3748);
106
106
  }
107
107
  }
@@ -6,7 +6,7 @@
6
6
  :root {
7
7
  /* Rating Colors */
8
8
  --rating-active-color: #f59e0b;
9
- --rating-inactive-color: var(--color-gray-300, #dee2e6);
9
+ --rating-inactive-color: var(--vd-color-gray-300, #dee2e6);
10
10
  --rating-hover-color: #fbbf24;
11
11
 
12
12
  /* Rating Dimensions (Fibonacci) */
@@ -17,12 +17,12 @@
17
17
  }
18
18
 
19
19
  [data-theme="dark"] {
20
- --rating-inactive-color: var(--color-gray-600, #6c757d);
20
+ --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(--color-gray-600, #6c757d);
25
+ --rating-inactive-color: var(--vd-color-gray-600, #6c757d);
26
26
  }
27
27
  }
28
28
 
@@ -108,5 +108,5 @@
108
108
  margin-left: 0.5rem;
109
109
  font-size: 0.875rem;
110
110
  font-weight: 600;
111
- color: var(--text-primary, #212529);
111
+ color: var(--vd-text-primary, #212529);
112
112
  }
@@ -5,12 +5,12 @@
5
5
 
6
6
  :root {
7
7
  /* Sidenav Colors */
8
- --sidenav-bg: var(--color-white);
8
+ --sidenav-bg: var(--vd-color-white);
9
9
  --sidenav-overlay-bg: rgba(0, 0, 0, 0.35);
10
- --sidenav-border-color: var(--border-color);
11
- --sidenav-item-bg-hover: var(--bg-secondary);
12
- --sidenav-item-bg-active: var(--color-primary-alpha-10);
13
- --sidenav-item-color-active: var(--color-primary);
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);
14
14
 
15
15
  /* Sidenav Dimensions (Fibonacci) */
16
16
  --sidenav-width: 233px; /* fib */
@@ -33,14 +33,14 @@
33
33
 
34
34
  /* Dark Theme Overrides */
35
35
  [data-theme="dark"] {
36
- --sidenav-bg: var(--bg-secondary);
37
- --sidenav-item-bg-hover: var(--bg-primary);
36
+ --sidenav-bg: var(--vd-bg-secondary);
37
+ --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(--bg-secondary);
43
- --sidenav-item-bg-hover: var(--bg-primary);
42
+ --sidenav-bg: var(--vd-bg-secondary);
43
+ --sidenav-item-bg-hover: var(--vd-bg-primary);
44
44
  }
45
45
  }
46
46
 
@@ -138,7 +138,7 @@
138
138
  margin: 0;
139
139
  font-size: var(--font-size-lg);
140
140
  font-weight: var(--font-weight-semibold);
141
- color: var(--text-primary);
141
+ color: var(--vd-text-primary);
142
142
  }
143
143
 
144
144
  .vd-sidenav-close {
@@ -152,7 +152,7 @@
152
152
  font-size: 1.5rem;
153
153
  font-weight: var(--font-weight-bold);
154
154
  line-height: 1;
155
- color: var(--text-secondary);
155
+ color: var(--vd-text-secondary);
156
156
  transition: var(--transition-opacity);
157
157
  }
158
158
 
@@ -190,7 +190,7 @@
190
190
  margin-top: 0.5rem;
191
191
  font-size: var(--font-size-xs);
192
192
  font-weight: var(--font-weight-semibold);
193
- color: var(--text-muted);
193
+ color: var(--vd-text-muted);
194
194
  text-transform: uppercase;
195
195
  letter-spacing: 0.05em;
196
196
  }
@@ -211,7 +211,7 @@
211
211
  font-size: var(--font-size-base);
212
212
  font-weight: var(--font-weight-normal);
213
213
  line-height: var(--line-height-normal);
214
- color: var(--text-primary);
214
+ color: var(--vd-text-primary);
215
215
  text-decoration: none;
216
216
  transition: var(--transition-bg);
217
217
  cursor: pointer;
@@ -219,7 +219,7 @@
219
219
 
220
220
  .vd-sidenav-link:hover {
221
221
  background-color: var(--sidenav-item-bg-hover);
222
- color: var(--text-primary);
222
+ color: var(--vd-text-primary);
223
223
  text-decoration: none;
224
224
  }
225
225
 
@@ -5,21 +5,21 @@
5
5
 
6
6
  :root {
7
7
  /* Skeleton Colors */
8
- --skeleton-bg: var(--color-gray-200);
9
- --skeleton-shimmer: var(--color-gray-100);
8
+ --skeleton-bg: var(--vd-color-gray-200);
9
+ --skeleton-shimmer: var(--vd-color-gray-100);
10
10
  --skeleton-border-radius: var(--btn-border-radius);
11
11
  }
12
12
 
13
13
  /* Dark Theme Overrides */
14
14
  [data-theme="dark"] {
15
- --skeleton-bg: var(--color-gray-700);
16
- --skeleton-shimmer: var(--color-gray-600);
15
+ --skeleton-bg: var(--vd-color-gray-700);
16
+ --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(--color-gray-700);
22
- --skeleton-shimmer: var(--color-gray-600);
21
+ --skeleton-bg: var(--vd-color-gray-700);
22
+ --skeleton-shimmer: var(--vd-color-gray-600);
23
23
  }
24
24
  }
25
25
 
@@ -88,12 +88,13 @@
88
88
  /* Skeleton Circle (for avatars) */
89
89
  .vd-skeleton-circle {
90
90
  border-radius: 50%;
91
+ width: 3rem;
92
+ height: 3rem;
91
93
  }
92
94
 
93
95
  .vd-skeleton-circle-xs { width: 1.5rem; height: 1.5rem; }
94
96
  .vd-skeleton-circle-sm { width: 2rem; height: 2rem; }
95
97
  .vd-skeleton-circle-md { width: 2.5rem; height: 2.5rem; }
96
- .vd-skeleton-circle { width: 3rem; height: 3rem; }
97
98
  .vd-skeleton-circle-lg { width: 4rem; height: 4rem; }
98
99
  .vd-skeleton-circle-xl { width: 5rem; height: 5rem; }
99
100
 
@@ -127,7 +128,7 @@
127
128
  .vd-skeleton-card {
128
129
  padding: 1rem;
129
130
  border-radius: var(--btn-border-radius);
130
- border: 1px solid var(--border-color);
131
+ border: 1px solid var(--vd-border-color);
131
132
  }
132
133
 
133
134
  /* Skeleton Input */
@@ -189,7 +190,7 @@
189
190
  display: flex;
190
191
  gap: 1rem;
191
192
  padding: 0.75rem 0;
192
- border-bottom: 1px solid var(--border-color);
193
+ border-bottom: 1px solid var(--vd-border-color);
193
194
  }
194
195
 
195
196
  .vd-skeleton-table-row .vd-skeleton-text {
@@ -6,7 +6,7 @@
6
6
  :root {
7
7
  --spinner-size: 2rem;
8
8
  --spinner-border-width: 3px;
9
- --spinner-color: var(--color-primary);
9
+ --spinner-color: var(--vd-color-primary);
10
10
  --spinner-speed: 0.65s;
11
11
  }
12
12
 
@@ -15,7 +15,7 @@
15
15
  display: inline-block;
16
16
  width: var(--spinner-size);
17
17
  height: var(--spinner-size);
18
- border: var(--spinner-border-width) solid var(--border-color, #e9ecef);
18
+ border: var(--spinner-border-width) solid var(--vd-border-color, #e9ecef);
19
19
  border-top-color: var(--spinner-color);
20
20
  border-radius: 50%;
21
21
  animation: spinner-rotate var(--spinner-speed) linear infinite;
@@ -80,12 +80,12 @@
80
80
  .vd-spinner-xl { --spinner-size: 4rem; --spinner-border-width: 5px; }
81
81
 
82
82
  /* Color Variants */
83
- .vd-spinner-success { --spinner-color: var(--color-success); }
84
- .vd-spinner-warning { --spinner-color: var(--color-warning); }
85
- .vd-spinner-error { --spinner-color: var(--color-error); }
86
- .vd-spinner-info { --spinner-color: var(--color-info); }
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
87
  .vd-spinner-light { --spinner-color: #fff; }
88
- .vd-spinner-dark { --spinner-color: var(--text-primary); }
88
+ .vd-spinner-dark { --spinner-color: var(--vd-text-primary); }
89
89
 
90
90
  /* Centering Helper */
91
91
  .vd-spinner-center {
@@ -118,7 +118,7 @@
118
118
  --spinner-border-width: 2px;
119
119
  --spinner-speed: 0.9s;
120
120
 
121
- border-color: var(--border-color, #d9d9d9);
121
+ border-color: var(--vd-border-color, #d9d9d9);
122
122
  border-top-color: var(--spinner-color);
123
123
  }
124
124
 
@@ -139,7 +139,7 @@
139
139
  }
140
140
 
141
141
  .vd-dynamic-loader-text {
142
- color: var(--text-muted);
142
+ color: var(--vd-text-muted);
143
143
  font-size: var(--font-size-sm, 0.8125rem);
144
144
  }
145
145
 
@@ -150,7 +150,7 @@
150
150
  padding: 2rem;
151
151
  overflow: hidden;
152
152
  border-radius: var(--btn-border-radius, 0.5rem);
153
- border: 1px solid var(--border-color);
153
+ border: 1px solid var(--vd-border-color);
154
154
  }
155
155
 
156
156
  .vd-dynamic-loader-card > .vd-dynamic-loader {