@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
@@ -4,19 +4,19 @@
4
4
  */
5
5
 
6
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);
7
+ --vd-progress-height: 8px;
8
+ --vd-progress-bg: var(--vd-bg-tertiary, #e9ecef);
9
+ --vd-progress-bar-bg: var(--vd-color-primary);
10
+ --vd-progress-border-radius: var(--vd-radius-fib-5, 5px);
11
11
  }
12
12
 
13
13
  /* Base Progress */
14
14
  .vd-progress {
15
15
  display: flex;
16
- height: var(--progress-height);
16
+ height: var(--vd-progress-height);
17
17
  overflow: hidden;
18
- background-color: var(--progress-bg);
19
- border-radius: var(--progress-border-radius);
18
+ background-color: var(--vd-progress-bg);
19
+ border-radius: var(--vd-progress-border-radius);
20
20
  }
21
21
 
22
22
  .vd-progress-bar {
@@ -27,27 +27,27 @@
27
27
  color: #fff;
28
28
  text-align: center;
29
29
  white-space: nowrap;
30
- background-color: var(--progress-bar-bg);
30
+ background-color: var(--vd-progress-bar-bg);
31
31
  transition: width 0.4s ease;
32
- border-radius: var(--progress-border-radius);
32
+ border-radius: var(--vd-progress-border-radius);
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
- .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; }
42
+ .vd-progress-xs { --vd-progress-height: 3px; }
43
+ .vd-progress-sm { --vd-progress-height: 5px; }
44
+ .vd-progress-lg { --vd-progress-height: 13px; }
45
+ .vd-progress-xl { --vd-progress-height: 21px; }
46
46
 
47
47
  /* Labeled (show text) */
48
48
  .vd-progress-xl .vd-progress-bar,
49
49
  .vd-progress-lg .vd-progress-bar {
50
- font-size: var(--font-size-xs, 0.75rem);
50
+ font-size: var(--vd-font-size-xs, 0.75rem);
51
51
  line-height: 1;
52
52
  }
53
53
 
@@ -97,11 +97,11 @@
97
97
 
98
98
  /* Dark mode */
99
99
  [data-theme="dark"] {
100
- --progress-bg: var(--bg-tertiary, #2d3748);
100
+ --vd-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
+ --vd-progress-bg: var(--vd-bg-tertiary, #2d3748);
106
106
  }
107
107
  }
@@ -5,24 +5,24 @@
5
5
 
6
6
  :root {
7
7
  /* Rating Colors */
8
- --rating-active-color: #f59e0b;
9
- --rating-inactive-color: var(--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(--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(--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 ========== */
@@ -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
  }
@@ -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(--color-white);
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);
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(--bg-secondary);
37
- --sidenav-item-bg-hover: var(--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(--bg-secondary);
43
- --sidenav-item-bg-hover: var(--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,16 +129,16 @@
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);
141
- color: var(--text-primary);
139
+ font-size: var(--vd-font-size-lg);
140
+ font-weight: var(--vd-font-weight-semibold);
141
+ color: var(--vd-text-primary);
142
142
  }
143
143
 
144
144
  .vd-sidenav-close {
@@ -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
- color: var(--text-secondary);
156
- transition: var(--transition-opacity);
155
+ color: var(--vd-text-secondary);
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,11 +186,11 @@
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);
193
- color: var(--text-muted);
191
+ font-size: var(--vd-font-size-xs);
192
+ font-weight: var(--vd-font-weight-semibold);
193
+ color: var(--vd-text-muted);
194
194
  text-transform: uppercase;
195
195
  letter-spacing: 0.05em;
196
196
  }
@@ -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);
214
- color: var(--text-primary);
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
+ 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);
222
- color: var(--text-primary);
221
+ background-color: var(--vd-sidenav-item-bg-hover);
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(--color-gray-200);
9
- --skeleton-shimmer: var(--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(--color-gray-700);
16
- --skeleton-shimmer: var(--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(--color-gray-700);
22
- --skeleton-shimmer: var(--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;
@@ -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
 
@@ -110,7 +111,7 @@
110
111
  .vd-skeleton-button {
111
112
  height: 2.5rem;
112
113
  width: 6rem;
113
- border-radius: var(--btn-border-radius);
114
+ border-radius: var(--vd-btn-border-radius);
114
115
  }
115
116
 
116
117
  .vd-skeleton-button-sm {
@@ -126,15 +127,15 @@
126
127
  /* Skeleton Card */
127
128
  .vd-skeleton-card {
128
129
  padding: 1rem;
129
- border-radius: var(--btn-border-radius);
130
- border: 1px solid var(--border-color);
130
+ border-radius: var(--vd-btn-border-radius);
131
+ border: 1px solid var(--vd-border-color);
131
132
  }
132
133
 
133
134
  /* Skeleton Input */
134
135
  .vd-skeleton-input {
135
136
  height: 2.5rem;
136
137
  width: 100%;
137
- border-radius: var(--btn-border-radius);
138
+ border-radius: var(--vd-btn-border-radius);
138
139
  }
139
140
 
140
141
  /* Skeleton Paragraph (multiple lines) */
@@ -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 {