@vanduo-oss/framework 1.3.8 → 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 -41
  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 +28 -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 +61 -35
  48. package/css/core/grid.css +1 -6
  49. package/css/core/helpers.css +11 -11
  50. package/css/core/tokens.css +114 -36
  51. package/css/core/typography.css +15 -13
  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 +935 -294
  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 +7942 -7824
  64. package/dist/vanduo.css.map +1 -1
  65. package/dist/vanduo.esm.js +935 -294
  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 +935 -294
  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 +26 -16
  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 +154 -23
  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 +3 -4
@@ -14,16 +14,16 @@
14
14
  --code-font-size: 0.875rem; /* 14px */
15
15
 
16
16
  /* Code Snippet Colors - Light Mode */
17
- --code-bg: var(--color-gray-50, #f8fafc);
18
- --code-header-bg: var(--color-gray-100, #f1f5f9);
19
- --code-border: var(--border-color, #e2e8f0);
20
- --code-text: var(--text-primary, #1e293b);
21
- --code-text-muted: var(--text-secondary, #64748b);
22
- --code-tab-text: var(--text-secondary, #64748b);
23
- --code-tab-active: var(--color-primary, #3b82f6);
24
- --code-tab-hover-bg: var(--color-gray-200, #e2e8f0);
25
- --code-copy-success: var(--color-success, #22c55e);
26
- --code-line-number: var(--text-tertiary, #94a3b8);
17
+ --code-bg: var(--vd-color-gray-50, #f8fafc);
18
+ --code-header-bg: var(--vd-color-gray-100, #f1f5f9);
19
+ --code-border: var(--vd-border-color, #e2e8f0);
20
+ --code-text: var(--vd-text-primary, #1e293b);
21
+ --code-text-muted: var(--vd-text-secondary, #64748b);
22
+ --code-tab-text: var(--vd-text-secondary, #64748b);
23
+ --code-tab-active: var(--vd-color-primary, #3b82f6);
24
+ --code-tab-hover-bg: var(--vd-color-gray-200, #e2e8f0);
25
+ --code-copy-success: var(--vd-color-success, #22c55e);
26
+ --code-line-number: var(--vd-text-tertiary, #94a3b8);
27
27
  --code-line-highlight: rgba(59, 130, 246, 0.1);
28
28
 
29
29
  /* Syntax Highlighting Colors - Light Mode */
@@ -44,10 +44,10 @@
44
44
 
45
45
  /* Dark Theme Overrides */
46
46
  [data-theme="dark"] {
47
- --code-bg: var(--color-gray-900, #0f172a);
48
- --code-header-bg: var(--color-gray-800, #1e293b);
49
- --code-border: var(--color-gray-700, #334155);
50
- --code-tab-hover-bg: var(--color-gray-700, #334155);
47
+ --code-bg: var(--vd-color-gray-900, #0f172a);
48
+ --code-header-bg: var(--vd-color-gray-800, #1e293b);
49
+ --code-border: var(--vd-color-gray-700, #334155);
50
+ --code-tab-hover-bg: var(--vd-color-gray-700, #334155);
51
51
  --code-line-highlight: rgba(59, 130, 246, 0.15);
52
52
 
53
53
  /* Syntax Highlighting - Dark Mode */
@@ -68,10 +68,10 @@
68
68
 
69
69
  @media (prefers-color-scheme: dark) {
70
70
  :root:not([data-theme]) {
71
- --code-bg: var(--color-gray-900, #0f172a);
72
- --code-header-bg: var(--color-gray-800, #1e293b);
73
- --code-border: var(--color-gray-700, #334155);
74
- --code-tab-hover-bg: var(--color-gray-700, #334155);
71
+ --code-bg: var(--vd-color-gray-900, #0f172a);
72
+ --code-header-bg: var(--vd-color-gray-800, #1e293b);
73
+ --code-border: var(--vd-color-gray-700, #334155);
74
+ --code-tab-hover-bg: var(--vd-color-gray-700, #334155);
75
75
  --code-line-highlight: rgba(59, 130, 246, 0.15);
76
76
 
77
77
  --code-tag: #fb7185;
@@ -5,11 +5,11 @@
5
5
 
6
6
  :root {
7
7
  /* Collapsible Colors */
8
- --collapsible-border-color: var(--border-color);
9
- --collapsible-bg: var(--color-white);
10
- --collapsible-header-bg: var(--bg-secondary);
11
- --collapsible-header-bg-hover: var(--bg-secondary);
12
- --collapsible-header-bg-active: var(--bg-secondary);
8
+ --collapsible-border-color: var(--vd-border-color);
9
+ --collapsible-bg: var(--vd-color-white);
10
+ --collapsible-header-bg: var(--vd-bg-secondary);
11
+ --collapsible-header-bg-hover: var(--vd-bg-secondary);
12
+ --collapsible-header-bg-active: var(--vd-bg-secondary);
13
13
  --collapsible-focus-ring: 0 0 0 2px var(--input-focus-border-color);
14
14
 
15
15
  /* Collapsible Spacing (Fibonacci) */
@@ -24,18 +24,18 @@
24
24
 
25
25
  /* Dark Theme Overrides */
26
26
  [data-theme="dark"] {
27
- --collapsible-bg: var(--bg-secondary);
28
- --collapsible-header-bg: var(--bg-primary);
29
- --collapsible-header-bg-hover: var(--bg-primary);
30
- --collapsible-header-bg-active: var(--bg-primary);
27
+ --collapsible-bg: var(--vd-bg-secondary);
28
+ --collapsible-header-bg: var(--vd-bg-primary);
29
+ --collapsible-header-bg-hover: var(--vd-bg-primary);
30
+ --collapsible-header-bg-active: var(--vd-bg-primary);
31
31
  }
32
32
 
33
33
  @media (prefers-color-scheme: dark) {
34
34
  :root:not([data-theme]) {
35
- --collapsible-bg: var(--bg-secondary);
36
- --collapsible-header-bg: var(--bg-primary);
37
- --collapsible-header-bg-hover: var(--bg-primary);
38
- --collapsible-header-bg-active: var(--bg-primary);
35
+ --collapsible-bg: var(--vd-bg-secondary);
36
+ --collapsible-header-bg: var(--vd-bg-primary);
37
+ --collapsible-header-bg-hover: var(--vd-bg-primary);
38
+ --collapsible-header-bg-active: var(--vd-bg-primary);
39
39
  }
40
40
  }
41
41
 
@@ -75,12 +75,14 @@
75
75
  user-select: none;
76
76
  transition: var(--transition-bg);
77
77
  border: none;
78
+ -webkit-appearance: none;
79
+ appearance: none;
78
80
  width: 100%;
79
81
  text-align: left;
80
82
  font-family: var(--font-family-sans);
81
83
  font-size: var(--font-size-base);
82
84
  font-weight: var(--font-weight-medium);
83
- color: var(--text-primary);
85
+ color: var(--vd-text-primary);
84
86
  }
85
87
 
86
88
  .vd-collapsible-header:hover,
@@ -88,7 +90,9 @@
88
90
  background-color: var(--collapsible-header-bg-hover);
89
91
  }
90
92
 
93
+ .vd-collapsible-header:focus,
91
94
  .vd-collapsible-header:focus-visible,
95
+ .accordion-header:focus,
92
96
  .accordion-header:focus-visible {
93
97
  outline: none;
94
98
  }
@@ -118,15 +122,19 @@
118
122
  font-family: var(--font-family-sans);
119
123
  font-size: var(--font-size-base);
120
124
  font-weight: var(--font-weight-medium);
121
- color: var(--text-primary);
125
+ color: var(--vd-text-primary);
122
126
  text-decoration: none;
123
127
  background: none;
124
128
  border: none;
129
+ -webkit-appearance: none;
130
+ appearance: none;
125
131
  padding: 0;
126
132
  cursor: pointer;
127
133
  }
128
134
 
135
+ .vd-collapsible-trigger:focus,
129
136
  .vd-collapsible-trigger:focus-visible,
137
+ .accordion-trigger:focus,
130
138
  .accordion-trigger:focus-visible {
131
139
  outline: none;
132
140
  }
@@ -148,7 +156,7 @@
148
156
  .accordion-icon::before {
149
157
  content: '▼';
150
158
  font-size: 0.75rem;
151
- color: var(--text-secondary);
159
+ color: var(--vd-text-secondary);
152
160
  transition: transform var(--transition-duration-base) var(--transition-ease);
153
161
  }
154
162
 
@@ -177,20 +185,20 @@
177
185
  /* Collapsible Content */
178
186
  .vd-collapsible-content,
179
187
  .accordion-content {
180
- color: var(--text-primary);
188
+ color: var(--vd-text-primary);
181
189
  line-height: var(--line-height-normal);
182
190
  }
183
191
 
184
192
  /* Collapsible States */
185
193
  .vd-collapsible-item.is-active,
186
194
  .accordion-item.is-active {
187
- border-color: var(--color-primary);
195
+ border-color: var(--vd-color-primary);
188
196
  }
189
197
 
190
198
  .vd-collapsible-item.is-active .vd-collapsible-header,
191
199
  .accordion-item.is-active .accordion-header {
192
- background-color: var(--color-primary-alpha-10);
193
- color: var(--color-primary);
200
+ background-color: var(--vd-color-primary-alpha-10);
201
+ color: var(--vd-color-primary);
194
202
  }
195
203
 
196
204
  /* Collapsible Variants - Bordered */
@@ -5,11 +5,11 @@
5
5
 
6
6
  :root {
7
7
  /* Collection Colors */
8
- --collection-bg: var(--color-white);
9
- --collection-item-bg: var(--color-white);
10
- --collection-item-bg-hover: var(--bg-secondary);
11
- --collection-item-bg-active: var(--color-primary-alpha-10);
12
- --collection-border-color: var(--border-color);
8
+ --collection-bg: var(--vd-color-white);
9
+ --collection-item-bg: var(--vd-color-white);
10
+ --collection-item-bg-hover: var(--vd-bg-secondary);
11
+ --collection-item-bg-active: var(--vd-color-primary-alpha-10);
12
+ --collection-border-color: var(--vd-border-color);
13
13
 
14
14
  /* Collection Spacing (Fibonacci) */
15
15
  --collection-padding-y: 0;
@@ -29,16 +29,16 @@
29
29
 
30
30
  /* Dark Theme Overrides */
31
31
  [data-theme="dark"] {
32
- --collection-bg: var(--bg-secondary);
33
- --collection-item-bg: var(--bg-secondary);
34
- --collection-item-bg-hover: var(--bg-primary);
32
+ --collection-bg: var(--vd-bg-secondary);
33
+ --collection-item-bg: var(--vd-bg-secondary);
34
+ --collection-item-bg-hover: var(--vd-bg-primary);
35
35
  }
36
36
 
37
37
  @media (prefers-color-scheme: dark) {
38
38
  :root:not([data-theme]) {
39
- --collection-bg: var(--bg-secondary);
40
- --collection-item-bg: var(--bg-secondary);
41
- --collection-item-bg-hover: var(--bg-primary);
39
+ --collection-bg: var(--vd-bg-secondary);
40
+ --collection-item-bg: var(--vd-bg-secondary);
41
+ --collection-item-bg-hover: var(--vd-bg-primary);
42
42
  }
43
43
  }
44
44
 
@@ -58,7 +58,7 @@
58
58
  align-items: center;
59
59
  padding: var(--collection-item-padding-y) var(--collection-item-padding-x);
60
60
  margin-bottom: 0;
61
- color: var(--text-primary);
61
+ color: var(--vd-text-primary);
62
62
  text-decoration: none;
63
63
  background-color: var(--collection-item-bg);
64
64
  border-bottom: 1px solid var(--collection-border-color);
@@ -76,7 +76,7 @@
76
76
 
77
77
  .vd-collection-item.active {
78
78
  background-color: var(--collection-item-bg-active);
79
- color: var(--color-primary);
79
+ color: var(--vd-color-primary);
80
80
  font-weight: var(--font-weight-medium);
81
81
  }
82
82
 
@@ -93,7 +93,7 @@
93
93
  height: var(--collection-avatar-size);
94
94
  margin-right: 1rem;
95
95
  border-radius: 50%;
96
- background-color: var(--bg-secondary);
96
+ background-color: var(--vd-bg-secondary);
97
97
  display: flex;
98
98
  align-items: center;
99
99
  justify-content: center;
@@ -108,7 +108,7 @@
108
108
 
109
109
  .vd-collection-avatar-icon {
110
110
  font-size: 1.25rem;
111
- color: var(--text-secondary);
111
+ color: var(--vd-text-secondary);
112
112
  }
113
113
 
114
114
  /* Collection Content */
@@ -122,18 +122,18 @@
122
122
  font-size: var(--font-size-base);
123
123
  font-weight: var(--font-weight-medium);
124
124
  line-height: var(--line-height-normal);
125
- color: var(--text-primary);
125
+ color: var(--vd-text-primary);
126
126
  }
127
127
 
128
128
  .vd-collection-item.active .vd-collection-title {
129
- color: var(--color-primary);
129
+ color: var(--vd-color-primary);
130
130
  }
131
131
 
132
132
  .vd-collection-text {
133
133
  margin: 0;
134
134
  font-size: var(--font-size-sm);
135
135
  line-height: var(--line-height-normal);
136
- color: var(--text-secondary);
136
+ color: var(--vd-text-secondary);
137
137
  }
138
138
 
139
139
  .vd-collection-item-secondary {
@@ -168,10 +168,10 @@
168
168
  margin-bottom: 0;
169
169
  font-size: var(--font-size-sm);
170
170
  font-weight: var(--font-weight-semibold);
171
- color: var(--text-muted);
171
+ color: var(--vd-text-muted);
172
172
  text-transform: uppercase;
173
173
  letter-spacing: 0.05em;
174
- background-color: var(--bg-secondary);
174
+ background-color: var(--vd-bg-secondary);
175
175
  border-bottom: 1px solid var(--collection-border-color);
176
176
  }
177
177
 
@@ -191,7 +191,7 @@
191
191
  }
192
192
 
193
193
  .vd-collection-stripped .vd-collection-item:nth-child(odd) {
194
- background-color: var(--bg-secondary);
194
+ background-color: var(--vd-bg-secondary);
195
195
  }
196
196
 
197
197
  .vd-collection-stripped .vd-collection-item:nth-child(odd):hover {
@@ -6,16 +6,16 @@
6
6
  :root {
7
7
  /* Datepicker Colors */
8
8
  --dp-bg: var(--card-bg, #fff);
9
- --dp-border-color: var(--border-color, #dee2e6);
9
+ --dp-border-color: var(--vd-border-color, #dee2e6);
10
10
  --dp-shadow: 0 0.25rem 0.8125rem rgba(0, 0, 0, 0.12); /* 4px 13px fib */
11
- --dp-header-bg: var(--color-primary, #0d6efd);
11
+ --dp-header-bg: var(--vd-color-primary, #0d6efd);
12
12
  --dp-header-color: #fff;
13
- --dp-day-hover-bg: var(--bg-secondary, #f8f9fa);
14
- --dp-day-selected-bg: var(--color-primary, #0d6efd);
13
+ --dp-day-hover-bg: var(--vd-bg-secondary, #f8f9fa);
14
+ --dp-day-selected-bg: var(--vd-color-primary, #0d6efd);
15
15
  --dp-day-selected-color: #fff;
16
- --dp-day-today-color: var(--color-primary, #0d6efd);
17
- --dp-day-outside-color: var(--text-muted, #6c757d);
18
- --dp-day-disabled-color: var(--text-disabled, #adb5bd);
16
+ --dp-day-today-color: var(--vd-color-primary, #0d6efd);
17
+ --dp-day-outside-color: var(--vd-text-muted, #6c757d);
18
+ --dp-day-disabled-color: var(--vd-text-disabled, #adb5bd);
19
19
 
20
20
  /* Datepicker Spacing (Fibonacci) */
21
21
  --dp-padding: 0.5rem; /* 8px - fib */
@@ -29,16 +29,16 @@
29
29
 
30
30
  [data-theme="dark"] {
31
31
  --dp-bg: var(--card-bg, #2d2d44);
32
- --dp-border-color: var(--border-color, #3d3d5c);
33
- --dp-day-hover-bg: var(--bg-primary, #1a1a2e);
32
+ --dp-border-color: var(--vd-border-color, #3d3d5c);
33
+ --dp-day-hover-bg: var(--vd-bg-primary, #1a1a2e);
34
34
  --dp-shadow: 0 0.25rem 0.8125rem rgba(0, 0, 0, 0.3);
35
35
  }
36
36
 
37
37
  @media (prefers-color-scheme: dark) {
38
38
  :root:not([data-theme]) {
39
39
  --dp-bg: var(--card-bg, #2d2d44);
40
- --dp-border-color: var(--border-color, #3d3d5c);
41
- --dp-day-hover-bg: var(--bg-primary, #1a1a2e);
40
+ --dp-border-color: var(--vd-border-color, #3d3d5c);
41
+ --dp-day-hover-bg: var(--vd-bg-primary, #1a1a2e);
42
42
  --dp-shadow: 0 0.25rem 0.8125rem rgba(0, 0, 0, 0.3);
43
43
  }
44
44
  }
@@ -94,7 +94,7 @@
94
94
  background: transparent;
95
95
  cursor: pointer;
96
96
  font-size: 1rem;
97
- color: var(--text-primary, #212529);
97
+ color: var(--vd-text-primary, #212529);
98
98
  transition: background 0.15s ease;
99
99
  }
100
100
 
@@ -120,7 +120,7 @@
120
120
  text-align: center;
121
121
  font-size: 0.75rem;
122
122
  font-weight: 600;
123
- color: var(--text-muted, #6c757d);
123
+ color: var(--vd-text-muted, #6c757d);
124
124
  padding-bottom: 0.25rem;
125
125
  }
126
126
 
@@ -7,44 +7,44 @@
7
7
  /* Search Input */
8
8
  --doc-search-input-bg: var(--input-bg);
9
9
  --doc-search-input-border: var(--input-border-color);
10
- --doc-search-input-focus-border: var(--color-primary);
10
+ --doc-search-input-focus-border: var(--vd-color-primary);
11
11
  --doc-search-input-radius: var(--input-border-radius);
12
12
  --doc-search-input-padding-y: 0.5rem;
13
13
  --doc-search-input-padding-x: 0.75rem;
14
14
  --doc-search-input-padding-left: 30px;
15
15
 
16
16
  /* Search Results */
17
- --doc-search-results-bg: var(--card-bg, var(--bg-primary));
18
- --doc-search-results-border: var(--border-color);
17
+ --doc-search-results-bg: var(--card-bg, var(--vd-bg-primary));
18
+ --doc-search-results-border: var(--vd-border-color);
19
19
  --doc-search-results-shadow: var(--shadow-lg);
20
20
  --doc-search-results-max-height: 400px;
21
21
  --doc-search-results-radius: var(--input-border-radius);
22
22
 
23
23
  /* Result Items */
24
24
  --doc-search-result-padding: 0.75rem 1rem;
25
- --doc-search-result-hover-bg: var(--color-primary-alpha-10, rgba(34, 184, 207, 0.1));
26
- --doc-search-result-active-bg: var(--color-primary-alpha-20, rgba(34, 184, 207, 0.2));
25
+ --doc-search-result-hover-bg: var(--vd-color-primary-alpha-10, rgba(34, 184, 207, 0.1));
26
+ --doc-search-result-active-bg: var(--vd-color-primary-alpha-20, rgba(34, 184, 207, 0.2));
27
27
 
28
28
  /* Highlight */
29
- --doc-search-highlight-bg: var(--color-warning-alpha-30, rgba(250, 176, 5, 0.3));
29
+ --doc-search-highlight-bg: var(--vd-color-warning-alpha-30, rgba(250, 176, 5, 0.3));
30
30
  --doc-search-highlight-color: inherit;
31
31
 
32
32
  /* Shortcut Badge */
33
- --doc-search-shortcut-bg: var(--bg-secondary);
34
- --doc-search-shortcut-border: var(--border-color);
35
- --doc-search-shortcut-color: var(--text-muted);
33
+ --doc-search-shortcut-bg: var(--vd-bg-secondary);
34
+ --doc-search-shortcut-border: var(--vd-border-color);
35
+ --doc-search-shortcut-color: var(--vd-text-muted);
36
36
  }
37
37
 
38
38
  /* Dark Theme Overrides */
39
39
  [data-theme="dark"] {
40
- --doc-search-results-bg: var(--bg-secondary);
41
- --doc-search-shortcut-bg: var(--bg-tertiary);
40
+ --doc-search-results-bg: var(--vd-bg-secondary);
41
+ --doc-search-shortcut-bg: var(--vd-bg-tertiary);
42
42
  }
43
43
 
44
44
  @media (prefers-color-scheme: dark) {
45
45
  :root:not([data-theme]) {
46
- --doc-search-results-bg: var(--bg-secondary);
47
- --doc-search-shortcut-bg: var(--bg-tertiary);
46
+ --doc-search-results-bg: var(--vd-bg-secondary);
47
+ --doc-search-shortcut-bg: var(--vd-bg-tertiary);
48
48
  }
49
49
  }
50
50
 
@@ -73,7 +73,7 @@
73
73
  left: 0.625rem;
74
74
  top: 50%;
75
75
  transform: translateY(-50%);
76
- color: var(--text-muted);
76
+ color: var(--vd-text-muted);
77
77
  font-size: 1.125rem;
78
78
  pointer-events: none;
79
79
  z-index: 1;
@@ -82,7 +82,7 @@
82
82
 
83
83
  .vd-doc-search-input:focus ~ .vd-doc-search-icon,
84
84
  .vd-doc-search-input-wrapper:focus-within .vd-doc-search-icon {
85
- color: var(--color-primary);
85
+ color: var(--vd-color-primary);
86
86
  }
87
87
 
88
88
  /* Search Input - input.vd-doc-search-input matches forms.css specificity so padding overrides base input[type="search"] */
@@ -93,7 +93,7 @@ input.vd-doc-search-input {
93
93
  font-family: var(--font-family-sans);
94
94
  font-size: var(--font-size-sm);
95
95
  line-height: var(--line-height-normal);
96
- color: var(--text-primary);
96
+ color: var(--vd-text-primary);
97
97
  background-color: var(--doc-search-input-bg);
98
98
  border: 1px solid var(--doc-search-input-border);
99
99
  border-radius: var(--doc-search-input-radius);
@@ -102,14 +102,14 @@ input.vd-doc-search-input {
102
102
  }
103
103
 
104
104
  .vd-doc-search-input::placeholder {
105
- color: var(--text-muted);
105
+ color: var(--vd-text-muted);
106
106
  opacity: 1;
107
107
  }
108
108
 
109
109
  .vd-doc-search-input:focus {
110
110
  outline: none;
111
111
  border-color: var(--doc-search-input-focus-border);
112
- box-shadow: 0 0 0 3px var(--color-primary-alpha-20, rgba(34, 184, 207, 0.2));
112
+ box-shadow: 0 0 0 3px var(--vd-color-primary-alpha-20, rgba(34, 184, 207, 0.2));
113
113
  }
114
114
 
115
115
  /* Clear the default search cancel button */
@@ -163,6 +163,7 @@ input.vd-doc-search-input {
163
163
  max-height: var(--doc-search-results-max-height);
164
164
  overflow-y: auto;
165
165
  overflow-x: hidden;
166
+ animation: doc-search-fade-in 0.15s ease;
166
167
  }
167
168
 
168
169
  .vd-doc-search-results.is-open {
@@ -209,9 +210,9 @@ input.vd-doc-search-input {
209
210
  justify-content: center;
210
211
  width: 2rem;
211
212
  height: 2rem;
212
- background-color: var(--color-primary-alpha-10, rgba(34, 184, 207, 0.1));
213
+ background-color: var(--vd-color-primary-alpha-10, rgba(34, 184, 207, 0.1));
213
214
  border-radius: 6px;
214
- color: var(--color-primary);
215
+ color: var(--vd-color-primary);
215
216
  font-size: 1rem;
216
217
  }
217
218
 
@@ -224,20 +225,20 @@ input.vd-doc-search-input {
224
225
  .vd-doc-search-result-title {
225
226
  font-size: var(--font-size-sm);
226
227
  font-weight: var(--font-weight-medium);
227
- color: var(--text-primary);
228
+ color: var(--vd-text-primary);
228
229
  line-height: 1.4;
229
230
  margin-bottom: 0.125rem;
230
231
  }
231
232
 
232
233
  .vd-doc-search-result-category {
233
234
  font-size: var(--font-size-xs);
234
- color: var(--text-muted);
235
+ color: var(--vd-text-muted);
235
236
  margin-bottom: 0.25rem;
236
237
  }
237
238
 
238
239
  .vd-doc-search-result-excerpt {
239
240
  font-size: var(--font-size-xs);
240
- color: var(--text-secondary);
241
+ color: var(--vd-text-secondary);
241
242
  line-height: 1.4;
242
243
  display: -webkit-box;
243
244
  -webkit-line-clamp: 2;
@@ -261,7 +262,7 @@ input.vd-doc-search-input {
261
262
  .vd-doc-search-empty {
262
263
  padding: 2rem 1rem;
263
264
  text-align: center;
264
- color: var(--text-muted);
265
+ color: var(--vd-text-muted);
265
266
  }
266
267
 
267
268
  .vd-doc-search-empty-icon {
@@ -273,13 +274,13 @@ input.vd-doc-search-input {
273
274
  .vd-doc-search-empty-title {
274
275
  font-size: var(--font-size-sm);
275
276
  font-weight: var(--font-weight-medium);
276
- color: var(--text-primary);
277
+ color: var(--vd-text-primary);
277
278
  margin-bottom: 0.25rem;
278
279
  }
279
280
 
280
281
  .vd-doc-search-empty-text {
281
282
  font-size: var(--font-size-xs);
282
- color: var(--text-muted);
283
+ color: var(--vd-text-muted);
283
284
  }
284
285
 
285
286
  /* ============================================
@@ -289,15 +290,15 @@ input.vd-doc-search-input {
289
290
  .vd-doc-search-loading {
290
291
  padding: 1.5rem 1rem;
291
292
  text-align: center;
292
- color: var(--text-muted);
293
+ color: var(--vd-text-muted);
293
294
  }
294
295
 
295
296
  .vd-doc-search-loading-spinner {
296
297
  display: inline-block;
297
298
  width: 1.5rem;
298
299
  height: 1.5rem;
299
- border: 2px solid var(--border-color);
300
- border-top-color: var(--color-primary);
300
+ border: 2px solid var(--vd-border-color);
301
+ border-top-color: var(--vd-color-primary);
301
302
  border-radius: 50%;
302
303
  animation: doc-search-spin 0.6s linear infinite;
303
304
  }
@@ -318,9 +319,9 @@ input.vd-doc-search-input {
318
319
  justify-content: center;
319
320
  gap: 1rem;
320
321
  padding: 0.5rem 1rem;
321
- border-top: 1px solid var(--border-color);
322
+ border-top: 1px solid var(--vd-border-color);
322
323
  font-size: var(--font-size-xs);
323
- color: var(--text-muted);
324
+ color: var(--vd-text-muted);
324
325
  }
325
326
 
326
327
  .vd-doc-search-footer kbd {
@@ -349,33 +350,33 @@ input.vd-doc-search-input {
349
350
  ============================================ */
350
351
 
351
352
  .vd-doc-search-result[data-category="getting-started"] .vd-doc-search-result-icon {
352
- background-color: var(--color-success-alpha-10, rgba(64, 192, 87, 0.1));
353
- color: var(--color-success);
353
+ background-color: var(--vd-color-success-alpha-10, rgba(64, 192, 87, 0.1));
354
+ color: var(--vd-color-success);
354
355
  }
355
356
 
356
357
  .vd-doc-search-result[data-category="core"] .vd-doc-search-result-icon {
357
- background-color: var(--color-info-alpha-10, rgba(34, 139, 230, 0.1));
358
- color: var(--color-info);
358
+ background-color: var(--vd-color-info-alpha-10, rgba(34, 139, 230, 0.1));
359
+ color: var(--vd-color-info);
359
360
  }
360
361
 
361
362
  .vd-doc-search-result[data-category="components"] .vd-doc-search-result-icon {
362
- background-color: var(--color-primary-alpha-10, rgba(34, 184, 207, 0.1));
363
- color: var(--color-primary);
363
+ background-color: var(--vd-color-primary-alpha-10, rgba(34, 184, 207, 0.1));
364
+ color: var(--vd-color-primary);
364
365
  }
365
366
 
366
367
  .vd-doc-search-result[data-category="interactive"] .vd-doc-search-result-icon {
367
- background-color: var(--color-warning-alpha-10, rgba(250, 176, 5, 0.1));
368
- color: var(--color-warning);
368
+ background-color: var(--vd-color-warning-alpha-10, rgba(250, 176, 5, 0.1));
369
+ color: var(--vd-color-warning);
369
370
  }
370
371
 
371
372
  .vd-doc-search-result[data-category="data-display"] .vd-doc-search-result-icon {
372
- background-color: var(--color-secondary-alpha-10, rgba(32, 201, 151, 0.1));
373
- color: var(--color-secondary);
373
+ background-color: var(--vd-color-secondary-alpha-10, rgba(32, 201, 151, 0.1));
374
+ color: var(--vd-color-secondary);
374
375
  }
375
376
 
376
377
  .vd-doc-search-result[data-category="feedback"] .vd-doc-search-result-icon {
377
- background-color: var(--color-error-alpha-10, rgba(250, 82, 82, 0.1));
378
- color: var(--color-error);
378
+ background-color: var(--vd-color-error-alpha-10, rgba(250, 82, 82, 0.1));
379
+ color: var(--vd-color-error);
379
380
  }
380
381
 
381
382
  /* ============================================
@@ -387,7 +388,7 @@ input.vd-doc-search-input {
387
388
  position: sticky;
388
389
  top: 70px;
389
390
  z-index: 2;
390
- background: var(--bg-primary);
391
+ background: var(--vd-bg-primary);
391
392
  padding-top: 0.5rem;
392
393
  padding-bottom: 0.5rem;
393
394
  }
@@ -427,20 +428,12 @@ input.vd-doc-search-input {
427
428
  position: sticky;
428
429
  top: 70px;
429
430
  z-index: 2;
430
- background: var(--bg-primary);
431
+ background: var(--vd-bg-primary);
431
432
  padding-top: 0.5rem;
432
433
  padding-bottom: 0.5rem;
433
434
  }
434
435
  }
435
436
 
436
- /* ============================================
437
- Animations
438
- ============================================ */
439
-
440
- .vd-doc-search-results {
441
- animation: doc-search-fade-in 0.15s ease;
442
- }
443
-
444
437
  @keyframes doc-search-fade-in {
445
438
  from {
446
439
  opacity: 0;
@@ -15,24 +15,24 @@
15
15
  align-items: center;
16
16
  gap: 0.4rem;
17
17
  padding: 0.6rem 1rem;
18
- border: 1px solid var(--border-color);
18
+ border: 1px solid var(--vd-border-color);
19
19
  border-radius: var(--btn-border-radius);
20
- background: var(--bg-secondary);
21
- color: var(--text-primary);
20
+ background: var(--vd-bg-secondary);
21
+ color: var(--vd-text-primary);
22
22
  text-decoration: none;
23
23
  font-weight: 500;
24
24
  transition: all 0.2s ease;
25
25
  }
26
26
 
27
27
  .doc-tab:hover {
28
- border-color: var(--color-primary);
29
- color: var(--color-primary);
30
- background: var(--color-primary-alpha-08);
28
+ border-color: var(--vd-color-primary);
29
+ color: var(--vd-color-primary);
30
+ background: var(--vd-color-primary-alpha-08);
31
31
  }
32
32
 
33
33
  .doc-tab.active {
34
- border-color: var(--color-primary);
35
- color: var(--text-on-primary);
36
- background: var(--color-primary);
37
- box-shadow: 0 0 0 1px var(--color-primary-alpha-20);
34
+ border-color: var(--vd-color-primary);
35
+ color: var(--vd-text-on-primary);
36
+ background: var(--vd-color-primary);
37
+ box-shadow: 0 0 0 1px var(--vd-color-primary-alpha-20);
38
38
  }