@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
@@ -4,28 +4,28 @@
4
4
  */
5
5
 
6
6
  :root {
7
- --spotlight-overlay-bg: rgba(0, 0, 0, 0.5);
8
- --spotlight-tooltip-bg: var(--card-bg, #fff);
9
- --spotlight-tooltip-color: var(--vd-text-primary, #212529);
10
- --spotlight-tooltip-shadow: 0 0.5rem 1.3125rem rgba(0, 0, 0, 0.15);
11
- --spotlight-tooltip-padding: 1.3125rem; /* 21px - fib */
12
- --spotlight-tooltip-radius: var(--card-border-radius, var(--btn-border-radius-lg, 0.5rem));
13
- --spotlight-tooltip-max-width: 21rem; /* 336px - fib×16 */
14
- --spotlight-highlight-padding: 0.5rem; /* 8px - fib */
7
+ --vd-spotlight-overlay-bg: rgba(0, 0, 0, 0.5);
8
+ --vd-spotlight-tooltip-bg: var(--vd-card-bg, #fff);
9
+ --vd-spotlight-tooltip-color: var(--vd-text-primary, #212529);
10
+ --vd-spotlight-tooltip-shadow: 0 0.5rem 1.3125rem rgba(0, 0, 0, 0.15);
11
+ --vd-spotlight-tooltip-padding: 1.3125rem; /* 21px - fib */
12
+ --vd-spotlight-tooltip-radius: var(--vd-card-border-radius, var(--vd-btn-border-radius-lg, 0.5rem));
13
+ --vd-spotlight-tooltip-max-width: 21rem; /* 336px - fib×16 */
14
+ --vd-spotlight-highlight-padding: 0.5rem; /* 8px - fib */
15
15
  /* Match card/modal surfaces so the cutout reads like other rounded UI (not the smaller base button token). */
16
- --spotlight-target-radius: var(--card-border-radius, var(--btn-border-radius-lg, var(--btn-border-radius, 0.25rem)));
17
- --spotlight-z-index: 1080;
16
+ --vd-spotlight-target-radius: var(--vd-card-border-radius, var(--vd-btn-border-radius-lg, var(--vd-btn-border-radius, 0.25rem)));
17
+ --vd-spotlight-z-index: 1080;
18
18
  }
19
19
 
20
20
  [data-theme="dark"] {
21
- --spotlight-tooltip-bg: var(--card-bg, #2d2d44);
22
- --spotlight-tooltip-shadow: 0 0.5rem 1.3125rem rgba(0, 0, 0, 0.35);
21
+ --vd-spotlight-tooltip-bg: var(--vd-card-bg, #2d2d44);
22
+ --vd-spotlight-tooltip-shadow: 0 0.5rem 1.3125rem rgba(0, 0, 0, 0.35);
23
23
  }
24
24
 
25
25
  @media (prefers-color-scheme: dark) {
26
26
  :root:not([data-theme]) {
27
- --spotlight-tooltip-bg: var(--card-bg, #2d2d44);
28
- --spotlight-tooltip-shadow: 0 0.5rem 1.3125rem rgba(0, 0, 0, 0.35);
27
+ --vd-spotlight-tooltip-bg: var(--vd-card-bg, #2d2d44);
28
+ --vd-spotlight-tooltip-shadow: 0 0.5rem 1.3125rem rgba(0, 0, 0, 0.35);
29
29
  }
30
30
  }
31
31
 
@@ -37,7 +37,7 @@
37
37
  left: 0;
38
38
  width: 100vw;
39
39
  height: 100vh;
40
- z-index: var(--spotlight-z-index);
40
+ z-index: var(--vd-spotlight-z-index);
41
41
  pointer-events: auto;
42
42
  transition: opacity 0.3s ease;
43
43
  }
@@ -46,13 +46,13 @@
46
46
 
47
47
  .vd-spotlight-tooltip {
48
48
  position: absolute;
49
- z-index: calc(var(--spotlight-z-index) + 2);
50
- background: var(--spotlight-tooltip-bg);
51
- color: var(--spotlight-tooltip-color);
52
- padding: var(--spotlight-tooltip-padding);
53
- border-radius: var(--spotlight-tooltip-radius);
54
- box-shadow: var(--spotlight-tooltip-shadow);
55
- max-width: var(--spotlight-tooltip-max-width);
49
+ z-index: calc(var(--vd-spotlight-z-index) + 2);
50
+ background: var(--vd-spotlight-tooltip-bg);
51
+ color: var(--vd-spotlight-tooltip-color);
52
+ padding: var(--vd-spotlight-tooltip-padding);
53
+ border-radius: var(--vd-spotlight-tooltip-radius);
54
+ box-shadow: var(--vd-spotlight-tooltip-shadow);
55
+ max-width: var(--vd-spotlight-tooltip-max-width);
56
56
  }
57
57
 
58
58
  .vd-spotlight-title {
@@ -89,7 +89,7 @@
89
89
  .vd-spotlight-btn {
90
90
  padding: 0.3125rem 0.8125rem; /* 5px 13px - fib */
91
91
  border: 1px solid var(--vd-border-color, #dee2e6);
92
- border-radius: var(--btn-border-radius-sm, 0.25rem);
92
+ border-radius: var(--vd-btn-border-radius-sm, 0.25rem);
93
93
  background: transparent;
94
94
  cursor: pointer;
95
95
  font-size: 0.8125rem;
@@ -114,11 +114,11 @@
114
114
 
115
115
  .vd-spotlight-target {
116
116
  position: relative;
117
- z-index: calc(var(--spotlight-z-index) + 1);
117
+ z-index: calc(var(--vd-spotlight-z-index) + 1);
118
118
  isolation: isolate;
119
119
  overflow: visible;
120
120
  /* box-shadow cutout follows border-radius; !important wins over consumer utilities (e.g. docs demos) */
121
- border-radius: var(--spotlight-target-radius) !important;
122
- box-shadow: 0 0 0 var(--spotlight-highlight-padding) rgba(13, 110, 253, 0.25),
123
- 0 0 0 9999px var(--spotlight-overlay-bg);
121
+ border-radius: var(--vd-spotlight-target-radius) !important;
122
+ box-shadow: 0 0 0 var(--vd-spotlight-highlight-padding) rgba(13, 110, 253, 0.25),
123
+ 0 0 0 9999px var(--vd-spotlight-overlay-bg);
124
124
  }
@@ -5,29 +5,29 @@
5
5
 
6
6
  :root {
7
7
  /* Stepper Colors */
8
- --stepper-active-color: var(--vd-color-primary, #0d6efd);
9
- --stepper-completed-color: var(--vd-color-success, #198754);
10
- --stepper-error-color: var(--vd-color-danger, #dc3545);
11
- --stepper-pending-color: var(--vd-color-gray-400, #ced4da);
12
- --stepper-text-color: var(--vd-text-primary, #212529);
13
- --stepper-line-color: var(--vd-border-color, #dee2e6);
8
+ --vd-stepper-active-color: var(--vd-color-primary, #0d6efd);
9
+ --vd-stepper-completed-color: var(--vd-color-success, #198754);
10
+ --vd-stepper-error-color: var(--vd-color-danger, #dc3545);
11
+ --vd-stepper-pending-color: var(--vd-color-gray-400, #ced4da);
12
+ --vd-stepper-text-color: var(--vd-text-primary, #212529);
13
+ --vd-stepper-line-color: var(--vd-border-color, #dee2e6);
14
14
 
15
15
  /* Stepper Dimensions (Fibonacci) */
16
- --stepper-circle-size: 2.125rem; /* 34px ~ fib */
17
- --stepper-line-width: 2px;
18
- --stepper-gap: 0.5rem; /* 8px - fib */
19
- --stepper-connector-gap: 0.8125rem; /* 13px - fib */
16
+ --vd-stepper-circle-size: 2.125rem; /* 34px ~ fib */
17
+ --vd-stepper-line-width: 2px;
18
+ --vd-stepper-gap: 0.5rem; /* 8px - fib */
19
+ --vd-stepper-connector-gap: 0.8125rem; /* 13px - fib */
20
20
  }
21
21
 
22
22
  [data-theme="dark"] {
23
- --stepper-pending-color: var(--vd-color-gray-600, #6c757d);
24
- --stepper-line-color: var(--vd-color-gray-600, #6c757d);
23
+ --vd-stepper-pending-color: var(--vd-color-gray-600, #6c757d);
24
+ --vd-stepper-line-color: var(--vd-color-gray-600, #6c757d);
25
25
  }
26
26
 
27
27
  @media (prefers-color-scheme: dark) {
28
28
  :root:not([data-theme]) {
29
- --stepper-pending-color: var(--vd-color-gray-600, #6c757d);
30
- --stepper-line-color: var(--vd-color-gray-600, #6c757d);
29
+ --vd-stepper-pending-color: var(--vd-color-gray-600, #6c757d);
30
+ --vd-stepper-line-color: var(--vd-color-gray-600, #6c757d);
31
31
  }
32
32
  }
33
33
 
@@ -53,11 +53,11 @@
53
53
  .vd-stepper-item:not(:last-child)::after {
54
54
  content: '';
55
55
  position: absolute;
56
- top: calc(var(--stepper-circle-size) / 2);
57
- left: calc(50% + var(--stepper-circle-size) / 2 + var(--stepper-connector-gap));
58
- right: calc(-50% + var(--stepper-circle-size) / 2 + var(--stepper-connector-gap));
59
- height: var(--stepper-line-width);
60
- background: var(--stepper-line-color);
56
+ top: calc(var(--vd-stepper-circle-size) / 2);
57
+ left: calc(50% + var(--vd-stepper-circle-size) / 2 + var(--vd-stepper-connector-gap));
58
+ right: calc(-50% + var(--vd-stepper-circle-size) / 2 + var(--vd-stepper-connector-gap));
59
+ height: var(--vd-stepper-line-width);
60
+ background: var(--vd-stepper-line-color);
61
61
  z-index: 0;
62
62
  }
63
63
 
@@ -66,10 +66,10 @@
66
66
  display: flex;
67
67
  align-items: center;
68
68
  justify-content: center;
69
- width: var(--stepper-circle-size);
70
- height: var(--stepper-circle-size);
69
+ width: var(--vd-stepper-circle-size);
70
+ height: var(--vd-stepper-circle-size);
71
71
  border-radius: 50%;
72
- border: var(--stepper-line-width) solid var(--stepper-pending-color);
72
+ border: var(--vd-stepper-line-width) solid var(--vd-stepper-pending-color);
73
73
  background: var(--vd-bg-primary, #fff);
74
74
  font-weight: 600;
75
75
  font-size: 0.875rem;
@@ -79,7 +79,7 @@
79
79
  }
80
80
 
81
81
  .vd-stepper-label {
82
- margin-top: var(--stepper-gap);
82
+ margin-top: var(--vd-stepper-gap);
83
83
  font-size: 0.8125rem;
84
84
  font-weight: 500;
85
85
  color: var(--vd-text-muted, #6c757d);
@@ -94,38 +94,38 @@
94
94
  /* ========== States ========== */
95
95
 
96
96
  .vd-stepper-item.is-active .vd-stepper-circle {
97
- border-color: var(--stepper-active-color);
98
- background: var(--stepper-active-color);
97
+ border-color: var(--vd-stepper-active-color);
98
+ background: var(--vd-stepper-active-color);
99
99
  color: #fff;
100
100
  }
101
101
 
102
102
  .vd-stepper-item.is-active .vd-stepper-label {
103
- color: var(--stepper-active-color);
103
+ color: var(--vd-stepper-active-color);
104
104
  font-weight: 600;
105
105
  }
106
106
 
107
107
  .vd-stepper-item.is-completed .vd-stepper-circle {
108
- border-color: var(--stepper-completed-color);
109
- background: var(--stepper-completed-color);
108
+ border-color: var(--vd-stepper-completed-color);
109
+ background: var(--vd-stepper-completed-color);
110
110
  color: #fff;
111
111
  }
112
112
 
113
113
  .vd-stepper-item.is-completed::after {
114
- background: var(--stepper-completed-color);
114
+ background: var(--vd-stepper-completed-color);
115
115
  }
116
116
 
117
117
  .vd-stepper-item.is-completed .vd-stepper-label {
118
- color: var(--stepper-text-color);
118
+ color: var(--vd-stepper-text-color);
119
119
  }
120
120
 
121
121
  .vd-stepper-item.is-error .vd-stepper-circle {
122
- border-color: var(--stepper-error-color);
123
- background: var(--stepper-error-color);
122
+ border-color: var(--vd-stepper-error-color);
123
+ background: var(--vd-stepper-error-color);
124
124
  color: #fff;
125
125
  }
126
126
 
127
127
  .vd-stepper-item.is-error .vd-stepper-label {
128
- color: var(--stepper-error-color);
128
+ color: var(--vd-stepper-error-color);
129
129
  }
130
130
 
131
131
  /* ========== Vertical ========== */
@@ -144,11 +144,11 @@
144
144
  }
145
145
 
146
146
  .vd-stepper-vertical .vd-stepper-item:not(:last-child)::after {
147
- top: calc(var(--stepper-circle-size) + var(--stepper-connector-gap));
148
- left: calc(var(--stepper-circle-size) / 2);
147
+ top: calc(var(--vd-stepper-circle-size) + var(--vd-stepper-connector-gap));
148
+ left: calc(var(--vd-stepper-circle-size) / 2);
149
149
  right: auto;
150
150
  bottom: 0;
151
- width: var(--stepper-line-width);
151
+ width: var(--vd-stepper-line-width);
152
152
  height: auto;
153
153
  }
154
154
 
@@ -6,37 +6,37 @@
6
6
 
7
7
  :root {
8
8
  /* Suggest Colors */
9
- --suggest-bg: var(--card-bg, #fff);
10
- --suggest-border-color: var(--vd-border-color, #dee2e6);
11
- --suggest-shadow: 0 0.25rem 0.8125rem rgba(0, 0, 0, 0.1); /* 4px 13px - fib */
12
- --suggest-item-hover-bg: var(--vd-bg-secondary, #f8f9fa);
13
- --suggest-item-active-bg: var(--vd-color-primary, #0d6efd);
14
- --suggest-item-active-color: #fff;
15
- --suggest-highlight-color: var(--vd-color-primary, #0d6efd);
9
+ --vd-suggest-bg: var(--vd-card-bg, #fff);
10
+ --vd-suggest-border-color: var(--vd-border-color, #dee2e6);
11
+ --vd-suggest-shadow: 0 0.25rem 0.8125rem rgba(0, 0, 0, 0.1); /* 4px 13px - fib */
12
+ --vd-suggest-item-hover-bg: var(--vd-bg-secondary, #f8f9fa);
13
+ --vd-suggest-item-active-bg: var(--vd-color-primary, #0d6efd);
14
+ --vd-suggest-item-active-color: #fff;
15
+ --vd-suggest-highlight-color: var(--vd-color-primary, #0d6efd);
16
16
 
17
17
  /* Suggest Spacing (Fibonacci) */
18
- --suggest-padding: 0.3125rem 0; /* 5px - fib */
19
- --suggest-item-padding: 0.5rem 0.8125rem; /* 8px 13px - fib */
20
- --suggest-max-height: 15rem;
21
- --suggest-border-radius: var(--border-radius, 0.5rem);
18
+ --vd-suggest-padding: 0.3125rem 0; /* 5px - fib */
19
+ --vd-suggest-item-padding: 0.5rem 0.8125rem; /* 8px 13px - fib */
20
+ --vd-suggest-max-height: 15rem;
21
+ --vd-suggest-border-radius: var(--vd-border-radius, 0.5rem);
22
22
 
23
23
  /* Suggest Z-index */
24
- --suggest-z-index: 1050;
24
+ --vd-suggest-z-index: 1050;
25
25
  }
26
26
 
27
27
  [data-theme="dark"] {
28
- --suggest-bg: var(--card-bg, #2d2d44);
29
- --suggest-border-color: var(--vd-border-color, #3d3d5c);
30
- --suggest-item-hover-bg: var(--vd-bg-primary, #1a1a2e);
31
- --suggest-shadow: 0 0.25rem 0.8125rem rgba(0, 0, 0, 0.3);
28
+ --vd-suggest-bg: var(--vd-card-bg, #2d2d44);
29
+ --vd-suggest-border-color: var(--vd-border-color, #3d3d5c);
30
+ --vd-suggest-item-hover-bg: var(--vd-bg-primary, #1a1a2e);
31
+ --vd-suggest-shadow: 0 0.25rem 0.8125rem rgba(0, 0, 0, 0.3);
32
32
  }
33
33
 
34
34
  @media (prefers-color-scheme: dark) {
35
35
  :root:not([data-theme]) {
36
- --suggest-bg: var(--card-bg, #2d2d44);
37
- --suggest-border-color: var(--vd-border-color, #3d3d5c);
38
- --suggest-item-hover-bg: var(--vd-bg-primary, #1a1a2e);
39
- --suggest-shadow: 0 0.25rem 0.8125rem rgba(0, 0, 0, 0.3);
36
+ --vd-suggest-bg: var(--vd-card-bg, #2d2d44);
37
+ --vd-suggest-border-color: var(--vd-border-color, #3d3d5c);
38
+ --vd-suggest-item-hover-bg: var(--vd-bg-primary, #1a1a2e);
39
+ --vd-suggest-shadow: 0 0.25rem 0.8125rem rgba(0, 0, 0, 0.3);
40
40
  }
41
41
  }
42
42
 
@@ -56,15 +56,15 @@
56
56
  top: 100%;
57
57
  left: 0;
58
58
  right: 0;
59
- z-index: var(--suggest-z-index);
59
+ z-index: var(--vd-suggest-z-index);
60
60
  margin-top: 2px;
61
- padding: var(--suggest-padding);
62
- max-height: var(--suggest-max-height);
61
+ padding: var(--vd-suggest-padding);
62
+ max-height: var(--vd-suggest-max-height);
63
63
  overflow-y: auto;
64
- background: var(--suggest-bg);
65
- border: 1px solid var(--suggest-border-color);
66
- border-radius: var(--suggest-border-radius);
67
- box-shadow: var(--suggest-shadow);
64
+ background: var(--vd-suggest-bg);
65
+ border: 1px solid var(--vd-suggest-border-color);
66
+ border-radius: var(--vd-suggest-border-radius);
67
+ box-shadow: var(--vd-suggest-shadow);
68
68
  list-style: none;
69
69
  display: none;
70
70
  }
@@ -76,26 +76,26 @@
76
76
  /* ========== Items ========== */
77
77
 
78
78
  .vd-suggest-item {
79
- padding: var(--suggest-item-padding);
79
+ padding: var(--vd-suggest-item-padding);
80
80
  cursor: pointer;
81
81
  transition: background 0.15s ease;
82
- font-size: var(--font-size-base, 1rem);
82
+ font-size: var(--vd-font-size-base, 1rem);
83
83
  }
84
84
 
85
85
  .vd-suggest-item:hover,
86
86
  .vd-suggest-item.is-highlighted {
87
- background: var(--suggest-item-hover-bg);
87
+ background: var(--vd-suggest-item-hover-bg);
88
88
  }
89
89
 
90
90
  .vd-suggest-item.is-active {
91
- background: var(--suggest-item-active-bg);
92
- color: var(--suggest-item-active-color);
91
+ background: var(--vd-suggest-item-active-bg);
92
+ color: var(--vd-suggest-item-active-color);
93
93
  }
94
94
 
95
95
  /* Match highlight */
96
96
  .vd-suggest-match {
97
97
  font-weight: 600;
98
- color: var(--suggest-highlight-color);
98
+ color: var(--vd-suggest-highlight-color);
99
99
  }
100
100
 
101
101
  .vd-suggest-item.is-active .vd-suggest-match {
@@ -105,7 +105,7 @@
105
105
  /* ========== No Results ========== */
106
106
 
107
107
  .vd-suggest-empty {
108
- padding: var(--suggest-item-padding);
108
+ padding: var(--vd-suggest-item-padding);
109
109
  color: var(--vd-text-muted, #6c757d);
110
110
  font-style: italic;
111
111
  }
@@ -113,7 +113,7 @@
113
113
  /* ========== Loading ========== */
114
114
 
115
115
  .vd-suggest-loading {
116
- padding: var(--suggest-item-padding);
116
+ padding: var(--vd-suggest-item-padding);
117
117
  text-align: center;
118
118
  color: var(--vd-text-muted, #6c757d);
119
119
  }
@@ -5,32 +5,32 @@
5
5
 
6
6
  :root {
7
7
  /* Tab Sizing (Fibonacci pairs: x/y ratio ~ phi) */
8
- --tab-padding-x: 1.3125rem; /* 21px - fib */
9
- --tab-padding-y: 0.8125rem; /* 13px - fib */
10
- --tab-padding-x-sm: 0.8125rem; /* 13px - fib */
11
- --tab-padding-y-sm: 0.5rem; /* 8px - fib */
12
- --tab-padding-x-lg: 2.125rem; /* 34px - fib */
13
- --tab-padding-y-lg: 1.3125rem; /* 21px - fib */
14
- --tab-gap: 0;
15
- --tab-border-width: 2px; /* fib(2) */
8
+ --vd-tab-padding-x: 1.3125rem; /* 21px - fib */
9
+ --vd-tab-padding-y: 0.8125rem; /* 13px - fib */
10
+ --vd-tab-padding-x-sm: 0.8125rem; /* 13px - fib */
11
+ --vd-tab-padding-y-sm: 0.5rem; /* 8px - fib */
12
+ --vd-tab-padding-x-lg: 2.125rem; /* 34px - fib */
13
+ --vd-tab-padding-y-lg: 1.3125rem; /* 21px - fib */
14
+ --vd-tab-gap: 0;
15
+ --vd-tab-border-width: 2px; /* fib(2) */
16
16
 
17
17
  /* Tab Colors */
18
- --tab-text: var(--vd-text-secondary);
19
- --tab-text-hover: var(--vd-text-primary);
20
- --tab-text-active: var(--vd-color-primary);
21
- --tab-border: var(--vd-border-color);
22
- --tab-border-active: var(--vd-color-primary);
23
- --tab-bg-hover: var(--vd-bg-secondary);
18
+ --vd-tab-text: var(--vd-text-secondary);
19
+ --vd-tab-text-hover: var(--vd-text-primary);
20
+ --vd-tab-text-active: var(--vd-color-primary);
21
+ --vd-tab-border: var(--vd-border-color);
22
+ --vd-tab-border-active: var(--vd-color-primary);
23
+ --vd-tab-bg-hover: var(--vd-bg-secondary);
24
24
  }
25
25
 
26
26
  /* Dark Theme Overrides */
27
27
  [data-theme="dark"] {
28
- --tab-bg-hover: var(--vd-color-gray-800);
28
+ --vd-tab-bg-hover: var(--vd-color-gray-800);
29
29
  }
30
30
 
31
31
  @media (prefers-color-scheme: dark) {
32
32
  :root:not([data-theme]) {
33
- --tab-bg-hover: var(--vd-color-gray-800);
33
+ --vd-tab-bg-hover: var(--vd-color-gray-800);
34
34
  }
35
35
  }
36
36
 
@@ -45,11 +45,11 @@
45
45
  .vd-tab-list {
46
46
  display: flex;
47
47
  flex-wrap: wrap;
48
- gap: var(--tab-gap);
48
+ gap: var(--vd-tab-gap);
49
49
  padding: 0;
50
50
  margin: 0;
51
51
  list-style: none;
52
- border-bottom: 1px solid var(--tab-border);
52
+ border-bottom: 1px solid var(--vd-tab-border);
53
53
  }
54
54
 
55
55
  /* Tab Item */
@@ -62,22 +62,22 @@
62
62
  display: inline-flex;
63
63
  align-items: center;
64
64
  gap: 0.5rem;
65
- padding: var(--tab-padding-y) var(--tab-padding-x);
66
- font-size: var(--font-size-base);
67
- font-weight: var(--font-weight-medium);
68
- color: var(--tab-text);
65
+ padding: var(--vd-tab-padding-y) var(--vd-tab-padding-x);
66
+ font-size: var(--vd-font-size-base);
67
+ font-weight: var(--vd-font-weight-medium);
68
+ color: var(--vd-tab-text);
69
69
  text-decoration: none;
70
70
  background: transparent;
71
71
  border: none;
72
- border-bottom: var(--tab-border-width) solid transparent;
72
+ border-bottom: var(--vd-tab-border-width) solid transparent;
73
73
  cursor: pointer;
74
74
  transition: color 0.15s ease, border-color 0.15s ease, background-color 0.15s ease;
75
75
  white-space: nowrap;
76
76
  }
77
77
 
78
78
  .vd-tab-link:hover {
79
- color: var(--tab-text-hover);
80
- background-color: var(--tab-bg-hover);
79
+ color: var(--vd-tab-text-hover);
80
+ background-color: var(--vd-tab-bg-hover);
81
81
  }
82
82
 
83
83
  .vd-tab-link:focus-visible {
@@ -88,8 +88,8 @@
88
88
  /* Active Tab */
89
89
  .vd-tab-link.is-active,
90
90
  .vd-tab-item.is-active .vd-tab-link {
91
- color: var(--tab-text-active);
92
- border-bottom-color: var(--tab-border-active);
91
+ color: var(--vd-tab-text-active);
92
+ border-bottom-color: var(--vd-tab-border-active);
93
93
  }
94
94
 
95
95
  /* Disabled Tab */
@@ -129,13 +129,13 @@
129
129
  .vd-tabs-boxed .vd-tab-list {
130
130
  background-color: var(--vd-bg-secondary);
131
131
  padding: 0.25rem;
132
- border-radius: var(--btn-border-radius);
132
+ border-radius: var(--vd-btn-border-radius);
133
133
  border-bottom: none;
134
134
  gap: 0.25rem;
135
135
  }
136
136
 
137
137
  .vd-tabs-boxed .vd-tab-link {
138
- border-radius: var(--btn-border-radius);
138
+ border-radius: var(--vd-btn-border-radius);
139
139
  border-bottom: none;
140
140
  }
141
141
 
@@ -147,7 +147,7 @@
147
147
  .vd-tabs-boxed .vd-tab-item.is-active .vd-tab-link {
148
148
  background-color: var(--vd-bg-primary);
149
149
  color: var(--vd-text-primary);
150
- box-shadow: var(--shadow-sm);
150
+ box-shadow: var(--vd-shadow-sm);
151
151
  }
152
152
 
153
153
  [data-theme="dark"] .vd-tabs-boxed .vd-tab-link:hover {
@@ -161,7 +161,7 @@
161
161
  }
162
162
 
163
163
  .vd-tabs-pills .vd-tab-link {
164
- border-radius: var(--btn-border-radius);
164
+ border-radius: var(--vd-btn-border-radius);
165
165
  border-bottom: none;
166
166
  }
167
167
 
@@ -173,8 +173,8 @@
173
173
 
174
174
  /* Tab Variants - Bordered */
175
175
  .vd-tabs-bordered .vd-tab-list {
176
- border: 1px solid var(--tab-border);
177
- border-radius: var(--btn-border-radius) var(--btn-border-radius) 0 0;
176
+ border: 1px solid var(--vd-tab-border);
177
+ border-radius: var(--vd-btn-border-radius) var(--vd-btn-border-radius) 0 0;
178
178
  border-bottom: none;
179
179
  }
180
180
 
@@ -186,22 +186,22 @@
186
186
 
187
187
  .vd-tabs-bordered .vd-tab-link.is-active,
188
188
  .vd-tabs-bordered .vd-tab-item.is-active .vd-tab-link {
189
- border-color: var(--tab-border);
189
+ border-color: var(--vd-tab-border);
190
190
  background-color: var(--vd-bg-primary);
191
191
  border-bottom-color: var(--vd-bg-primary);
192
- border-radius: var(--btn-border-radius) var(--btn-border-radius) 0 0;
192
+ border-radius: var(--vd-btn-border-radius) var(--vd-btn-border-radius) 0 0;
193
193
  }
194
194
 
195
195
  .vd-tabs-bordered .vd-tab-content {
196
- border: 1px solid var(--tab-border);
196
+ border: 1px solid var(--vd-tab-border);
197
197
  border-top: none;
198
- border-radius: 0 0 var(--btn-border-radius) var(--btn-border-radius);
198
+ border-radius: 0 0 var(--vd-btn-border-radius) var(--vd-btn-border-radius);
199
199
  padding: 1rem;
200
200
  }
201
201
 
202
202
  /* Tab Variants - Underline Only */
203
203
  .vd-tabs-underline .vd-tab-list {
204
- border-bottom: 2px solid var(--tab-border);
204
+ border-bottom: 2px solid var(--vd-tab-border);
205
205
  }
206
206
 
207
207
  .vd-tabs-underline .vd-tab-link {
@@ -210,13 +210,13 @@
210
210
 
211
211
  /* Tab Sizes */
212
212
  .vd-tabs-sm .vd-tab-link {
213
- padding: var(--tab-padding-y-sm) var(--tab-padding-x-sm);
214
- font-size: var(--font-size-sm);
213
+ padding: var(--vd-tab-padding-y-sm) var(--vd-tab-padding-x-sm);
214
+ font-size: var(--vd-font-size-sm);
215
215
  }
216
216
 
217
217
  .vd-tabs-lg .vd-tab-link {
218
- padding: var(--tab-padding-y-lg) var(--tab-padding-x-lg);
219
- font-size: var(--font-size-lg);
218
+ padding: var(--vd-tab-padding-y-lg) var(--vd-tab-padding-x-lg);
219
+ font-size: var(--vd-font-size-lg);
220
220
  }
221
221
 
222
222
  /* Full Width Tabs */
@@ -251,7 +251,7 @@
251
251
  .vd-tabs-vertical .vd-tab-list {
252
252
  flex-direction: column;
253
253
  border-bottom: none;
254
- border-right: 1px solid var(--tab-border);
254
+ border-right: 1px solid var(--vd-tab-border);
255
255
  width: auto;
256
256
  flex-shrink: 0;
257
257
  }
@@ -265,14 +265,14 @@
265
265
  box-sizing: border-box;
266
266
  width: 100%;
267
267
  border-bottom: none;
268
- border-right: var(--tab-border-width) solid transparent;
268
+ border-right: var(--vd-tab-border-width) solid transparent;
269
269
  justify-content: flex-start;
270
270
  }
271
271
 
272
272
  .vd-tabs-vertical .vd-tab-link.is-active,
273
273
  .vd-tabs-vertical .vd-tab-item.is-active .vd-tab-link {
274
274
  border-bottom-color: transparent;
275
- border-right-color: var(--tab-border-active);
275
+ border-right-color: var(--vd-tab-border-active);
276
276
  }
277
277
 
278
278
  .vd-tabs-vertical .vd-tab-content {
@@ -297,7 +297,7 @@
297
297
  height: 1.25rem;
298
298
  padding: 0 0.375rem;
299
299
  font-size: 0.75rem;
300
- font-weight: var(--font-weight-semibold);
300
+ font-weight: var(--vd-font-weight-semibold);
301
301
  line-height: 1;
302
302
  background-color: var(--vd-color-gray-200);
303
303
  border-radius: 9999px;