@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
package/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # Vanduo Framework v1.3.8
1
+ # Vanduo Framework v1.4.0
2
2
 
3
3
  <p align="center">
4
4
  <img src="vanduo-banner.svg" alt="Vanduo Framework Banner" width="100%">
@@ -10,41 +10,43 @@
10
10
  <a href="https://github.com/vanduo-oss/framework/blob/main/LICENSE"><img src="https://img.shields.io/github/license/vanduo-oss/framework?style=flat-square&color=64748b" alt="License"></a>
11
11
  </p>
12
12
 
13
- **Essential just like water is.**
14
-
15
- Vanduo is a lightweight, zero-dependency UI framework built with pure HTML, CSS, and JavaScript. It ships 47+ components, responsive utilities, dark mode support, and a flexible theming system.
13
+ Vanduo is a zero-dependency UI framework built with HTML, CSS, and vanilla JavaScript. It ships a full component bundle, scoped runtime initialization, a canonical `--vd-*` token API, and compatibility aliases for existing `1.3.x` consumers.
16
14
 
17
15
  [Browse Docs](https://vanduo.dev/#docs)
18
16
 
19
17
  ## Highlights
20
18
 
21
- - Pure CSS/JS with no runtime dependencies
22
- - Modular architecture with optional per-component imports
23
- - 47+ components, including Expanding Cards and animated Timeline controls in v1.3.8
24
- - Niche canvas hex-grid support is distributed as `@vanduo-oss/hex-grid`
25
- - Built-in dark/light/system theme switching
26
- - Runtime Theme Customizer for color, font, and radius tokens
27
- - Accessibility-focused components and utilities
19
+ - Zero runtime dependencies
20
+ - 47+ components across layout, navigation, overlays, search, and effects
21
+ - Scoped runtime APIs for dynamic DOM work
22
+ - Canonical semantic token API under `--vd-*`
23
+ - Built-in dark, light, and system theming
24
+ - Theme customizer with color, font, and radius controls
25
+ - Playwright-based browser coverage across Chromium, Firefox, and WebKit
28
26
 
29
27
  ## Quick Start
30
28
 
31
- ### CDN (recommended)
29
+ ### CDN
32
30
 
33
31
  ```html
34
- <link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/vanduo-oss/framework@v1.3.8/dist/vanduo.min.css">
35
- <script src="https://cdn.jsdelivr.net/gh/vanduo-oss/framework@v1.3.8/dist/vanduo.min.js"></script>
36
- <script>Vanduo.init();</script>
32
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/vanduo-oss/framework@v1.4.0/dist/vanduo.min.css">
33
+ <script src="https://cdn.jsdelivr.net/gh/vanduo-oss/framework@v1.4.0/dist/vanduo.min.js"></script>
34
+ <script>
35
+ Vanduo.init();
36
+ </script>
37
37
  ```
38
38
 
39
- ### Local dist files
39
+ ### Local Dist Files
40
40
 
41
41
  ```html
42
42
  <link rel="stylesheet" href="dist/vanduo.min.css">
43
43
  <script src="dist/vanduo.min.js"></script>
44
- <script>Vanduo.init();</script>
44
+ <script>
45
+ Vanduo.init();
46
+ </script>
45
47
  ```
46
48
 
47
- ### Package install (bundlers)
49
+ ### Package Install
48
50
 
49
51
  ```bash
50
52
  pnpm add @vanduo-oss/framework
@@ -57,39 +59,83 @@ import { Vanduo } from '@vanduo-oss/framework';
57
59
  Vanduo.init();
58
60
  ```
59
61
 
60
- ## Docs and Resources
62
+ ## Runtime API
63
+
64
+ ```js
65
+ Vanduo.init(root);
66
+ Vanduo.initComponents(root);
67
+ Vanduo.reinit('lazyLoad', root);
68
+ Vanduo.destroy(root);
69
+ Vanduo.destroyAll();
70
+ Vanduo.getComponent('docSearch');
71
+ ```
72
+
73
+ - Omit `root` to target the full document.
74
+ - Pass an `Element` to initialize or destroy only a subtree.
75
+ - Canonical component registry names use `lowerCamelCase`.
76
+ - `LazyLoad` remains available as a compatibility alias for `lazyLoad` in `1.4.x`.
61
77
 
62
- - Website: [vanduo.dev](https://vanduo.dev)
63
- - Docs: [vanduo.dev/#docs](https://vanduo.dev/#docs)
64
- - npm: [@vanduo-oss/framework](https://www.npmjs.com/package/@vanduo-oss/framework)
65
- - Releases: [GitHub Releases](https://github.com/vanduo-oss/framework/releases)
66
- - LLM reference: [`llms.txt`](llms.txt)
78
+ ## Token API
79
+
80
+ Vanduo `1.4.0` treats `--vd-*` as the canonical semantic API:
81
+
82
+ - Colors: `--vd-color-*`
83
+ - Backgrounds: `--vd-bg-*`
84
+ - Text: `--vd-text-*`
85
+ - Borders: `--vd-border-*`
86
+ - Shadows: `--vd-shadow-*`
87
+
88
+ Legacy semantic aliases like `--color-*`, `--bg-*`, and `--text-*` are still supported throughout the `1.4.x` line.
89
+
90
+ ```css
91
+ .cta {
92
+ color: var(--vd-text-inverse);
93
+ background: var(--vd-color-primary);
94
+ border-color: var(--vd-border-color);
95
+ }
96
+ ```
97
+
98
+ More detail lives in [TOKENS.md](TOKENS.md).
99
+
100
+ ## CSS Bundle Notes
101
+
102
+ - `css/vanduo.css` remains the main framework entrypoint in `1.4.0`.
103
+ - The main bundle still includes framework-wide form defaults for native inputs and textareas.
104
+ - New component styling should prefer `.vd-*` hooks over new raw element selectors.
67
105
 
68
106
  ## Project Structure
69
107
 
70
108
  ```text
71
- vanduo-framework/
72
- ├── dist/ # Production bundles
73
- ├── css/ # Core, components, utilities, effects
74
- ├── js/ # Framework runtime and components
75
- ├── fonts/ # Bundled web fonts
76
- ├── icons/ # Phosphor icons bundle
77
- └── tests/ # Playwright + linting
109
+ framework/
110
+ ├── css/ # Foundation, utilities, effects, components
111
+ ├── js/ # Runtime, lifecycle, components
112
+ ├── dist/ # Built artifacts
113
+ ├── tests/ # Playwright fixtures and specs
114
+ ├── scripts/ # Build, verification, and inventory scripts
115
+ └── docs/*.md # Release and architecture notes
78
116
  ```
79
117
 
80
- ## Browser Support
118
+ ## Development
81
119
 
82
- - Chrome (last 2 versions)
83
- - Firefox (last 2 versions)
84
- - Safari (last 2 versions)
85
- - Edge (last 2 versions)
120
+ ```bash
121
+ corepack enable
122
+ pnpm install
123
+ pnpm run lint
124
+ pnpm run build
125
+ pnpm run check:versions
126
+ pnpm test
127
+ pnpm run stats:css
128
+ ```
129
+
130
+ ## Release Notes
131
+
132
+ - Architecture notes: [ARCHITECTURE.md](ARCHITECTURE.md)
133
+ - Token model: [TOKENS.md](TOKENS.md)
134
+ - `1.4.0` migration notes: [changes-v140.md](changes-v140.md)
135
+ - QA strategy: [QA-Automation-Strategy.md](QA-Automation-Strategy.md)
136
+ - Contributor workflow: [CONTRIBUTING.md](CONTRIBUTING.md)
86
137
 
87
138
  ## License
88
139
 
89
140
  MIT - see [LICENSE](LICENSE).
90
141
  Third-party notices are listed in [THIRD-PARTY-LICENSES](THIRD-PARTY-LICENSES).
91
-
92
- ## Credits
93
-
94
- - [Open Color](https://yeun.github.io/open-color/) (MIT)
95
- - [Phosphor Icons](https://phosphoricons.com/) (MIT)
@@ -49,5 +49,5 @@
49
49
 
50
50
  .vd-affix-bordered.is-stuck {
51
51
  box-shadow: none;
52
- border-bottom: 1px solid var(--border-color, #dee2e6);
52
+ border-bottom: 1px solid var(--vd-border-color, #dee2e6);
53
53
  }
@@ -11,43 +11,43 @@
11
11
  --alert-border-width: 1px;
12
12
 
13
13
  /* Alert Colors */
14
- --alert-primary-bg: var(--color-primary-alpha-10);
15
- --alert-primary-border: var(--color-primary);
16
- --alert-primary-text: var(--color-primary-dark);
14
+ --alert-primary-bg: var(--vd-color-primary-alpha-10);
15
+ --alert-primary-border: var(--vd-color-primary);
16
+ --alert-primary-text: var(--vd-color-primary-dark);
17
17
 
18
- --alert-success-bg: var(--color-success-alpha-10);
19
- --alert-success-border: var(--color-success);
20
- --alert-success-text: var(--color-success-dark);
18
+ --alert-success-bg: var(--vd-color-success-alpha-10);
19
+ --alert-success-border: var(--vd-color-success);
20
+ --alert-success-text: var(--vd-color-success-dark);
21
21
 
22
- --alert-warning-bg: var(--color-warning-alpha-10);
23
- --alert-warning-border: var(--color-warning);
24
- --alert-warning-text: var(--color-warning-dark);
22
+ --alert-warning-bg: var(--vd-color-warning-alpha-10);
23
+ --alert-warning-border: var(--vd-color-warning);
24
+ --alert-warning-text: var(--vd-color-warning-dark);
25
25
 
26
- --alert-error-bg: var(--color-error-alpha-10);
27
- --alert-error-border: var(--color-error);
28
- --alert-error-text: var(--color-error-dark);
26
+ --alert-error-bg: var(--vd-color-error-alpha-10);
27
+ --alert-error-border: var(--vd-color-error);
28
+ --alert-error-text: var(--vd-color-error-dark);
29
29
 
30
- --alert-info-bg: var(--color-info-alpha-10);
31
- --alert-info-border: var(--color-info);
32
- --alert-info-text: var(--color-info-dark);
30
+ --alert-info-bg: var(--vd-color-info-alpha-10);
31
+ --alert-info-border: var(--vd-color-info);
32
+ --alert-info-text: var(--vd-color-info-dark);
33
33
  }
34
34
 
35
35
  /* Dark Theme Overrides */
36
36
  [data-theme="dark"] {
37
- --alert-primary-text: var(--color-primary-light);
38
- --alert-success-text: var(--color-success-light);
39
- --alert-warning-text: var(--color-warning-light);
40
- --alert-error-text: var(--color-error-light);
41
- --alert-info-text: var(--color-info-light);
37
+ --alert-primary-text: var(--vd-color-primary-light);
38
+ --alert-success-text: var(--vd-color-success-light);
39
+ --alert-warning-text: var(--vd-color-warning-light);
40
+ --alert-error-text: var(--vd-color-error-light);
41
+ --alert-info-text: var(--vd-color-info-light);
42
42
  }
43
43
 
44
44
  @media (prefers-color-scheme: dark) {
45
45
  :root:not([data-theme]) {
46
- --alert-primary-text: var(--color-primary-light);
47
- --alert-success-text: var(--color-success-light);
48
- --alert-warning-text: var(--color-warning-light);
49
- --alert-error-text: var(--color-error-light);
50
- --alert-info-text: var(--color-info-light);
46
+ --alert-primary-text: var(--vd-color-primary-light);
47
+ --alert-success-text: var(--vd-color-success-light);
48
+ --alert-warning-text: var(--vd-color-warning-light);
49
+ --alert-error-text: var(--vd-color-error-light);
50
+ --alert-info-text: var(--vd-color-info-light);
51
51
  }
52
52
  }
53
53
 
@@ -164,34 +164,34 @@
164
164
 
165
165
  /* Solid Variants (filled background) */
166
166
  .vd-alert-solid.vd-alert-primary {
167
- background-color: var(--color-primary);
168
- border-color: var(--color-primary);
169
- color: var(--color-white);
167
+ background-color: var(--vd-color-primary);
168
+ border-color: var(--vd-color-primary);
169
+ color: var(--vd-color-white);
170
170
  }
171
171
 
172
172
  .vd-alert-solid.vd-alert-success {
173
- background-color: var(--color-success);
174
- border-color: var(--color-success);
175
- color: var(--color-white);
173
+ background-color: var(--vd-color-success);
174
+ border-color: var(--vd-color-success);
175
+ color: var(--vd-color-white);
176
176
  }
177
177
 
178
178
  .vd-alert-solid.vd-alert-warning {
179
- background-color: var(--color-warning);
180
- border-color: var(--color-warning);
181
- color: var(--color-gray-900);
179
+ background-color: var(--vd-color-warning);
180
+ border-color: var(--vd-color-warning);
181
+ color: var(--vd-color-gray-900);
182
182
  }
183
183
 
184
184
  .vd-alert-solid.vd-alert-error,
185
185
  .vd-alert-solid.vd-alert-danger {
186
- background-color: var(--color-error);
187
- border-color: var(--color-error);
188
- color: var(--color-white);
186
+ background-color: var(--vd-color-error);
187
+ border-color: var(--vd-color-error);
188
+ color: var(--vd-color-white);
189
189
  }
190
190
 
191
191
  .vd-alert-solid.vd-alert-info {
192
- background-color: var(--color-info);
193
- border-color: var(--color-info);
194
- color: var(--color-white);
192
+ background-color: var(--vd-color-info);
193
+ border-color: var(--vd-color-info);
194
+ color: var(--vd-color-white);
195
195
  }
196
196
 
197
197
  /* Outline Variants */
@@ -14,27 +14,27 @@
14
14
  --avatar-size-2xl: 14.5625rem;/* 233px - fib */
15
15
 
16
16
  /* Avatar Colors */
17
- --avatar-bg: var(--color-gray-300);
18
- --avatar-text: var(--color-gray-700);
19
- --avatar-border: var(--color-white);
20
- --avatar-status-online: var(--color-success);
21
- --avatar-status-offline: var(--color-gray-400);
22
- --avatar-status-busy: var(--color-error);
23
- --avatar-status-away: var(--color-warning);
17
+ --avatar-bg: var(--vd-color-gray-300);
18
+ --avatar-text: var(--vd-color-gray-700);
19
+ --avatar-border: var(--vd-color-white);
20
+ --avatar-status-online: var(--vd-color-success);
21
+ --avatar-status-offline: var(--vd-color-gray-400);
22
+ --avatar-status-busy: var(--vd-color-error);
23
+ --avatar-status-away: var(--vd-color-warning);
24
24
  }
25
25
 
26
26
  /* Dark Theme Overrides */
27
27
  [data-theme="dark"] {
28
- --avatar-bg: var(--color-gray-600);
29
- --avatar-text: var(--color-gray-200);
30
- --avatar-border: var(--color-gray-800);
28
+ --avatar-bg: var(--vd-color-gray-600);
29
+ --avatar-text: var(--vd-color-gray-200);
30
+ --avatar-border: var(--vd-color-gray-800);
31
31
  }
32
32
 
33
33
  @media (prefers-color-scheme: dark) {
34
34
  :root:not([data-theme]) {
35
- --avatar-bg: var(--color-gray-600);
36
- --avatar-text: var(--color-gray-200);
37
- --avatar-border: var(--color-gray-800);
35
+ --avatar-bg: var(--vd-color-gray-600);
36
+ --avatar-text: var(--vd-color-gray-200);
37
+ --avatar-border: var(--vd-color-gray-800);
38
38
  }
39
39
  }
40
40
 
@@ -161,19 +161,19 @@
161
161
 
162
162
  /* Avatar with Ring/Border */
163
163
  .vd-avatar-ring {
164
- box-shadow: 0 0 0 3px var(--avatar-border), 0 0 0 5px var(--color-primary);
164
+ box-shadow: 0 0 0 3px var(--avatar-border), 0 0 0 5px var(--vd-color-primary);
165
165
  }
166
166
 
167
167
  .vd-avatar-ring-success {
168
- box-shadow: 0 0 0 3px var(--avatar-border), 0 0 0 5px var(--color-success);
168
+ box-shadow: 0 0 0 3px var(--avatar-border), 0 0 0 5px var(--vd-color-success);
169
169
  }
170
170
 
171
171
  .vd-avatar-ring-warning {
172
- box-shadow: 0 0 0 3px var(--avatar-border), 0 0 0 5px var(--color-warning);
172
+ box-shadow: 0 0 0 3px var(--avatar-border), 0 0 0 5px var(--vd-color-warning);
173
173
  }
174
174
 
175
175
  .vd-avatar-ring-error {
176
- box-shadow: 0 0 0 3px var(--avatar-border), 0 0 0 5px var(--color-error);
176
+ box-shadow: 0 0 0 3px var(--avatar-border), 0 0 0 5px var(--vd-color-error);
177
177
  }
178
178
 
179
179
  /* Avatar Group (stacked avatars) */
@@ -212,8 +212,8 @@
212
212
  width: var(--avatar-size);
213
213
  height: var(--avatar-size);
214
214
  border-radius: 50%;
215
- background-color: var(--color-gray-200);
216
- color: var(--text-primary);
215
+ background-color: var(--vd-color-gray-200);
216
+ color: var(--vd-text-primary);
217
217
  font-size: var(--font-size-sm);
218
218
  font-weight: var(--font-weight-medium);
219
219
  border: 2px solid var(--avatar-border);
@@ -221,38 +221,38 @@
221
221
  }
222
222
 
223
223
  [data-theme="dark"] .vd-avatar-group-count {
224
- background-color: var(--color-gray-700);
224
+ background-color: var(--vd-color-gray-700);
225
225
  }
226
226
 
227
227
  /* Color Variants */
228
228
  .vd-avatar-primary {
229
- background-color: var(--color-primary);
230
- color: var(--color-white);
229
+ background-color: var(--vd-color-primary);
230
+ color: var(--vd-color-white);
231
231
  }
232
232
 
233
233
  .vd-avatar-secondary {
234
- background-color: var(--color-secondary);
235
- color: var(--color-white);
234
+ background-color: var(--vd-color-secondary);
235
+ color: var(--vd-color-white);
236
236
  }
237
237
 
238
238
  .vd-avatar-success {
239
- background-color: var(--color-success);
240
- color: var(--color-white);
239
+ background-color: var(--vd-color-success);
240
+ color: var(--vd-color-white);
241
241
  }
242
242
 
243
243
  .vd-avatar-warning {
244
- background-color: var(--color-warning);
245
- color: var(--color-gray-900);
244
+ background-color: var(--vd-color-warning);
245
+ color: var(--vd-color-gray-900);
246
246
  }
247
247
 
248
248
  .vd-avatar-error {
249
- background-color: var(--color-error);
250
- color: var(--color-white);
249
+ background-color: var(--vd-color-error);
250
+ color: var(--vd-color-white);
251
251
  }
252
252
 
253
253
  .vd-avatar-info {
254
- background-color: var(--color-info);
255
- color: var(--color-white);
254
+ background-color: var(--vd-color-info);
255
+ color: var(--vd-color-white);
256
256
  }
257
257
 
258
258
  /* Clickable Avatar */
@@ -269,7 +269,7 @@ button.vd-avatar:hover {
269
269
 
270
270
  a.vd-avatar:focus-visible,
271
271
  button.vd-avatar:focus-visible {
272
- outline: 2px solid var(--color-primary);
272
+ outline: 2px solid var(--vd-color-primary);
273
273
  outline-offset: 2px;
274
274
  }
275
275
 
@@ -37,24 +37,24 @@
37
37
 
38
38
  /* Dark Theme - Light badge needs different colors */
39
39
  [data-theme="dark"] .vd-badge-light {
40
- background-color: var(--color-gray-700);
41
- color: var(--color-gray-100);
40
+ background-color: var(--vd-color-gray-700);
41
+ color: var(--vd-color-gray-100);
42
42
  }
43
43
 
44
44
  [data-theme="dark"] .vd-badge-outlined.vd-badge-light {
45
- color: var(--color-gray-300);
46
- border-color: var(--color-gray-500);
45
+ color: var(--vd-color-gray-300);
46
+ border-color: var(--vd-color-gray-500);
47
47
  }
48
48
 
49
49
  @media (prefers-color-scheme: dark) {
50
50
  :root:not([data-theme]) .vd-badge-light {
51
- background-color: var(--color-gray-700);
52
- color: var(--color-gray-100);
51
+ background-color: var(--vd-color-gray-700);
52
+ color: var(--vd-color-gray-100);
53
53
  }
54
54
 
55
55
  :root:not([data-theme]) .vd-badge-outlined.vd-badge-light {
56
- color: var(--color-gray-300);
57
- border-color: var(--color-gray-500);
56
+ color: var(--vd-color-gray-300);
57
+ border-color: var(--vd-color-gray-500);
58
58
  }
59
59
  }
60
60
 
@@ -65,53 +65,53 @@
65
65
  font-size: var(--badge-font-size);
66
66
  font-weight: var(--badge-font-weight);
67
67
  line-height: var(--badge-line-height);
68
- color: var(--color-white);
68
+ color: var(--vd-color-white);
69
69
  text-align: center;
70
70
  white-space: nowrap;
71
71
  vertical-align: baseline;
72
72
  border-radius: var(--badge-border-radius);
73
- background-color: var(--color-secondary);
73
+ background-color: var(--vd-color-secondary);
74
74
  }
75
75
 
76
76
  /* Badge Variants */
77
77
  .vd-badge-primary {
78
- background-color: var(--color-primary);
79
- color: var(--color-white);
78
+ background-color: var(--vd-color-primary);
79
+ color: var(--vd-color-white);
80
80
  }
81
81
 
82
82
  .vd-badge-secondary {
83
- background-color: var(--color-secondary);
84
- color: var(--color-white);
83
+ background-color: var(--vd-color-secondary);
84
+ color: var(--vd-color-white);
85
85
  }
86
86
 
87
87
  .vd-badge-success {
88
- background-color: var(--color-success);
89
- color: var(--color-white);
88
+ background-color: var(--vd-color-success);
89
+ color: var(--vd-color-white);
90
90
  }
91
91
 
92
92
  .vd-badge-warning {
93
- background-color: var(--color-warning);
94
- color: var(--color-gray-900);
93
+ background-color: var(--vd-color-warning);
94
+ color: var(--vd-color-gray-900);
95
95
  }
96
96
 
97
97
  .vd-badge-error {
98
- background-color: var(--color-error);
99
- color: var(--color-white);
98
+ background-color: var(--vd-color-error);
99
+ color: var(--vd-color-white);
100
100
  }
101
101
 
102
102
  .vd-badge-info {
103
- background-color: var(--color-info);
104
- color: var(--color-white);
103
+ background-color: var(--vd-color-info);
104
+ color: var(--vd-color-white);
105
105
  }
106
106
 
107
107
  .vd-badge-light {
108
- background-color: var(--color-gray-100);
109
- color: var(--color-gray-900);
108
+ background-color: var(--vd-color-gray-100);
109
+ color: var(--vd-color-gray-900);
110
110
  }
111
111
 
112
112
  .vd-badge-dark {
113
- background-color: var(--color-gray-800);
114
- color: var(--color-white);
113
+ background-color: var(--vd-color-gray-800);
114
+ color: var(--vd-color-white);
115
115
  }
116
116
 
117
117
  /* Badge Sizes */
@@ -138,43 +138,43 @@
138
138
  }
139
139
 
140
140
  .vd-badge-outlined.vd-badge-primary {
141
- color: var(--color-primary);
142
- border-color: var(--color-primary);
141
+ color: var(--vd-color-primary);
142
+ border-color: var(--vd-color-primary);
143
143
  }
144
144
 
145
145
  .vd-badge-outlined.vd-badge-secondary {
146
- color: var(--color-secondary);
147
- border-color: var(--color-secondary);
146
+ color: var(--vd-color-secondary);
147
+ border-color: var(--vd-color-secondary);
148
148
  }
149
149
 
150
150
  .vd-badge-outlined.vd-badge-success {
151
- color: var(--color-success);
152
- border-color: var(--color-success);
151
+ color: var(--vd-color-success);
152
+ border-color: var(--vd-color-success);
153
153
  }
154
154
 
155
155
  .vd-badge-outlined.vd-badge-warning {
156
- color: var(--color-warning);
157
- border-color: var(--color-warning);
156
+ color: var(--vd-color-warning);
157
+ border-color: var(--vd-color-warning);
158
158
  }
159
159
 
160
160
  .vd-badge-outlined.vd-badge-error {
161
- color: var(--color-error);
162
- border-color: var(--color-error);
161
+ color: var(--vd-color-error);
162
+ border-color: var(--vd-color-error);
163
163
  }
164
164
 
165
165
  .vd-badge-outlined.vd-badge-info {
166
- color: var(--color-info);
167
- border-color: var(--color-info);
166
+ color: var(--vd-color-info);
167
+ border-color: var(--vd-color-info);
168
168
  }
169
169
 
170
170
  .vd-badge-outlined.vd-badge-light {
171
- color: var(--color-gray-600);
172
- border-color: var(--color-gray-300);
171
+ color: var(--vd-color-gray-600);
172
+ border-color: var(--vd-color-gray-300);
173
173
  }
174
174
 
175
175
  .vd-badge-outlined.vd-badge-dark {
176
- color: var(--color-gray-800);
177
- border-color: var(--color-gray-800);
176
+ color: var(--vd-color-gray-800);
177
+ border-color: var(--vd-color-gray-800);
178
178
  }
179
179
 
180
180
  /* Badge Positioning (for use with buttons, avatars, etc.) */
@@ -11,14 +11,14 @@
11
11
 
12
12
  /* Breadcrumb Separator */
13
13
  --breadcrumb-separator: "/";
14
- --breadcrumb-separator-color: var(--text-muted);
14
+ --breadcrumb-separator-color: var(--vd-text-muted);
15
15
  --breadcrumb-separator-padding: 0.5rem; /* 8px - fib */
16
16
 
17
17
  /* Breadcrumb Colors */
18
18
  --breadcrumb-bg: transparent;
19
- --breadcrumb-link-color: var(--color-primary);
20
- --breadcrumb-link-hover-color: var(--color-primary-dark);
21
- --breadcrumb-active-color: var(--text-secondary);
19
+ --breadcrumb-link-color: var(--vd-color-primary);
20
+ --breadcrumb-link-hover-color: var(--vd-color-primary-dark);
21
+ --breadcrumb-active-color: var(--vd-text-secondary);
22
22
  }
23
23
 
24
24
  /* Dark Theme Overrides - breadcrumbs use CSS variables that already adapt */
@@ -70,7 +70,7 @@
70
70
 
71
71
  .vd-breadcrumb-link:focus,
72
72
  .vd-breadcrumb-item > a:focus {
73
- outline: 2px solid var(--color-primary);
73
+ outline: 2px solid var(--vd-color-primary);
74
74
  outline-offset: 2px;
75
75
  border-radius: 0.25rem;
76
76
  }
@@ -7,8 +7,8 @@
7
7
  :root {
8
8
  /* Bubble Colors */
9
9
  --bubble-bg: var(--card-bg, #fff);
10
- --bubble-text: var(--text-primary, #212529);
11
- --bubble-border-color: var(--border-color, #dee2e6);
10
+ --bubble-text: var(--vd-text-primary, #212529);
11
+ --bubble-border-color: var(--vd-border-color, #dee2e6);
12
12
  --bubble-shadow: 0 0.5rem 1.3125rem rgba(0, 0, 0, 0.12); /* 8px 21px - fib */
13
13
 
14
14
  /* Bubble Spacing (Fibonacci) */
@@ -31,14 +31,14 @@
31
31
  /* Dark Theme */
32
32
  [data-theme="dark"] {
33
33
  --bubble-bg: var(--card-bg, #2d2d44);
34
- --bubble-border-color: var(--border-color, #3d3d5c);
34
+ --bubble-border-color: var(--vd-border-color, #3d3d5c);
35
35
  --bubble-shadow: 0 0.5rem 1.3125rem rgba(0, 0, 0, 0.3);
36
36
  }
37
37
 
38
38
  @media (prefers-color-scheme: dark) {
39
39
  :root:not([data-theme]) {
40
40
  --bubble-bg: var(--card-bg, #2d2d44);
41
- --bubble-border-color: var(--border-color, #3d3d5c);
41
+ --bubble-border-color: var(--vd-border-color, #3d3d5c);
42
42
  --bubble-shadow: 0 0.5rem 1.3125rem rgba(0, 0, 0, 0.3);
43
43
  }
44
44
  }