@vanduo-oss/framework 1.3.9 → 1.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (124) hide show
  1. package/README.md +89 -42
  2. package/css/components/affix.css +12 -12
  3. package/css/components/alerts.css +70 -70
  4. package/css/components/avatar.css +78 -78
  5. package/css/components/badges.css +67 -67
  6. package/css/components/breadcrumbs.css +32 -32
  7. package/css/components/bubble.css +40 -40
  8. package/css/components/button-group.css +2 -2
  9. package/css/components/buttons.css +157 -157
  10. package/css/components/cards.css +79 -79
  11. package/css/components/chips.css +50 -50
  12. package/css/components/code-snippet.css +132 -132
  13. package/css/components/collapsible.css +67 -67
  14. package/css/components/collections.css +68 -68
  15. package/css/components/datepicker.css +54 -54
  16. package/css/components/doc-search.css +96 -103
  17. package/css/components/doc-tabs.css +11 -11
  18. package/css/components/draggable.css +77 -77
  19. package/css/components/dropdown.css +50 -50
  20. package/css/components/expanding-cards.css +1 -1
  21. package/css/components/fab.css +61 -61
  22. package/css/components/flow.css +55 -55
  23. package/css/components/footer.css +62 -62
  24. package/css/components/forms.css +437 -425
  25. package/css/components/image-box.css +50 -54
  26. package/css/components/modals.css +51 -51
  27. package/css/components/music-player.css +150 -150
  28. package/css/components/navbar.css +80 -80
  29. package/css/components/pagination.css +51 -51
  30. package/css/components/preloader.css +19 -19
  31. package/css/components/progress.css +20 -20
  32. package/css/components/rating.css +19 -19
  33. package/css/components/ripple.css +10 -10
  34. package/css/components/sidenav.css +72 -72
  35. package/css/components/skeleton.css +17 -16
  36. package/css/components/spinner.css +33 -33
  37. package/css/components/spotlight.css +33 -33
  38. package/css/components/stepper.css +39 -39
  39. package/css/components/suggest.css +37 -37
  40. package/css/components/tabs.css +60 -60
  41. package/css/components/theme-customizer.css +154 -154
  42. package/css/components/timeline.css +50 -50
  43. package/css/components/timepicker.css +29 -29
  44. package/css/components/toast.css +53 -53
  45. package/css/components/tooltips.css +78 -78
  46. package/css/components/transfer.css +37 -37
  47. package/css/components/tree.css +28 -28
  48. package/css/components/waypoint.css +12 -12
  49. package/css/core/colors.css +640 -640
  50. package/css/core/grid.css +127 -132
  51. package/css/core/helpers.css +349 -349
  52. package/css/core/tokens.css +133 -67
  53. package/css/core/typography.css +105 -103
  54. package/css/effects/morph.css +21 -21
  55. package/css/effects/parallax.css +6 -6
  56. package/css/utilities/color-utilities.css +273 -273
  57. package/css/utilities/media.css +4 -4
  58. package/css/utilities/shadow.css +75 -75
  59. package/css/utilities/table.css +64 -64
  60. package/css/utilities/transitions.css +53 -41
  61. package/css/vanduo.css +14 -35
  62. package/dist/build-info.json +3 -3
  63. package/dist/vanduo.cjs.js +947 -307
  64. package/dist/vanduo.cjs.js.map +3 -3
  65. package/dist/vanduo.cjs.min.js +7 -7
  66. package/dist/vanduo.cjs.min.js.map +3 -3
  67. package/dist/vanduo.css +9650 -9656
  68. package/dist/vanduo.css.map +1 -1
  69. package/dist/vanduo.esm.js +947 -307
  70. package/dist/vanduo.esm.js.map +3 -3
  71. package/dist/vanduo.esm.min.js +7 -7
  72. package/dist/vanduo.esm.min.js.map +3 -3
  73. package/dist/vanduo.js +947 -307
  74. package/dist/vanduo.js.map +3 -3
  75. package/dist/vanduo.min.css +2 -2
  76. package/dist/vanduo.min.css.map +1 -1
  77. package/dist/vanduo.min.js +7 -7
  78. package/dist/vanduo.min.js.map +3 -3
  79. package/js/components/affix.js +4 -4
  80. package/js/components/bubble.js +3 -3
  81. package/js/components/code-snippet.js +129 -5
  82. package/js/components/collapsible.js +2 -3
  83. package/js/components/datepicker.js +2 -2
  84. package/js/components/doc-search.js +69 -11
  85. package/js/components/draggable.js +4 -4
  86. package/js/components/dropdown.js +2 -3
  87. package/js/components/expanding-cards.js +2 -2
  88. package/js/components/flow.js +2 -2
  89. package/js/components/font-switcher.js +23 -13
  90. package/js/components/glass.js +2 -2
  91. package/js/components/grid.js +19 -8
  92. package/js/components/image-box.js +51 -12
  93. package/js/components/lazy-load.js +81 -9
  94. package/js/components/modals.js +28 -12
  95. package/js/components/morph.js +3 -3
  96. package/js/components/music-player.js +13 -13
  97. package/js/components/navbar.js +3 -3
  98. package/js/components/pagination.js +2 -3
  99. package/js/components/parallax.js +9 -10
  100. package/js/components/preloader.js +15 -6
  101. package/js/components/rating.js +2 -2
  102. package/js/components/ripple.js +2 -2
  103. package/js/components/select.js +2 -3
  104. package/js/components/sidenav.js +43 -14
  105. package/js/components/spotlight.js +2 -2
  106. package/js/components/stepper.js +2 -2
  107. package/js/components/suggest.js +9 -3
  108. package/js/components/tabs.js +2 -2
  109. package/js/components/theme-customizer.js +155 -25
  110. package/js/components/theme-switcher.js +27 -16
  111. package/js/components/timeline.js +41 -12
  112. package/js/components/timepicker.js +2 -2
  113. package/js/components/toast.js +1 -1
  114. package/js/components/tooltips.js +4 -4
  115. package/js/components/transfer.js +2 -2
  116. package/js/components/tree.js +2 -2
  117. package/js/components/validate.js +2 -2
  118. package/js/components/vd-hex.js +10 -6
  119. package/js/components/waypoint.js +2 -2
  120. package/js/utils/helpers.js +7 -4
  121. package/js/utils/lifecycle.js +158 -83
  122. package/js/vanduo.js +203 -34
  123. package/package.json +2 -1
  124. package/css/core/vd-aliases.css +0 -60
package/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # Vanduo Framework v1.3.9
1
+ # Vanduo Framework v1.4.1
2
2
 
3
3
  <p align="center">
4
4
  <img src="vanduo-banner.svg" alt="Vanduo Framework Banner" width="100%">
@@ -10,42 +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, and a strict canonical `--vd-*` token API.
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.9
24
- - Current Theme Customizer defaults in this worktree are `charcoal` for neutral color and `ubuntu` for font family
25
- - Niche canvas hex-grid support is distributed as [`@vanduo-oss/hex-grid`](https://www.npmjs.com/package/@vanduo-oss/hex-grid)
26
- - Built-in dark/light/system theme switching
27
- - Runtime Theme Customizer for color, font, and radius tokens
28
- - 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
+ - Strict design 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
29
26
 
30
27
  ## Quick Start
31
28
 
32
- ### CDN (recommended)
29
+ ### CDN
33
30
 
34
31
  ```html
35
- <link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/vanduo-oss/framework@v1.3.9/dist/vanduo.min.css">
36
- <script src="https://cdn.jsdelivr.net/gh/vanduo-oss/framework@v1.3.9/dist/vanduo.min.js"></script>
37
- <script>Vanduo.init();</script>
32
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/vanduo-oss/framework@v1.4.1/dist/vanduo.min.css">
33
+ <script src="https://cdn.jsdelivr.net/gh/vanduo-oss/framework@v1.4.1/dist/vanduo.min.js"></script>
34
+ <script>
35
+ Vanduo.init();
36
+ </script>
38
37
  ```
39
38
 
40
- ### Local dist files
39
+ ### Local Dist Files
41
40
 
42
41
  ```html
43
42
  <link rel="stylesheet" href="dist/vanduo.min.css">
44
43
  <script src="dist/vanduo.min.js"></script>
45
- <script>Vanduo.init();</script>
44
+ <script>
45
+ Vanduo.init();
46
+ </script>
46
47
  ```
47
48
 
48
- ### Package install (bundlers)
49
+ ### Package Install
49
50
 
50
51
  ```bash
51
52
  pnpm add @vanduo-oss/framework
@@ -58,39 +59,85 @@ import { Vanduo } from '@vanduo-oss/framework';
58
59
  Vanduo.init();
59
60
  ```
60
61
 
61
- ## 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`.
62
77
 
63
- - Website: [vanduo.dev](https://vanduo.dev)
64
- - Docs: [vanduo.dev/#docs](https://vanduo.dev/#docs)
65
- - npm: [@vanduo-oss/framework](https://www.npmjs.com/package/@vanduo-oss/framework)
66
- - Releases: [GitHub Releases](https://github.com/vanduo-oss/framework/releases)
67
- - LLM reference: [`llms.txt`](llms.txt)
78
+ ## Token API
79
+
80
+ Vanduo `1.4.1` treats `--vd-*` as the only shipped custom-property namespace:
81
+
82
+ - Palette: `--vd-red-*`, `--vd-primary-*`, `--vd-gray-*`, and related scales
83
+ - Colors: `--vd-color-*`
84
+ - Backgrounds: `--vd-bg-*`
85
+ - Text: `--vd-text-*`
86
+ - Borders: `--vd-border-*`
87
+ - Shadows: `--vd-shadow-*`
88
+ - Components/effects: `--vd-btn-*`, `--vd-card-*`, `--vd-morph-*`, and related internals
89
+
90
+ Legacy unprefixed token aliases were removed in `1.4.1`; update custom themes and overrides to use the `--vd-*` equivalents.
91
+
92
+ ```css
93
+ .cta {
94
+ color: var(--vd-text-inverse);
95
+ background: var(--vd-color-primary);
96
+ border-color: var(--vd-border-color);
97
+ }
98
+ ```
99
+
100
+ More detail lives in [TOKENS.md](TOKENS.md).
101
+
102
+ ## CSS Bundle Notes
103
+
104
+ - `css/vanduo.css` remains the main framework entrypoint in `1.4.1`.
105
+ - The main bundle still includes framework-wide form defaults for native inputs and textareas.
106
+ - New component styling should prefer `.vd-*` hooks over new raw element selectors.
68
107
 
69
108
  ## Project Structure
70
109
 
71
110
  ```text
72
- vanduo-framework/
73
- ├── dist/ # Production bundles
74
- ├── css/ # Core, components, utilities, effects
75
- ├── js/ # Framework runtime and components
76
- ├── fonts/ # Bundled web fonts
77
- ├── icons/ # Phosphor icons bundle
78
- └── tests/ # Playwright + linting
111
+ framework/
112
+ ├── css/ # Foundation, utilities, effects, components
113
+ ├── js/ # Runtime, lifecycle, components
114
+ ├── dist/ # Built artifacts
115
+ ├── tests/ # Playwright fixtures and specs
116
+ ├── scripts/ # Build, verification, and inventory scripts
117
+ └── docs/*.md # Release and architecture notes
79
118
  ```
80
119
 
81
- ## Browser Support
120
+ ## Development
82
121
 
83
- - Chrome (last 2 versions)
84
- - Firefox (last 2 versions)
85
- - Safari (last 2 versions)
86
- - Edge (last 2 versions)
122
+ ```bash
123
+ corepack enable
124
+ pnpm install
125
+ pnpm run lint
126
+ pnpm run build
127
+ pnpm run check:versions
128
+ pnpm test
129
+ pnpm run stats:css
130
+ ```
131
+
132
+ ## Release Notes
133
+
134
+ - Architecture notes: [ARCHITECTURE.md](ARCHITECTURE.md)
135
+ - Token model: [TOKENS.md](TOKENS.md)
136
+ - `1.4.1` token migration notes: [changes-v141.md](changes-v141.md)
137
+ - QA strategy: [QA-Automation-Strategy.md](QA-Automation-Strategy.md)
138
+ - Contributor workflow: [CONTRIBUTING.md](CONTRIBUTING.md)
87
139
 
88
140
  ## License
89
141
 
90
142
  MIT - see [LICENSE](LICENSE).
91
143
  Third-party notices are listed in [THIRD-PARTY-LICENSES](THIRD-PARTY-LICENSES).
92
-
93
- ## Credits
94
-
95
- - [Open Color](https://yeun.github.io/open-color/) (MIT)
96
- - [Phosphor Icons](https://phosphoricons.com/) (MIT)
@@ -5,19 +5,19 @@
5
5
  */
6
6
 
7
7
  :root {
8
- --affix-top-offset: 0;
9
- --affix-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
10
- --affix-transition: box-shadow 0.2s ease, background-color 0.2s ease;
11
- --affix-z-index: 1020;
8
+ --vd-affix-top-offset: 0;
9
+ --vd-affix-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
10
+ --vd-affix-transition: box-shadow 0.2s ease, background-color 0.2s ease;
11
+ --vd-affix-z-index: 1020;
12
12
  }
13
13
 
14
14
  [data-theme="dark"] {
15
- --affix-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
15
+ --vd-affix-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
16
16
  }
17
17
 
18
18
  @media (prefers-color-scheme: dark) {
19
19
  :root:not([data-theme]) {
20
- --affix-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
20
+ --vd-affix-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
21
21
  }
22
22
  }
23
23
 
@@ -27,9 +27,9 @@
27
27
  .vd-sticky,
28
28
  [data-vd-affix] {
29
29
  position: sticky;
30
- top: var(--affix-top-offset);
31
- transition: var(--affix-transition);
32
- z-index: calc(var(--affix-z-index) - 1);
30
+ top: var(--vd-affix-top-offset);
31
+ transition: var(--vd-affix-transition);
32
+ z-index: calc(var(--vd-affix-z-index) - 1);
33
33
  }
34
34
 
35
35
  /* ========== Stuck State ========== */
@@ -37,8 +37,8 @@
37
37
  .vd-affix.is-stuck,
38
38
  .vd-sticky.is-stuck,
39
39
  [data-vd-affix].is-stuck {
40
- z-index: var(--affix-z-index);
41
- box-shadow: var(--affix-shadow);
40
+ z-index: var(--vd-affix-z-index);
41
+ box-shadow: var(--vd-affix-shadow);
42
42
  }
43
43
 
44
44
  /* ========== Variants ========== */
@@ -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
  }
@@ -5,93 +5,93 @@
5
5
 
6
6
  :root {
7
7
  /* Alert Spacing (Fibonacci: 21px/13px, ratio ~ phi) */
8
- --alert-padding-x: 1.3125rem; /* 21px - fib */
9
- --alert-padding-y: 0.8125rem; /* 13px - fib */
10
- --alert-border-radius: var(--btn-border-radius);
11
- --alert-border-width: 1px;
8
+ --vd-alert-padding-x: 1.3125rem; /* 21px - fib */
9
+ --vd-alert-padding-y: 0.8125rem; /* 13px - fib */
10
+ --vd-alert-border-radius: var(--vd-btn-border-radius);
11
+ --vd-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
+ --vd-alert-primary-bg: var(--vd-color-primary-alpha-10);
15
+ --vd-alert-primary-border: var(--vd-color-primary);
16
+ --vd-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
+ --vd-alert-success-bg: var(--vd-color-success-alpha-10);
19
+ --vd-alert-success-border: var(--vd-color-success);
20
+ --vd-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
+ --vd-alert-warning-bg: var(--vd-color-warning-alpha-10);
23
+ --vd-alert-warning-border: var(--vd-color-warning);
24
+ --vd-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
+ --vd-alert-error-bg: var(--vd-color-error-alpha-10);
27
+ --vd-alert-error-border: var(--vd-color-error);
28
+ --vd-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
+ --vd-alert-info-bg: var(--vd-color-info-alpha-10);
31
+ --vd-alert-info-border: var(--vd-color-info);
32
+ --vd-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
+ --vd-alert-primary-text: var(--vd-color-primary-light);
38
+ --vd-alert-success-text: var(--vd-color-success-light);
39
+ --vd-alert-warning-text: var(--vd-color-warning-light);
40
+ --vd-alert-error-text: var(--vd-color-error-light);
41
+ --vd-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
+ --vd-alert-primary-text: var(--vd-color-primary-light);
47
+ --vd-alert-success-text: var(--vd-color-success-light);
48
+ --vd-alert-warning-text: var(--vd-color-warning-light);
49
+ --vd-alert-error-text: var(--vd-color-error-light);
50
+ --vd-alert-info-text: var(--vd-color-info-light);
51
51
  }
52
52
  }
53
53
 
54
54
  /* Base Alert */
55
55
  .vd-alert {
56
56
  position: relative;
57
- padding: var(--alert-padding-y) var(--alert-padding-x);
57
+ padding: var(--vd-alert-padding-y) var(--vd-alert-padding-x);
58
58
  margin-bottom: 1rem;
59
- border: var(--alert-border-width) solid transparent;
60
- border-radius: var(--alert-border-radius);
61
- font-size: var(--font-size-base);
62
- line-height: var(--line-height-normal);
59
+ border: var(--vd-alert-border-width) solid transparent;
60
+ border-radius: var(--vd-alert-border-radius);
61
+ font-size: var(--vd-font-size-base);
62
+ line-height: var(--vd-line-height-normal);
63
63
  }
64
64
 
65
65
  /* Alert Variants */
66
66
  .vd-alert-primary {
67
- background-color: var(--alert-primary-bg);
68
- border-color: var(--alert-primary-border);
69
- color: var(--alert-primary-text);
67
+ background-color: var(--vd-alert-primary-bg);
68
+ border-color: var(--vd-alert-primary-border);
69
+ color: var(--vd-alert-primary-text);
70
70
  }
71
71
 
72
72
  .vd-alert-success {
73
- background-color: var(--alert-success-bg);
74
- border-color: var(--alert-success-border);
75
- color: var(--alert-success-text);
73
+ background-color: var(--vd-alert-success-bg);
74
+ border-color: var(--vd-alert-success-border);
75
+ color: var(--vd-alert-success-text);
76
76
  }
77
77
 
78
78
  .vd-alert-warning {
79
- background-color: var(--alert-warning-bg);
80
- border-color: var(--alert-warning-border);
81
- color: var(--alert-warning-text);
79
+ background-color: var(--vd-alert-warning-bg);
80
+ border-color: var(--vd-alert-warning-border);
81
+ color: var(--vd-alert-warning-text);
82
82
  }
83
83
 
84
84
  .vd-alert-error,
85
85
  .vd-alert-danger {
86
- background-color: var(--alert-error-bg);
87
- border-color: var(--alert-error-border);
88
- color: var(--alert-error-text);
86
+ background-color: var(--vd-alert-error-bg);
87
+ border-color: var(--vd-alert-error-border);
88
+ color: var(--vd-alert-error-text);
89
89
  }
90
90
 
91
91
  .vd-alert-info {
92
- background-color: var(--alert-info-bg);
93
- border-color: var(--alert-info-border);
94
- color: var(--alert-info-text);
92
+ background-color: var(--vd-alert-info-bg);
93
+ border-color: var(--vd-alert-info-border);
94
+ color: var(--vd-alert-info-text);
95
95
  }
96
96
 
97
97
  /* Alert with Icon */
@@ -111,7 +111,7 @@
111
111
 
112
112
  /* Alert Title */
113
113
  .vd-alert-title {
114
- font-weight: var(--font-weight-semibold);
114
+ font-weight: var(--vd-font-weight-semibold);
115
115
  margin-bottom: 0.25rem;
116
116
  }
117
117
 
@@ -129,7 +129,7 @@
129
129
  position: absolute;
130
130
  top: 0;
131
131
  right: 0;
132
- padding: var(--alert-padding-y) var(--alert-padding-x);
132
+ padding: var(--vd-alert-padding-y) var(--vd-alert-padding-x);
133
133
  background: transparent;
134
134
  border: none;
135
135
  cursor: pointer;
@@ -152,7 +152,7 @@
152
152
  /* Alert Link */
153
153
  .vd-alert a,
154
154
  .vd-alert-link {
155
- font-weight: var(--font-weight-semibold);
155
+ font-weight: var(--vd-font-weight-semibold);
156
156
  color: inherit;
157
157
  text-decoration: underline;
158
158
  }
@@ -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 */
@@ -202,18 +202,18 @@
202
202
  /* Alert Sizes */
203
203
  .vd-alert-sm {
204
204
  padding: 0.3125rem 0.5rem; /* 5px 8px - fib pair */
205
- font-size: var(--font-size-sm);
205
+ font-size: var(--vd-font-size-sm);
206
206
  }
207
207
 
208
208
  .vd-alert-lg {
209
209
  padding: 1.3125rem 2.125rem; /* 21px 34px - fib pair */
210
- font-size: var(--font-size-lg);
210
+ font-size: var(--vd-font-size-lg);
211
211
  }
212
212
 
213
213
  /* Alert with Border Left Accent */
214
214
  .vd-alert-accent {
215
215
  border-left-width: 4px;
216
- border-radius: 0 var(--alert-border-radius) var(--alert-border-radius) 0;
216
+ border-radius: 0 var(--vd-alert-border-radius) var(--vd-alert-border-radius) 0;
217
217
  }
218
218
 
219
219
  /* Reduced Motion */