@vanduo-oss/framework 1.4.0 → 1.4.2

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 (89) 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 +55 -53
  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 +53 -49
  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 +32 -30
  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 +104 -29
  63. package/dist/vanduo.cjs.js.map +2 -2
  64. package/dist/vanduo.cjs.min.js +5 -5
  65. package/dist/vanduo.cjs.min.js.map +3 -3
  66. package/dist/vanduo.css +4042 -4133
  67. package/dist/vanduo.css.map +1 -1
  68. package/dist/vanduo.esm.js +104 -29
  69. package/dist/vanduo.esm.js.map +2 -2
  70. package/dist/vanduo.esm.min.js +5 -5
  71. package/dist/vanduo.esm.min.js.map +3 -3
  72. package/dist/vanduo.js +104 -29
  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 +5 -5
  77. package/dist/vanduo.min.js.map +3 -3
  78. package/js/components/affix.js +2 -2
  79. package/js/components/datepicker.js +51 -4
  80. package/js/components/image-box.js +2 -2
  81. package/js/components/morph.js +1 -1
  82. package/js/components/music-player.js +11 -11
  83. package/js/components/navbar.js +1 -1
  84. package/js/components/preloader.js +1 -1
  85. package/js/components/theme-customizer.js +4 -4
  86. package/js/components/timepicker.js +48 -6
  87. package/js/components/vd-hex.js +8 -10
  88. package/package.json +1 -1
  89. package/css/core/vd-aliases.css +0 -108
@@ -5,51 +5,51 @@
5
5
 
6
6
  :root {
7
7
  /* Draggable Colors */
8
- --draggable-bg: var(--vd-color-white);
9
- --draggable-border-color: var(--vd-border-color);
10
- --draggable-hover-bg: var(--vd-bg-secondary);
11
- --draggable-hover-border-color: var(--vd-color-primary);
12
- --draggable-dragging-bg: var(--vd-bg-secondary);
13
- --draggable-dragging-border-color: var(--vd-color-primary);
14
- --draggable-dragging-shadow: var(--shadow-lg);
8
+ --vd-draggable-bg: var(--vd-color-white);
9
+ --vd-draggable-border-color: var(--vd-border-color);
10
+ --vd-draggable-hover-bg: var(--vd-bg-secondary);
11
+ --vd-draggable-hover-border-color: var(--vd-color-primary);
12
+ --vd-draggable-dragging-bg: var(--vd-bg-secondary);
13
+ --vd-draggable-dragging-border-color: var(--vd-color-primary);
14
+ --vd-draggable-dragging-shadow: var(--vd-shadow-lg);
15
15
 
16
16
  /* Drop Zone Colors */
17
- --drop-zone-bg: var(--vd-color-primary-alpha-5);
18
- --drop-zone-border-color: var(--vd-color-primary-alpha-30);
19
- --drop-zone-hover-bg: var(--vd-color-primary-alpha-10);
20
- --drop-zone-hover-border-color: var(--vd-color-primary);
21
- --drop-zone-active-bg: var(--vd-color-primary-alpha-15);
22
- --drop-zone-active-border-color: var(--vd-color-primary);
17
+ --vd-drop-zone-bg: var(--vd-color-primary-alpha-5);
18
+ --vd-drop-zone-border-color: var(--vd-color-primary-alpha-30);
19
+ --vd-drop-zone-hover-bg: var(--vd-color-primary-alpha-10);
20
+ --vd-drop-zone-hover-border-color: var(--vd-color-primary);
21
+ --vd-drop-zone-active-bg: var(--vd-color-primary-alpha-15);
22
+ --vd-drop-zone-active-border-color: var(--vd-color-primary);
23
23
 
24
24
  /* Spacing */
25
- --draggable-padding: 0.8125rem; /* 13px - fib */
26
- --draggable-margin: 0.5rem; /* 8px - fib */
27
- --drop-zone-padding: 1.3125rem; /* 21px - fib */
25
+ --vd-draggable-padding: 0.8125rem; /* 13px - fib */
26
+ --vd-draggable-margin: 0.5rem; /* 8px - fib */
27
+ --vd-drop-zone-padding: 1.3125rem; /* 21px - fib */
28
28
 
29
29
  /* Transitions */
30
- --draggable-transition: all var(--transition-duration-base) var(--transition-ease);
30
+ --vd-draggable-transition: all var(--vd-transition-duration-base) var(--vd-transition-ease);
31
31
  }
32
32
 
33
33
  /* Dark Theme Overrides */
34
34
  [data-theme="dark"] {
35
- --draggable-bg: var(--vd-bg-secondary);
36
- --draggable-hover-bg: var(--vd-bg-primary);
37
- --draggable-dragging-bg: var(--vd-bg-primary);
38
- --drop-zone-bg: var(--vd-color-primary-alpha-10);
39
- --drop-zone-border-color: var(--vd-color-primary-alpha-40);
40
- --drop-zone-hover-bg: var(--vd-color-primary-alpha-15);
41
- --drop-zone-active-bg: var(--vd-color-primary-alpha-20);
35
+ --vd-draggable-bg: var(--vd-bg-secondary);
36
+ --vd-draggable-hover-bg: var(--vd-bg-primary);
37
+ --vd-draggable-dragging-bg: var(--vd-bg-primary);
38
+ --vd-drop-zone-bg: var(--vd-color-primary-alpha-10);
39
+ --vd-drop-zone-border-color: var(--vd-color-primary-alpha-40);
40
+ --vd-drop-zone-hover-bg: var(--vd-color-primary-alpha-15);
41
+ --vd-drop-zone-active-bg: var(--vd-color-primary-alpha-20);
42
42
  }
43
43
 
44
44
  @media (prefers-color-scheme: dark) {
45
45
  :root:not([data-theme]) {
46
- --draggable-bg: var(--vd-bg-secondary);
47
- --draggable-hover-bg: var(--vd-bg-primary);
48
- --draggable-dragging-bg: var(--vd-bg-primary);
49
- --drop-zone-bg: var(--vd-color-primary-alpha-10);
50
- --drop-zone-border-color: var(--vd-color-primary-alpha-40);
51
- --drop-zone-hover-bg: var(--vd-color-primary-alpha-15);
52
- --drop-zone-active-bg: var(--vd-color-primary-alpha-20);
46
+ --vd-draggable-bg: var(--vd-bg-secondary);
47
+ --vd-draggable-hover-bg: var(--vd-bg-primary);
48
+ --vd-draggable-dragging-bg: var(--vd-bg-primary);
49
+ --vd-drop-zone-bg: var(--vd-color-primary-alpha-10);
50
+ --vd-drop-zone-border-color: var(--vd-color-primary-alpha-40);
51
+ --vd-drop-zone-hover-bg: var(--vd-color-primary-alpha-15);
52
+ --vd-drop-zone-active-bg: var(--vd-color-primary-alpha-20);
53
53
  }
54
54
  }
55
55
 
@@ -57,20 +57,20 @@
57
57
  .vd-draggable {
58
58
  position: relative;
59
59
  display: inline-block;
60
- padding: var(--draggable-padding);
61
- margin: var(--draggable-margin);
62
- background-color: var(--draggable-bg);
63
- border: 1px solid var(--draggable-border-color);
64
- border-radius: var(--btn-border-radius);
60
+ padding: var(--vd-draggable-padding);
61
+ margin: var(--vd-draggable-margin);
62
+ background-color: var(--vd-draggable-bg);
63
+ border: 1px solid var(--vd-draggable-border-color);
64
+ border-radius: var(--vd-btn-border-radius);
65
65
  cursor: grab;
66
66
  user-select: none;
67
- transition: var(--draggable-transition);
67
+ transition: var(--vd-draggable-transition);
68
68
  touch-action: none;
69
69
  }
70
70
 
71
71
  .vd-draggable:hover {
72
- background-color: var(--draggable-hover-bg);
73
- border-color: var(--draggable-hover-border-color);
72
+ background-color: var(--vd-draggable-hover-bg);
73
+ border-color: var(--vd-draggable-hover-border-color);
74
74
  }
75
75
 
76
76
  .vd-draggable:active {
@@ -89,9 +89,9 @@
89
89
  .vd-draggable.is-dragging {
90
90
  opacity: 0.7;
91
91
  transform: scale(1.02);
92
- background-color: var(--draggable-dragging-bg);
93
- border-color: var(--draggable-dragging-border-color);
94
- box-shadow: var(--draggable-dragging-shadow);
92
+ background-color: var(--vd-draggable-dragging-bg);
93
+ border-color: var(--vd-draggable-dragging-border-color);
94
+ box-shadow: var(--vd-draggable-dragging-shadow);
95
95
  cursor: grabbing;
96
96
  z-index: 1000;
97
97
  }
@@ -106,7 +106,7 @@
106
106
  margin-right: 0.5rem; /* 8px */
107
107
  color: var(--vd-text-muted);
108
108
  cursor: grab;
109
- transition: var(--draggable-transition);
109
+ transition: var(--vd-draggable-transition);
110
110
  }
111
111
 
112
112
  .vd-draggable-handle:hover {
@@ -121,22 +121,22 @@
121
121
  .vd-drop-zone {
122
122
  position: relative;
123
123
  min-height: 3rem; /* 48px */
124
- padding: var(--drop-zone-padding);
125
- margin: var(--draggable-margin);
126
- background-color: var(--drop-zone-bg);
127
- border: 2px dashed var(--drop-zone-border-color);
128
- border-radius: var(--btn-border-radius);
129
- transition: var(--draggable-transition);
124
+ padding: var(--vd-drop-zone-padding);
125
+ margin: var(--vd-draggable-margin);
126
+ background-color: var(--vd-drop-zone-bg);
127
+ border: 2px dashed var(--vd-drop-zone-border-color);
128
+ border-radius: var(--vd-btn-border-radius);
129
+ transition: var(--vd-draggable-transition);
130
130
  }
131
131
 
132
132
  .vd-drop-zone:hover {
133
- background-color: var(--drop-zone-hover-bg);
134
- border-color: var(--drop-zone-hover-border-color);
133
+ background-color: var(--vd-drop-zone-hover-bg);
134
+ border-color: var(--vd-drop-zone-hover-border-color);
135
135
  }
136
136
 
137
137
  .vd-drop-zone.is-drag-over {
138
- background-color: var(--drop-zone-active-bg);
139
- border-color: var(--drop-zone-active-border-color);
138
+ background-color: var(--vd-drop-zone-active-bg);
139
+ border-color: var(--vd-drop-zone-active-border-color);
140
140
  border-style: solid;
141
141
  transform: scale(1.01);
142
142
  }
@@ -157,7 +157,7 @@
157
157
  top: 50%;
158
158
  left: 50%;
159
159
  transform: translate(-50%, -50%);
160
- font-weight: var(--font-weight-medium);
160
+ font-weight: var(--vd-font-weight-medium);
161
161
  color: var(--vd-color-primary);
162
162
  pointer-events: none;
163
163
  }
@@ -166,11 +166,11 @@
166
166
  .vd-draggable-container {
167
167
  display: flex;
168
168
  flex-wrap: wrap;
169
- gap: var(--draggable-margin);
170
- padding: var(--draggable-padding);
169
+ gap: var(--vd-draggable-margin);
170
+ padding: var(--vd-draggable-padding);
171
171
  background-color: var(--vd-bg-secondary);
172
172
  border: 1px solid var(--vd-border-color);
173
- border-radius: var(--btn-border-radius);
173
+ border-radius: var(--vd-btn-border-radius);
174
174
  }
175
175
 
176
176
  .vd-draggable-container.vd-draggable-container-vertical {
@@ -182,27 +182,27 @@
182
182
  .vd-draggable-item {
183
183
  flex: 0 0 auto;
184
184
  min-width: 8rem; /* 128px */
185
- padding: var(--draggable-padding);
186
- background-color: var(--draggable-bg);
187
- border: 1px solid var(--draggable-border-color);
188
- border-radius: var(--btn-border-radius);
185
+ padding: var(--vd-draggable-padding);
186
+ background-color: var(--vd-draggable-bg);
187
+ border: 1px solid var(--vd-draggable-border-color);
188
+ border-radius: var(--vd-btn-border-radius);
189
189
  cursor: grab;
190
190
  user-select: none;
191
191
  touch-action: none;
192
- transition: var(--draggable-transition);
192
+ transition: var(--vd-draggable-transition);
193
193
  }
194
194
 
195
195
  .vd-draggable-item:hover {
196
- background-color: var(--draggable-hover-bg);
197
- border-color: var(--draggable-hover-border-color);
196
+ background-color: var(--vd-draggable-hover-bg);
197
+ border-color: var(--vd-draggable-hover-border-color);
198
198
  }
199
199
 
200
200
  .vd-draggable-item.is-dragging {
201
201
  opacity: 0.7;
202
202
  transform: scale(1.02);
203
- background-color: var(--draggable-dragging-bg);
204
- border-color: var(--draggable-dragging-border-color);
205
- box-shadow: var(--draggable-dragging-shadow);
203
+ background-color: var(--vd-draggable-dragging-bg);
204
+ border-color: var(--vd-draggable-dragging-border-color);
205
+ box-shadow: var(--vd-draggable-dragging-shadow);
206
206
  cursor: grabbing;
207
207
  z-index: 1000;
208
208
  }
@@ -216,8 +216,8 @@
216
216
  .vd-draggable-item[aria-grabbed="true"] {
217
217
  outline: 2px solid var(--vd-color-primary);
218
218
  outline-offset: 2px;
219
- background-color: var(--draggable-dragging-bg);
220
- border-color: var(--draggable-dragging-border-color);
219
+ background-color: var(--vd-draggable-dragging-bg);
220
+ border-color: var(--vd-draggable-dragging-border-color);
221
221
  }
222
222
 
223
223
  /* Drag Feedback */
@@ -5,40 +5,40 @@
5
5
 
6
6
  :root {
7
7
  /* Dropdown Colors */
8
- --dropdown-bg: var(--vd-color-white);
9
- --dropdown-border-color: var(--vd-border-color);
10
- --dropdown-item-color: var(--vd-text-primary);
11
- --dropdown-item-hover-bg: var(--vd-bg-secondary);
12
- --dropdown-item-hover-color: var(--vd-text-primary);
13
- --dropdown-item-active-bg: var(--vd-color-primary-alpha-10);
14
- --dropdown-item-active-color: var(--vd-color-primary);
15
- --dropdown-item-disabled-color: var(--vd-text-muted);
8
+ --vd-dropdown-bg: var(--vd-color-white);
9
+ --vd-dropdown-border-color: var(--vd-border-color);
10
+ --vd-dropdown-item-color: var(--vd-text-primary);
11
+ --vd-dropdown-item-hover-bg: var(--vd-bg-secondary);
12
+ --vd-dropdown-item-hover-color: var(--vd-text-primary);
13
+ --vd-dropdown-item-active-bg: var(--vd-color-primary-alpha-10);
14
+ --vd-dropdown-item-active-color: var(--vd-color-primary);
15
+ --vd-dropdown-item-disabled-color: var(--vd-text-muted);
16
16
 
17
17
  /* Dropdown Spacing (Fibonacci) */
18
- --dropdown-padding-y: 0.5rem; /* 8px - fib */
19
- --dropdown-padding-x: 0;
20
- --dropdown-item-padding-y: 0.5rem; /* 8px - fib */
21
- --dropdown-item-padding-x: 0.8125rem; /* 13px - fib */
22
- --dropdown-header-padding-y: 0.5rem; /* 8px - fib */
23
- --dropdown-header-padding-x: 0.8125rem;/* 13px - fib */
18
+ --vd-dropdown-padding-y: 0.5rem; /* 8px - fib */
19
+ --vd-dropdown-padding-x: 0;
20
+ --vd-dropdown-item-padding-y: 0.5rem; /* 8px - fib */
21
+ --vd-dropdown-item-padding-x: 0.8125rem; /* 13px - fib */
22
+ --vd-dropdown-header-padding-y: 0.5rem; /* 8px - fib */
23
+ --vd-dropdown-header-padding-x: 0.8125rem;/* 13px - fib */
24
24
 
25
25
  /* Dropdown Z-index */
26
- --dropdown-z-index: 1000;
26
+ --vd-dropdown-z-index: 1000;
27
27
 
28
28
  /* Dropdown Min Width */
29
- --dropdown-min-width: 13rem; /* ~208px, Fibonacci-inspired */
29
+ --vd-dropdown-min-width: 13rem; /* ~208px, Fibonacci-inspired */
30
30
  }
31
31
 
32
32
  /* Dark Theme Overrides */
33
33
  [data-theme="dark"] {
34
- --dropdown-bg: var(--vd-bg-secondary);
35
- --dropdown-item-hover-bg: var(--vd-bg-primary);
34
+ --vd-dropdown-bg: var(--vd-bg-secondary);
35
+ --vd-dropdown-item-hover-bg: var(--vd-bg-primary);
36
36
  }
37
37
 
38
38
  @media (prefers-color-scheme: dark) {
39
39
  :root:not([data-theme]) {
40
- --dropdown-bg: var(--vd-bg-secondary);
41
- --dropdown-item-hover-bg: var(--vd-bg-primary);
40
+ --vd-dropdown-bg: var(--vd-bg-secondary);
41
+ --vd-dropdown-item-hover-bg: var(--vd-bg-primary);
42
42
  }
43
43
  }
44
44
 
@@ -68,7 +68,7 @@
68
68
  border-right: 0.3em solid transparent;
69
69
  border-bottom: 0;
70
70
  border-left: 0.3em solid transparent;
71
- transition: transform var(--transition-duration-base) var(--transition-ease);
71
+ transition: transform var(--vd-transition-duration-base) var(--vd-transition-ease);
72
72
  }
73
73
 
74
74
  .vd-dropdown.is-open .vd-dropdown-toggle::after {
@@ -80,20 +80,20 @@
80
80
  position: absolute;
81
81
  top: 100%;
82
82
  left: 0;
83
- z-index: var(--dropdown-z-index);
83
+ z-index: var(--vd-dropdown-z-index);
84
84
  display: none;
85
- min-width: var(--dropdown-min-width);
86
- padding: var(--dropdown-padding-y) var(--dropdown-padding-x);
85
+ min-width: var(--vd-dropdown-min-width);
86
+ padding: var(--vd-dropdown-padding-y) var(--vd-dropdown-padding-x);
87
87
  margin: 0.125rem 0 0;
88
- background-color: var(--dropdown-bg);
89
- border: 1px solid var(--dropdown-border-color);
90
- border-radius: var(--btn-border-radius);
91
- box-shadow: var(--shadow-lg);
88
+ background-color: var(--vd-dropdown-bg);
89
+ border: 1px solid var(--vd-dropdown-border-color);
90
+ border-radius: var(--vd-btn-border-radius);
91
+ box-shadow: var(--vd-shadow-lg);
92
92
  list-style: none;
93
93
  opacity: 0;
94
94
  transform: translateY(-10px);
95
- transition: opacity var(--transition-duration-base) var(--transition-ease),
96
- transform var(--transition-duration-base) var(--transition-ease);
95
+ transition: opacity var(--vd-transition-duration-base) var(--vd-transition-ease),
96
+ transform var(--vd-transition-duration-base) var(--vd-transition-ease);
97
97
  }
98
98
 
99
99
  .vd-dropdown-glass .vd-dropdown-menu {
@@ -177,24 +177,24 @@
177
177
  .vd-dropdown-item {
178
178
  display: block;
179
179
  width: 100%;
180
- padding: var(--dropdown-item-padding-y) var(--dropdown-item-padding-x);
180
+ padding: var(--vd-dropdown-item-padding-y) var(--vd-dropdown-item-padding-x);
181
181
  clear: both;
182
- font-weight: var(--font-weight-normal);
183
- color: var(--dropdown-item-color);
182
+ font-weight: var(--vd-font-weight-normal);
183
+ color: var(--vd-dropdown-item-color);
184
184
  text-align: inherit;
185
185
  text-decoration: none;
186
186
  white-space: nowrap;
187
187
  background-color: transparent;
188
188
  border: 0;
189
189
  cursor: pointer;
190
- transition: var(--transition-bg);
190
+ transition: var(--vd-transition-bg);
191
191
  user-select: none;
192
192
  }
193
193
 
194
194
  .vd-dropdown-item:hover,
195
195
  .vd-dropdown-item:focus {
196
- color: var(--dropdown-item-hover-color);
197
- background-color: var(--dropdown-item-hover-bg);
196
+ color: var(--vd-dropdown-item-hover-color);
197
+ background-color: var(--vd-dropdown-item-hover-bg);
198
198
  text-decoration: none;
199
199
  }
200
200
 
@@ -205,14 +205,14 @@
205
205
 
206
206
  .vd-dropdown-item.active,
207
207
  .vd-dropdown-item.is-active {
208
- color: var(--dropdown-item-active-color);
209
- background-color: var(--dropdown-item-active-bg);
210
- font-weight: var(--font-weight-medium);
208
+ color: var(--vd-dropdown-item-active-color);
209
+ background-color: var(--vd-dropdown-item-active-bg);
210
+ font-weight: var(--vd-font-weight-medium);
211
211
  }
212
212
 
213
213
  .vd-dropdown-item.disabled,
214
214
  .vd-dropdown-item.is-disabled {
215
- color: var(--dropdown-item-disabled-color);
215
+ color: var(--vd-dropdown-item-disabled-color);
216
216
  pointer-events: none;
217
217
  cursor: not-allowed;
218
218
  opacity: 0.6;
@@ -223,16 +223,16 @@
223
223
  height: 0;
224
224
  margin: 0.5rem 0;
225
225
  overflow: hidden;
226
- border-top: 1px solid var(--dropdown-border-color);
226
+ border-top: 1px solid var(--vd-dropdown-border-color);
227
227
  }
228
228
 
229
229
  /* Dropdown Header */
230
230
  .vd-dropdown-header {
231
231
  display: block;
232
- padding: var(--dropdown-header-padding-y) var(--dropdown-header-padding-x);
232
+ padding: var(--vd-dropdown-header-padding-y) var(--vd-dropdown-header-padding-x);
233
233
  margin-bottom: 0;
234
- font-size: var(--font-size-sm);
235
- font-weight: var(--font-weight-semibold);
234
+ font-size: var(--vd-font-size-sm);
235
+ font-weight: var(--vd-font-weight-semibold);
236
236
  color: var(--vd-text-muted);
237
237
  white-space: nowrap;
238
238
  text-transform: uppercase;
@@ -253,20 +253,20 @@
253
253
  /* Dropdown Sizes */
254
254
  .vd-dropdown-sm .vd-dropdown-menu {
255
255
  min-width: 8rem;
256
- font-size: var(--font-size-sm);
256
+ font-size: var(--vd-font-size-sm);
257
257
  }
258
258
 
259
259
  .vd-dropdown-sm .vd-dropdown-item {
260
- padding: calc(var(--dropdown-item-padding-y) * 0.75) calc(var(--dropdown-item-padding-x) * 0.75);
260
+ padding: calc(var(--vd-dropdown-item-padding-y) * 0.75) calc(var(--vd-dropdown-item-padding-x) * 0.75);
261
261
  }
262
262
 
263
263
  .vd-dropdown-lg .vd-dropdown-menu {
264
264
  min-width: 15rem;
265
- font-size: var(--font-size-lg);
265
+ font-size: var(--vd-font-size-lg);
266
266
  }
267
267
 
268
268
  .vd-dropdown-lg .vd-dropdown-item {
269
- padding: calc(var(--dropdown-item-padding-y) * 1.25) calc(var(--dropdown-item-padding-x) * 1.25);
269
+ padding: calc(var(--vd-dropdown-item-padding-y) * 1.25) calc(var(--vd-dropdown-item-padding-x) * 1.25);
270
270
  }
271
271
 
272
272
  /* Dropdown with Button Toggle */
@@ -5,35 +5,35 @@
5
5
 
6
6
  :root {
7
7
  /* FAB Dimensions (Fibonacci) */
8
- --fab-size: 3.5rem; /* 56px */
9
- --fab-size-sm: 2.5rem; /* 40px */
10
- --fab-size-lg: 4.5rem; /* 72px */
11
- --fab-icon-size: 1.5rem;
8
+ --vd-fab-size: 3.5rem; /* 56px */
9
+ --vd-fab-size-sm: 2.5rem; /* 40px */
10
+ --vd-fab-size-lg: 4.5rem; /* 72px */
11
+ --vd-fab-icon-size: 1.5rem;
12
12
 
13
13
  /* FAB Colors */
14
- --fab-bg: var(--vd-color-primary, #0d6efd);
15
- --fab-color: #fff;
16
- --fab-hover-bg: var(--vd-color-primary-dark, #0b5ed7);
17
- --fab-shadow: 0 3px 8px rgba(0, 0, 0, 0.25), 0 1px 3px rgba(0, 0, 0, 0.15);
18
- --fab-hover-shadow: 0 5px 13px rgba(0, 0, 0, 0.3), 0 2px 5px rgba(0, 0, 0, 0.2);
14
+ --vd-fab-bg: var(--vd-color-primary, #0d6efd);
15
+ --vd-fab-color: #fff;
16
+ --vd-fab-hover-bg: var(--vd-color-primary-dark, #0b5ed7);
17
+ --vd-fab-shadow: 0 3px 8px rgba(0, 0, 0, 0.25), 0 1px 3px rgba(0, 0, 0, 0.15);
18
+ --vd-fab-hover-shadow: 0 5px 13px rgba(0, 0, 0, 0.3), 0 2px 5px rgba(0, 0, 0, 0.2);
19
19
 
20
20
  /* FAB Position */
21
- --fab-offset: 1.3125rem; /* 21px - fib */
22
- --fab-z-index: 1030;
21
+ --vd-fab-offset: 1.3125rem; /* 21px - fib */
22
+ --vd-fab-z-index: 1030;
23
23
 
24
24
  /* FAB Menu */
25
- --fab-menu-gap: 0.8125rem; /* 13px - fib */
25
+ --vd-fab-menu-gap: 0.8125rem; /* 13px - fib */
26
26
  }
27
27
 
28
28
  [data-theme="dark"] {
29
- --fab-shadow: 0 3px 8px rgba(0, 0, 0, 0.5), 0 1px 3px rgba(0, 0, 0, 0.3);
30
- --fab-hover-shadow: 0 5px 13px rgba(0, 0, 0, 0.6), 0 2px 5px rgba(0, 0, 0, 0.35);
29
+ --vd-fab-shadow: 0 3px 8px rgba(0, 0, 0, 0.5), 0 1px 3px rgba(0, 0, 0, 0.3);
30
+ --vd-fab-hover-shadow: 0 5px 13px rgba(0, 0, 0, 0.6), 0 2px 5px rgba(0, 0, 0, 0.35);
31
31
  }
32
32
 
33
33
  @media (prefers-color-scheme: dark) {
34
34
  :root:not([data-theme]) {
35
- --fab-shadow: 0 3px 8px rgba(0, 0, 0, 0.5), 0 1px 3px rgba(0, 0, 0, 0.3);
36
- --fab-hover-shadow: 0 5px 13px rgba(0, 0, 0, 0.6), 0 2px 5px rgba(0, 0, 0, 0.35);
35
+ --vd-fab-shadow: 0 3px 8px rgba(0, 0, 0, 0.5), 0 1px 3px rgba(0, 0, 0, 0.3);
36
+ --vd-fab-hover-shadow: 0 5px 13px rgba(0, 0, 0, 0.6), 0 2px 5px rgba(0, 0, 0, 0.35);
37
37
  }
38
38
  }
39
39
 
@@ -43,15 +43,15 @@
43
43
  display: inline-flex;
44
44
  align-items: center;
45
45
  justify-content: center;
46
- width: var(--fab-size);
47
- height: var(--fab-size);
46
+ width: var(--vd-fab-size);
47
+ height: var(--vd-fab-size);
48
48
  padding: 0;
49
49
  border: none;
50
50
  border-radius: 50%;
51
- background: var(--fab-bg);
52
- color: var(--fab-color);
53
- font-size: var(--fab-icon-size);
54
- box-shadow: var(--fab-shadow);
51
+ background: var(--vd-fab-bg);
52
+ color: var(--vd-fab-color);
53
+ font-size: var(--vd-fab-icon-size);
54
+ box-shadow: var(--vd-fab-shadow);
55
55
  cursor: pointer;
56
56
  transition: background 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
57
57
  }
@@ -66,8 +66,8 @@
66
66
  }
67
67
 
68
68
  .vd-fab:hover {
69
- background: var(--fab-hover-bg);
70
- box-shadow: var(--fab-hover-shadow);
69
+ background: var(--vd-fab-hover-bg);
70
+ box-shadow: var(--vd-fab-hover-shadow);
71
71
  transform: scale(1.05);
72
72
  }
73
73
 
@@ -81,21 +81,21 @@
81
81
  }
82
82
 
83
83
  .vd-fab:focus-visible {
84
- outline: 2px solid var(--fab-bg);
84
+ outline: 2px solid var(--vd-fab-bg);
85
85
  outline-offset: 3px;
86
86
  }
87
87
 
88
88
  /* ========== Sizes ========== */
89
89
 
90
90
  .vd-fab-sm {
91
- width: var(--fab-size-sm);
92
- height: var(--fab-size-sm);
91
+ width: var(--vd-fab-size-sm);
92
+ height: var(--vd-fab-size-sm);
93
93
  font-size: 1.125rem;
94
94
  }
95
95
 
96
96
  .vd-fab-lg {
97
- width: var(--fab-size-lg);
98
- height: var(--fab-size-lg);
97
+ width: var(--vd-fab-size-lg);
98
+ height: var(--vd-fab-size-lg);
99
99
  font-size: 2rem;
100
100
  }
101
101
 
@@ -112,42 +112,42 @@
112
112
 
113
113
  .vd-fab-fixed {
114
114
  position: fixed;
115
- bottom: var(--fab-offset);
116
- right: var(--fab-offset);
117
- z-index: var(--fab-z-index);
115
+ bottom: var(--vd-fab-offset);
116
+ right: var(--vd-fab-offset);
117
+ z-index: var(--vd-fab-z-index);
118
118
  }
119
119
 
120
120
  /* ========== Position Variants (all include position: fixed) ========== */
121
121
 
122
122
  .vd-fab-bottom-left {
123
123
  position: fixed;
124
- z-index: var(--fab-z-index);
125
- bottom: var(--fab-offset);
124
+ z-index: var(--vd-fab-z-index);
125
+ bottom: var(--vd-fab-offset);
126
126
  right: auto;
127
- left: var(--fab-offset);
127
+ left: var(--vd-fab-offset);
128
128
  }
129
129
 
130
130
  .vd-fab-top-right {
131
131
  position: fixed;
132
- z-index: var(--fab-z-index);
132
+ z-index: var(--vd-fab-z-index);
133
133
  bottom: auto;
134
- right: var(--fab-offset);
135
- top: var(--fab-offset);
134
+ right: var(--vd-fab-offset);
135
+ top: var(--vd-fab-offset);
136
136
  }
137
137
 
138
138
  .vd-fab-top-left {
139
139
  position: fixed;
140
- z-index: var(--fab-z-index);
140
+ z-index: var(--vd-fab-z-index);
141
141
  bottom: auto;
142
142
  right: auto;
143
- top: var(--fab-offset);
144
- left: var(--fab-offset);
143
+ top: var(--vd-fab-offset);
144
+ left: var(--vd-fab-offset);
145
145
  }
146
146
 
147
147
  .vd-fab-center {
148
148
  position: fixed;
149
- z-index: var(--fab-z-index);
150
- bottom: var(--fab-offset);
149
+ z-index: var(--vd-fab-z-index);
150
+ bottom: var(--vd-fab-offset);
151
151
  right: 50%;
152
152
  transform: translateX(50%);
153
153
  }
@@ -159,18 +159,18 @@
159
159
  /* ========== Color Variants ========== */
160
160
 
161
161
  .vd-fab-secondary {
162
- --fab-bg: var(--vd-color-gray-600, #6c757d);
163
- --fab-hover-bg: var(--vd-color-gray-700, #5c636a);
162
+ --vd-fab-bg: var(--vd-color-gray-600, #6c757d);
163
+ --vd-fab-hover-bg: var(--vd-color-gray-700, #5c636a);
164
164
  }
165
165
 
166
166
  .vd-fab-success {
167
- --fab-bg: var(--vd-color-success, #198754);
168
- --fab-hover-bg: #157347;
167
+ --vd-fab-bg: var(--vd-color-success, #198754);
168
+ --vd-fab-hover-bg: #157347;
169
169
  }
170
170
 
171
171
  .vd-fab-danger {
172
- --fab-bg: var(--vd-color-danger, #dc3545);
173
- --fab-hover-bg: #bb2d3b;
172
+ --vd-fab-bg: var(--vd-color-danger, #dc3545);
173
+ --vd-fab-hover-bg: #bb2d3b;
174
174
  }
175
175
 
176
176
  /* ========== Speed Dial Menu ========== */
@@ -180,14 +180,14 @@
180
180
  display: inline-flex;
181
181
  flex-direction: column-reverse;
182
182
  align-items: center;
183
- gap: var(--fab-menu-gap);
183
+ gap: var(--vd-fab-menu-gap);
184
184
  }
185
185
 
186
186
  .vd-fab-menu .vd-fab-actions {
187
187
  display: flex;
188
188
  flex-direction: column;
189
189
  align-items: center;
190
- gap: var(--fab-menu-gap);
190
+ gap: var(--vd-fab-menu-gap);
191
191
  opacity: 0;
192
192
  visibility: hidden;
193
193
  transform: translateY(0.5rem);
@@ -202,30 +202,30 @@
202
202
 
203
203
  .vd-fab-menu.vd-fab-fixed {
204
204
  position: fixed;
205
- bottom: var(--fab-offset);
206
- right: var(--fab-offset);
207
- z-index: var(--fab-z-index);
205
+ bottom: var(--vd-fab-offset);
206
+ right: var(--vd-fab-offset);
207
+ z-index: var(--vd-fab-z-index);
208
208
  }
209
209
 
210
210
  .vd-fab-menu .vd-fab-action {
211
211
  display: inline-flex;
212
212
  align-items: center;
213
213
  justify-content: center;
214
- width: var(--fab-size-sm);
215
- height: var(--fab-size-sm);
214
+ width: var(--vd-fab-size-sm);
215
+ height: var(--vd-fab-size-sm);
216
216
  border: none;
217
217
  border-radius: 50%;
218
- background: var(--fab-bg);
219
- color: var(--fab-color);
218
+ background: var(--vd-fab-bg);
219
+ color: var(--vd-fab-color);
220
220
  font-size: 1rem;
221
- box-shadow: var(--fab-shadow);
221
+ box-shadow: var(--vd-fab-shadow);
222
222
  cursor: pointer;
223
223
  transition: background 0.15s ease, transform 0.15s ease;
224
224
  }
225
225
 
226
226
  .vd-fab-menu .vd-fab-action:hover {
227
227
  transform: scale(1.1);
228
- background: var(--fab-hover-bg);
228
+ background: var(--vd-fab-hover-bg);
229
229
  }
230
230
 
231
231
  /* Staggered entrance for action buttons */