@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.
- package/README.md +11 -9
- package/css/components/affix.css +11 -11
- package/css/components/alerts.css +55 -55
- package/css/components/avatar.css +62 -62
- package/css/components/badges.css +25 -25
- package/css/components/breadcrumbs.css +31 -31
- package/css/components/bubble.css +40 -40
- package/css/components/button-group.css +2 -2
- package/css/components/buttons.css +33 -33
- package/css/components/cards.css +76 -76
- package/css/components/chips.css +27 -27
- package/css/components/code-snippet.css +132 -132
- package/css/components/collapsible.css +60 -60
- package/css/components/collections.css +58 -58
- package/css/components/datepicker.css +55 -53
- package/css/components/doc-search.css +63 -63
- package/css/components/doc-tabs.css +1 -1
- package/css/components/draggable.css +69 -69
- package/css/components/dropdown.css +48 -48
- package/css/components/fab.css +60 -60
- package/css/components/flow.css +55 -55
- package/css/components/footer.css +52 -52
- package/css/components/forms.css +373 -373
- package/css/components/image-box.css +39 -39
- package/css/components/modals.css +53 -49
- package/css/components/music-player.css +150 -150
- package/css/components/navbar.css +71 -71
- package/css/components/pagination.css +50 -50
- package/css/components/preloader.css +18 -18
- package/css/components/progress.css +16 -16
- package/css/components/rating.css +18 -18
- package/css/components/ripple.css +10 -10
- package/css/components/sidenav.css +67 -67
- package/css/components/skeleton.css +13 -13
- package/css/components/spinner.css +30 -30
- package/css/components/spotlight.css +27 -27
- package/css/components/stepper.css +36 -36
- package/css/components/suggest.css +35 -35
- package/css/components/tabs.css +46 -46
- package/css/components/theme-customizer.css +73 -73
- package/css/components/timeline.css +43 -43
- package/css/components/timepicker.css +32 -30
- package/css/components/toast.css +27 -27
- package/css/components/tooltips.css +77 -77
- package/css/components/transfer.css +35 -35
- package/css/components/tree.css +25 -25
- package/css/components/waypoint.css +12 -12
- package/css/core/colors.css +610 -610
- package/css/core/grid.css +127 -127
- package/css/core/helpers.css +338 -338
- package/css/core/tokens.css +69 -81
- package/css/core/typography.css +91 -91
- package/css/effects/morph.css +17 -17
- package/css/effects/parallax.css +6 -6
- package/css/utilities/color-utilities.css +273 -273
- package/css/utilities/media.css +2 -2
- package/css/utilities/shadow.css +75 -75
- package/css/utilities/table.css +40 -40
- package/css/utilities/transitions.css +38 -38
- package/css/vanduo.css +1 -2
- package/dist/build-info.json +3 -3
- package/dist/vanduo.cjs.js +104 -29
- package/dist/vanduo.cjs.js.map +2 -2
- package/dist/vanduo.cjs.min.js +5 -5
- package/dist/vanduo.cjs.min.js.map +3 -3
- package/dist/vanduo.css +4042 -4133
- package/dist/vanduo.css.map +1 -1
- package/dist/vanduo.esm.js +104 -29
- package/dist/vanduo.esm.js.map +2 -2
- package/dist/vanduo.esm.min.js +5 -5
- package/dist/vanduo.esm.min.js.map +3 -3
- package/dist/vanduo.js +104 -29
- package/dist/vanduo.js.map +2 -2
- package/dist/vanduo.min.css +2 -2
- package/dist/vanduo.min.css.map +1 -1
- package/dist/vanduo.min.js +5 -5
- package/dist/vanduo.min.js.map +3 -3
- package/js/components/affix.js +2 -2
- package/js/components/datepicker.js +51 -4
- package/js/components/image-box.js +2 -2
- package/js/components/morph.js +1 -1
- package/js/components/music-player.js +11 -11
- package/js/components/navbar.js +1 -1
- package/js/components/preloader.js +1 -1
- package/js/components/theme-customizer.js +4 -4
- package/js/components/timepicker.js +48 -6
- package/js/components/vd-hex.js +8 -10
- package/package.json +1 -1
- package/css/core/vd-aliases.css +0 -108
package/README.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Vanduo Framework v1.4.
|
|
1
|
+
# Vanduo Framework v1.4.2
|
|
2
2
|
|
|
3
3
|
<p align="center">
|
|
4
4
|
<img src="vanduo-banner.svg" alt="Vanduo Framework Banner" width="100%">
|
|
@@ -10,7 +10,7 @@
|
|
|
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
|
-
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
|
|
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.
|
|
14
14
|
|
|
15
15
|
[Browse Docs](https://vanduo.dev/#docs)
|
|
16
16
|
|
|
@@ -19,7 +19,7 @@ Vanduo is a zero-dependency UI framework built with HTML, CSS, and vanilla JavaS
|
|
|
19
19
|
- Zero runtime dependencies
|
|
20
20
|
- 47+ components across layout, navigation, overlays, search, and effects
|
|
21
21
|
- Scoped runtime APIs for dynamic DOM work
|
|
22
|
-
-
|
|
22
|
+
- Strict design token API under `--vd-*`
|
|
23
23
|
- Built-in dark, light, and system theming
|
|
24
24
|
- Theme customizer with color, font, and radius controls
|
|
25
25
|
- Playwright-based browser coverage across Chromium, Firefox, and WebKit
|
|
@@ -29,8 +29,8 @@ Vanduo is a zero-dependency UI framework built with HTML, CSS, and vanilla JavaS
|
|
|
29
29
|
### CDN
|
|
30
30
|
|
|
31
31
|
```html
|
|
32
|
-
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/vanduo-oss/framework@v1.4.
|
|
33
|
-
<script src="https://cdn.jsdelivr.net/gh/vanduo-oss/framework@v1.4.
|
|
32
|
+
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/vanduo-oss/framework@v1.4.2/dist/vanduo.min.css">
|
|
33
|
+
<script src="https://cdn.jsdelivr.net/gh/vanduo-oss/framework@v1.4.2/dist/vanduo.min.js"></script>
|
|
34
34
|
<script>
|
|
35
35
|
Vanduo.init();
|
|
36
36
|
</script>
|
|
@@ -77,15 +77,17 @@ Vanduo.getComponent('docSearch');
|
|
|
77
77
|
|
|
78
78
|
## Token API
|
|
79
79
|
|
|
80
|
-
Vanduo `1.4.
|
|
80
|
+
Vanduo `1.4.1` treats `--vd-*` as the only shipped custom-property namespace:
|
|
81
81
|
|
|
82
|
+
- Palette: `--vd-red-*`, `--vd-primary-*`, `--vd-gray-*`, and related scales
|
|
82
83
|
- Colors: `--vd-color-*`
|
|
83
84
|
- Backgrounds: `--vd-bg-*`
|
|
84
85
|
- Text: `--vd-text-*`
|
|
85
86
|
- Borders: `--vd-border-*`
|
|
86
87
|
- Shadows: `--vd-shadow-*`
|
|
88
|
+
- Components/effects: `--vd-btn-*`, `--vd-card-*`, `--vd-morph-*`, and related internals
|
|
87
89
|
|
|
88
|
-
Legacy
|
|
90
|
+
Legacy unprefixed token aliases were removed in `1.4.1`; update custom themes and overrides to use the `--vd-*` equivalents.
|
|
89
91
|
|
|
90
92
|
```css
|
|
91
93
|
.cta {
|
|
@@ -99,7 +101,7 @@ More detail lives in [TOKENS.md](TOKENS.md).
|
|
|
99
101
|
|
|
100
102
|
## CSS Bundle Notes
|
|
101
103
|
|
|
102
|
-
- `css/vanduo.css` remains the main framework entrypoint in `1.4.
|
|
104
|
+
- `css/vanduo.css` remains the main framework entrypoint in `1.4.1`.
|
|
103
105
|
- The main bundle still includes framework-wide form defaults for native inputs and textareas.
|
|
104
106
|
- New component styling should prefer `.vd-*` hooks over new raw element selectors.
|
|
105
107
|
|
|
@@ -131,7 +133,7 @@ pnpm run stats:css
|
|
|
131
133
|
|
|
132
134
|
- Architecture notes: [ARCHITECTURE.md](ARCHITECTURE.md)
|
|
133
135
|
- Token model: [TOKENS.md](TOKENS.md)
|
|
134
|
-
- `1.4.
|
|
136
|
+
- `1.4.1` token migration notes: [changes-v141.md](changes-v141.md)
|
|
135
137
|
- QA strategy: [QA-Automation-Strategy.md](QA-Automation-Strategy.md)
|
|
136
138
|
- Contributor workflow: [CONTRIBUTING.md](CONTRIBUTING.md)
|
|
137
139
|
|
package/css/components/affix.css
CHANGED
|
@@ -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 ========== */
|
|
@@ -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(--vd-color-primary-alpha-10);
|
|
15
|
-
--alert-primary-border: var(--vd-color-primary);
|
|
16
|
-
--alert-primary-text: var(--vd-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(--vd-color-success-alpha-10);
|
|
19
|
-
--alert-success-border: var(--vd-color-success);
|
|
20
|
-
--alert-success-text: var(--vd-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(--vd-color-warning-alpha-10);
|
|
23
|
-
--alert-warning-border: var(--vd-color-warning);
|
|
24
|
-
--alert-warning-text: var(--vd-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(--vd-color-error-alpha-10);
|
|
27
|
-
--alert-error-border: var(--vd-color-error);
|
|
28
|
-
--alert-error-text: var(--vd-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(--vd-color-info-alpha-10);
|
|
31
|
-
--alert-info-border: var(--vd-color-info);
|
|
32
|
-
--alert-info-text: var(--vd-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(--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);
|
|
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(--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);
|
|
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
|
}
|
|
@@ -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 */
|
|
@@ -5,36 +5,36 @@
|
|
|
5
5
|
|
|
6
6
|
:root {
|
|
7
7
|
/* Avatar Sizes (Fibonacci) */
|
|
8
|
-
--avatar-size-xs: 1.3125rem; /* 21px - fib */
|
|
9
|
-
--avatar-size-sm: 2.125rem; /* 34px - fib */
|
|
10
|
-
--avatar-size-md: 3.4375rem; /* 55px - fib */
|
|
11
|
-
--avatar-size: 3.4375rem; /* 55px - fib (default / md) */
|
|
12
|
-
--avatar-size-lg: 5.5625rem; /* 89px - fib */
|
|
13
|
-
--avatar-size-xl: 9rem; /* 144px - fib */
|
|
14
|
-
--avatar-size-2xl: 14.5625rem;/* 233px - fib */
|
|
8
|
+
--vd-avatar-size-xs: 1.3125rem; /* 21px - fib */
|
|
9
|
+
--vd-avatar-size-sm: 2.125rem; /* 34px - fib */
|
|
10
|
+
--vd-avatar-size-md: 3.4375rem; /* 55px - fib */
|
|
11
|
+
--vd-avatar-size: 3.4375rem; /* 55px - fib (default / md) */
|
|
12
|
+
--vd-avatar-size-lg: 5.5625rem; /* 89px - fib */
|
|
13
|
+
--vd-avatar-size-xl: 9rem; /* 144px - fib */
|
|
14
|
+
--vd-avatar-size-2xl: 14.5625rem;/* 233px - fib */
|
|
15
15
|
|
|
16
16
|
/* Avatar Colors */
|
|
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);
|
|
17
|
+
--vd-avatar-bg: var(--vd-color-gray-300);
|
|
18
|
+
--vd-avatar-text: var(--vd-color-gray-700);
|
|
19
|
+
--vd-avatar-border: var(--vd-color-white);
|
|
20
|
+
--vd-avatar-status-online: var(--vd-color-success);
|
|
21
|
+
--vd-avatar-status-offline: var(--vd-color-gray-400);
|
|
22
|
+
--vd-avatar-status-busy: var(--vd-color-error);
|
|
23
|
+
--vd-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(--vd-color-gray-600);
|
|
29
|
-
--avatar-text: var(--vd-color-gray-200);
|
|
30
|
-
--avatar-border: var(--vd-color-gray-800);
|
|
28
|
+
--vd-avatar-bg: var(--vd-color-gray-600);
|
|
29
|
+
--vd-avatar-text: var(--vd-color-gray-200);
|
|
30
|
+
--vd-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(--vd-color-gray-600);
|
|
36
|
-
--avatar-text: var(--vd-color-gray-200);
|
|
37
|
-
--avatar-border: var(--vd-color-gray-800);
|
|
35
|
+
--vd-avatar-bg: var(--vd-color-gray-600);
|
|
36
|
+
--vd-avatar-text: var(--vd-color-gray-200);
|
|
37
|
+
--vd-avatar-border: var(--vd-color-gray-800);
|
|
38
38
|
}
|
|
39
39
|
}
|
|
40
40
|
|
|
@@ -44,13 +44,13 @@
|
|
|
44
44
|
display: inline-flex;
|
|
45
45
|
align-items: center;
|
|
46
46
|
justify-content: center;
|
|
47
|
-
width: var(--avatar-size);
|
|
48
|
-
height: var(--avatar-size);
|
|
47
|
+
width: var(--vd-avatar-size);
|
|
48
|
+
height: var(--vd-avatar-size);
|
|
49
49
|
border-radius: 50%;
|
|
50
|
-
background-color: var(--avatar-bg);
|
|
51
|
-
color: var(--avatar-text);
|
|
52
|
-
font-weight: var(--font-weight-medium);
|
|
53
|
-
font-size: calc(var(--avatar-size) * 0.4);
|
|
50
|
+
background-color: var(--vd-avatar-bg);
|
|
51
|
+
color: var(--vd-avatar-text);
|
|
52
|
+
font-weight: var(--vd-font-weight-medium);
|
|
53
|
+
font-size: calc(var(--vd-avatar-size) * 0.4);
|
|
54
54
|
line-height: 1;
|
|
55
55
|
overflow: hidden;
|
|
56
56
|
flex-shrink: 0;
|
|
@@ -73,44 +73,44 @@
|
|
|
73
73
|
|
|
74
74
|
/* Avatar Sizes */
|
|
75
75
|
.vd-avatar-xs {
|
|
76
|
-
width: var(--avatar-size-xs);
|
|
77
|
-
height: var(--avatar-size-xs);
|
|
78
|
-
font-size: calc(var(--avatar-size-xs) * 0.4);
|
|
76
|
+
width: var(--vd-avatar-size-xs);
|
|
77
|
+
height: var(--vd-avatar-size-xs);
|
|
78
|
+
font-size: calc(var(--vd-avatar-size-xs) * 0.4);
|
|
79
79
|
}
|
|
80
80
|
|
|
81
81
|
.vd-avatar-sm {
|
|
82
|
-
width: var(--avatar-size-sm);
|
|
83
|
-
height: var(--avatar-size-sm);
|
|
84
|
-
font-size: calc(var(--avatar-size-sm) * 0.4);
|
|
82
|
+
width: var(--vd-avatar-size-sm);
|
|
83
|
+
height: var(--vd-avatar-size-sm);
|
|
84
|
+
font-size: calc(var(--vd-avatar-size-sm) * 0.4);
|
|
85
85
|
}
|
|
86
86
|
|
|
87
87
|
.vd-avatar-md {
|
|
88
|
-
width: var(--avatar-size-md);
|
|
89
|
-
height: var(--avatar-size-md);
|
|
90
|
-
font-size: calc(var(--avatar-size-md) * 0.4);
|
|
88
|
+
width: var(--vd-avatar-size-md);
|
|
89
|
+
height: var(--vd-avatar-size-md);
|
|
90
|
+
font-size: calc(var(--vd-avatar-size-md) * 0.4);
|
|
91
91
|
}
|
|
92
92
|
|
|
93
93
|
.vd-avatar-lg {
|
|
94
|
-
width: var(--avatar-size-lg);
|
|
95
|
-
height: var(--avatar-size-lg);
|
|
96
|
-
font-size: calc(var(--avatar-size-lg) * 0.4);
|
|
94
|
+
width: var(--vd-avatar-size-lg);
|
|
95
|
+
height: var(--vd-avatar-size-lg);
|
|
96
|
+
font-size: calc(var(--vd-avatar-size-lg) * 0.4);
|
|
97
97
|
}
|
|
98
98
|
|
|
99
99
|
.vd-avatar-xl {
|
|
100
|
-
width: var(--avatar-size-xl);
|
|
101
|
-
height: var(--avatar-size-xl);
|
|
102
|
-
font-size: calc(var(--avatar-size-xl) * 0.4);
|
|
100
|
+
width: var(--vd-avatar-size-xl);
|
|
101
|
+
height: var(--vd-avatar-size-xl);
|
|
102
|
+
font-size: calc(var(--vd-avatar-size-xl) * 0.4);
|
|
103
103
|
}
|
|
104
104
|
|
|
105
105
|
.vd-avatar-2xl {
|
|
106
|
-
width: var(--avatar-size-2xl);
|
|
107
|
-
height: var(--avatar-size-2xl);
|
|
108
|
-
font-size: calc(var(--avatar-size-2xl) * 0.4);
|
|
106
|
+
width: var(--vd-avatar-size-2xl);
|
|
107
|
+
height: var(--vd-avatar-size-2xl);
|
|
108
|
+
font-size: calc(var(--vd-avatar-size-2xl) * 0.4);
|
|
109
109
|
}
|
|
110
110
|
|
|
111
111
|
/* Avatar Shapes */
|
|
112
112
|
.vd-avatar-rounded {
|
|
113
|
-
border-radius: var(--btn-border-radius);
|
|
113
|
+
border-radius: var(--vd-btn-border-radius);
|
|
114
114
|
}
|
|
115
115
|
|
|
116
116
|
.vd-avatar-square {
|
|
@@ -127,8 +127,8 @@
|
|
|
127
127
|
min-width: 0.5rem;
|
|
128
128
|
min-height: 0.5rem;
|
|
129
129
|
border-radius: 50%;
|
|
130
|
-
border: 2px solid var(--avatar-border);
|
|
131
|
-
background-color: var(--avatar-status-offline);
|
|
130
|
+
border: 2px solid var(--vd-avatar-border);
|
|
131
|
+
background-color: var(--vd-avatar-status-offline);
|
|
132
132
|
}
|
|
133
133
|
|
|
134
134
|
.vd-avatar.vd-avatar-status-online,
|
|
@@ -151,29 +151,29 @@
|
|
|
151
151
|
min-width: 0.5rem;
|
|
152
152
|
min-height: 0.5rem;
|
|
153
153
|
border-radius: 50%;
|
|
154
|
-
border: 2px solid var(--avatar-border);
|
|
154
|
+
border: 2px solid var(--vd-avatar-border);
|
|
155
155
|
}
|
|
156
156
|
|
|
157
|
-
.vd-avatar.vd-avatar-status-online::after { background-color: var(--avatar-status-online); }
|
|
158
|
-
.vd-avatar.vd-avatar-status-offline::after { background-color: var(--avatar-status-offline); }
|
|
159
|
-
.vd-avatar.vd-avatar-status-busy::after { background-color: var(--avatar-status-busy); }
|
|
160
|
-
.vd-avatar.vd-avatar-status-away::after { background-color: var(--avatar-status-away); }
|
|
157
|
+
.vd-avatar.vd-avatar-status-online::after { background-color: var(--vd-avatar-status-online); }
|
|
158
|
+
.vd-avatar.vd-avatar-status-offline::after { background-color: var(--vd-avatar-status-offline); }
|
|
159
|
+
.vd-avatar.vd-avatar-status-busy::after { background-color: var(--vd-avatar-status-busy); }
|
|
160
|
+
.vd-avatar.vd-avatar-status-away::after { background-color: var(--vd-avatar-status-away); }
|
|
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(--vd-color-primary);
|
|
164
|
+
box-shadow: 0 0 0 3px var(--vd-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(--vd-color-success);
|
|
168
|
+
box-shadow: 0 0 0 3px var(--vd-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(--vd-color-warning);
|
|
172
|
+
box-shadow: 0 0 0 3px var(--vd-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(--vd-color-error);
|
|
176
|
+
box-shadow: 0 0 0 3px var(--vd-avatar-border), 0 0 0 5px var(--vd-color-error);
|
|
177
177
|
}
|
|
178
178
|
|
|
179
179
|
/* Avatar Group (stacked avatars) */
|
|
@@ -183,7 +183,7 @@
|
|
|
183
183
|
}
|
|
184
184
|
|
|
185
185
|
.vd-avatar-group .vd-avatar {
|
|
186
|
-
border: 2px solid var(--avatar-border);
|
|
186
|
+
border: 2px solid var(--vd-avatar-border);
|
|
187
187
|
margin-left: -0.75rem;
|
|
188
188
|
}
|
|
189
189
|
|
|
@@ -209,14 +209,14 @@
|
|
|
209
209
|
display: inline-flex;
|
|
210
210
|
align-items: center;
|
|
211
211
|
justify-content: center;
|
|
212
|
-
width: var(--avatar-size);
|
|
213
|
-
height: var(--avatar-size);
|
|
212
|
+
width: var(--vd-avatar-size);
|
|
213
|
+
height: var(--vd-avatar-size);
|
|
214
214
|
border-radius: 50%;
|
|
215
215
|
background-color: var(--vd-color-gray-200);
|
|
216
216
|
color: var(--vd-text-primary);
|
|
217
|
-
font-size: var(--font-size-sm);
|
|
218
|
-
font-weight: var(--font-weight-medium);
|
|
219
|
-
border: 2px solid var(--avatar-border);
|
|
217
|
+
font-size: var(--vd-font-size-sm);
|
|
218
|
+
font-weight: var(--vd-font-weight-medium);
|
|
219
|
+
border: 2px solid var(--vd-avatar-border);
|
|
220
220
|
margin-left: -0.75rem;
|
|
221
221
|
}
|
|
222
222
|
|
|
@@ -5,23 +5,23 @@
|
|
|
5
5
|
|
|
6
6
|
:root {
|
|
7
7
|
/* Badge Padding (x/y ratio ~ phi) */
|
|
8
|
-
--badge-padding-y: 0.3em;
|
|
9
|
-
--badge-padding-x: 0.48em; /* 0.48/0.3 = 1.6 ~ phi */
|
|
10
|
-
--badge-padding-y-sm: 0.18em;
|
|
11
|
-
--badge-padding-x-sm: 0.3em; /* 0.3/0.18 = 1.67 ~ phi */
|
|
12
|
-
--badge-padding-y-lg: 0.42em;
|
|
13
|
-
--badge-padding-x-lg: 0.65em; /* 0.65/0.42 = 1.55 ~ phi */
|
|
8
|
+
--vd-badge-padding-y: 0.3em;
|
|
9
|
+
--vd-badge-padding-x: 0.48em; /* 0.48/0.3 = 1.6 ~ phi */
|
|
10
|
+
--vd-badge-padding-y-sm: 0.18em;
|
|
11
|
+
--vd-badge-padding-x-sm: 0.3em; /* 0.3/0.18 = 1.67 ~ phi */
|
|
12
|
+
--vd-badge-padding-y-lg: 0.42em;
|
|
13
|
+
--vd-badge-padding-x-lg: 0.65em; /* 0.65/0.42 = 1.55 ~ phi */
|
|
14
14
|
|
|
15
15
|
/* Badge Font */
|
|
16
|
-
--badge-font-size: 0.8125em;
|
|
17
|
-
--badge-font-size-sm: 0.7em;
|
|
18
|
-
--badge-font-size-lg: 0.9375em;
|
|
19
|
-
--badge-font-weight: var(--font-weight-semibold);
|
|
20
|
-
--badge-line-height: 1;
|
|
16
|
+
--vd-badge-font-size: 0.8125em;
|
|
17
|
+
--vd-badge-font-size-sm: 0.7em;
|
|
18
|
+
--vd-badge-font-size-lg: 0.9375em;
|
|
19
|
+
--vd-badge-font-weight: var(--vd-font-weight-semibold);
|
|
20
|
+
--vd-badge-line-height: 1;
|
|
21
21
|
|
|
22
22
|
/* Badge Border Radius */
|
|
23
|
-
--badge-border-radius: var(--btn-border-radius-sm);
|
|
24
|
-
--badge-pill-border-radius: 50rem;
|
|
23
|
+
--vd-badge-border-radius: var(--vd-btn-border-radius-sm);
|
|
24
|
+
--vd-badge-pill-border-radius: 50rem;
|
|
25
25
|
}
|
|
26
26
|
|
|
27
27
|
/* Dark Theme Overrides */
|
|
@@ -61,15 +61,15 @@
|
|
|
61
61
|
/* Base Badge */
|
|
62
62
|
.vd-badge {
|
|
63
63
|
display: inline-block;
|
|
64
|
-
padding: var(--badge-padding-y) var(--badge-padding-x);
|
|
65
|
-
font-size: var(--badge-font-size);
|
|
66
|
-
font-weight: var(--badge-font-weight);
|
|
67
|
-
line-height: var(--badge-line-height);
|
|
64
|
+
padding: var(--vd-badge-padding-y) var(--vd-badge-padding-x);
|
|
65
|
+
font-size: var(--vd-badge-font-size);
|
|
66
|
+
font-weight: var(--vd-badge-font-weight);
|
|
67
|
+
line-height: var(--vd-badge-line-height);
|
|
68
68
|
color: var(--vd-color-white);
|
|
69
69
|
text-align: center;
|
|
70
70
|
white-space: nowrap;
|
|
71
71
|
vertical-align: baseline;
|
|
72
|
-
border-radius: var(--badge-border-radius);
|
|
72
|
+
border-radius: var(--vd-badge-border-radius);
|
|
73
73
|
background-color: var(--vd-color-secondary);
|
|
74
74
|
}
|
|
75
75
|
|
|
@@ -116,20 +116,20 @@
|
|
|
116
116
|
|
|
117
117
|
/* Badge Sizes */
|
|
118
118
|
.vd-badge-sm {
|
|
119
|
-
padding: var(--badge-padding-y-sm) var(--badge-padding-x-sm);
|
|
120
|
-
font-size: var(--badge-font-size-sm);
|
|
119
|
+
padding: var(--vd-badge-padding-y-sm) var(--vd-badge-padding-x-sm);
|
|
120
|
+
font-size: var(--vd-badge-font-size-sm);
|
|
121
121
|
}
|
|
122
122
|
|
|
123
123
|
.vd-badge-lg {
|
|
124
|
-
padding: var(--badge-padding-y-lg) var(--badge-padding-x-lg);
|
|
125
|
-
font-size: var(--badge-font-size-lg);
|
|
124
|
+
padding: var(--vd-badge-padding-y-lg) var(--vd-badge-padding-x-lg);
|
|
125
|
+
font-size: var(--vd-badge-font-size-lg);
|
|
126
126
|
}
|
|
127
127
|
|
|
128
128
|
/* Badge Styles */
|
|
129
129
|
.vd-badge-pill {
|
|
130
|
-
padding-right: var(--badge-padding-x);
|
|
131
|
-
padding-left: var(--badge-padding-x);
|
|
132
|
-
border-radius: var(--badge-pill-border-radius);
|
|
130
|
+
padding-right: var(--vd-badge-padding-x);
|
|
131
|
+
padding-left: var(--vd-badge-padding-x);
|
|
132
|
+
border-radius: var(--vd-badge-pill-border-radius);
|
|
133
133
|
}
|
|
134
134
|
|
|
135
135
|
.vd-badge-outlined {
|