maverick-wave 5.38.0 → 6.0.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.
- package/README.md +63 -47
- package/maverick-wave.min.css +94 -68
- package/maverick-wave.min.js +1 -1
- package/package.json +7 -7
- package/src/js/main.js +382 -57
- package/src/scss/abstracts/_mixins.scss +35 -24
- package/src/scss/abstracts/_variables.scss +15 -0
- package/src/scss/base/_base.scss +107 -64
- package/src/scss/base/_index.scss +1 -0
- package/src/scss/base/_page-transitions.scss +29 -0
- package/src/scss/base/_reset.scss +0 -8
- package/src/scss/components/_accordions.scss +23 -18
- package/src/scss/components/_action-bar.scss +143 -0
- package/src/scss/components/_alerts.scss +13 -1
- package/src/scss/components/_avatars.scss +17 -0
- package/src/scss/components/_badge.scss +12 -0
- package/src/scss/components/_breadcrumbs.scss +10 -2
- package/src/scss/components/_chat.scss +250 -0
- package/src/scss/components/_code.scss +3 -1
- package/src/scss/components/_compare.scss +135 -0
- package/src/scss/components/_deck.scss +8 -14
- package/src/scss/components/_devices.scss +323 -0
- package/src/scss/components/_dropdown.scss +43 -2
- package/src/scss/components/_empty-state.scss +43 -0
- package/src/scss/components/_flag.scss +16 -0
- package/src/scss/components/_index.scss +6 -0
- package/src/scss/components/_lightbox.scss +1 -1
- package/src/scss/components/_marquee.scss +132 -0
- package/src/scss/components/_modals.scss +112 -83
- package/src/scss/components/_occasions.scss +62 -11
- package/src/scss/components/_pagination.scss +91 -0
- package/src/scss/components/_portrait-gallery.scss +1 -1
- package/src/scss/components/_progress.scss +122 -2
- package/src/scss/components/_segmented.scss +65 -2
- package/src/scss/components/_skeleton.scss +8 -0
- package/src/scss/components/_spinners.scss +38 -0
- package/src/scss/components/_stat.scss +232 -0
- package/src/scss/components/_stepper.scss +42 -2
- package/src/scss/components/_stories.scss +36 -22
- package/src/scss/components/_tables.scss +160 -17
- package/src/scss/components/_tabs.scss +42 -4
- package/src/scss/components/_tags.scss +39 -4
- package/src/scss/components/_tiles.scss +1 -1
- package/src/scss/components/_timelines.scss +138 -1
- package/src/scss/components/_toasts.scss +5 -1
- package/src/scss/components/_tooltip.scss +13 -0
- package/src/scss/form-elements/_checkbox.scss +40 -7
- package/src/scss/form-elements/_form.scss +2 -4
- package/src/scss/form-elements/_input.scss +9 -6
- package/src/scss/form-elements/_radio.scss +32 -3
- package/src/scss/form-elements/_select.scss +44 -1
- package/src/scss/form-elements/_slider.scss +18 -0
- package/src/scss/form-elements/_textarea.scss +9 -6
- package/src/scss/form-elements/_toggle.scss +37 -4
- package/src/scss/layout/_app-shell.scss +661 -0
- package/src/scss/layout/_bento.scss +43 -0
- package/src/scss/layout/_footer.scss +114 -2
- package/src/scss/layout/_grid.scss +7 -2
- package/src/scss/layout/_header-reveal.scss +30 -17
- package/src/scss/layout/_header.scss +21 -4
- package/src/scss/layout/_index.scss +2 -0
- package/src/scss/layout/_parallax.scss +13 -11
- package/src/scss/utilities/_accessibility.scss +4 -19
- package/src/scss/utilities/_index.scss +1 -0
- package/src/scss/utilities/_print.scss +7 -3
- package/src/scss/utilities/_reveal.scss +25 -17
- package/src/scss/utilities/_shape.scss +24 -0
- package/src/scss/utilities/_touch-targets.scss +23 -0
- package/src/scss/utilities/_variants.scss +25 -6
|
@@ -14,20 +14,23 @@
|
|
|
14
14
|
transition: var(--mw-transition);
|
|
15
15
|
font-family: inherit;
|
|
16
16
|
|
|
17
|
+
// Firefox fades placeholders by default, which took the muted ink to 2.4:1
|
|
17
18
|
&::placeholder {
|
|
18
19
|
color: var(--mw-text-muted-color);
|
|
19
|
-
opacity:
|
|
20
|
+
opacity: 1;
|
|
20
21
|
}
|
|
21
22
|
|
|
22
|
-
&:hover:not(:focus
|
|
23
|
+
&:hover:not(:focus, [readonly], :disabled) {
|
|
23
24
|
border-color: var(--mw-gray-color);
|
|
24
25
|
}
|
|
25
26
|
|
|
26
27
|
@include field-focus;
|
|
27
28
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
29
|
+
// Not :read-only, which also matches colour, range and file inputs
|
|
30
|
+
&[readonly] {
|
|
31
|
+
// Light and in full ink in both themes - the value is content
|
|
32
|
+
background-color: var(--mw-form-elements-readonly-background);
|
|
33
|
+
color: var(--mw-form-elements-color);
|
|
31
34
|
cursor: default;
|
|
32
35
|
box-shadow: none;
|
|
33
36
|
}
|
|
@@ -84,7 +87,7 @@
|
|
|
84
87
|
}
|
|
85
88
|
|
|
86
89
|
&:disabled {
|
|
87
|
-
background-color: var(--mw-
|
|
90
|
+
background-color: var(--mw-form-elements-disabled-background);
|
|
88
91
|
color: var(--mw-text-muted-color);
|
|
89
92
|
cursor: not-allowed;
|
|
90
93
|
}
|
|
@@ -28,12 +28,19 @@
|
|
|
28
28
|
min-height: 1.5rem;
|
|
29
29
|
cursor: pointer;
|
|
30
30
|
user-select: none;
|
|
31
|
+
position: relative;
|
|
32
|
+
isolation: isolate;
|
|
31
33
|
|
|
34
|
+
// Row-sized for touch exploration, behind the content so a label link works
|
|
32
35
|
input[type='radio'] {
|
|
33
36
|
position: absolute;
|
|
37
|
+
inset: 0;
|
|
38
|
+
z-index: -1;
|
|
39
|
+
width: 100%;
|
|
40
|
+
height: 100%;
|
|
41
|
+
margin: spacing('0');
|
|
34
42
|
opacity: 0;
|
|
35
|
-
|
|
36
|
-
height: 0;
|
|
43
|
+
cursor: inherit;
|
|
37
44
|
}
|
|
38
45
|
|
|
39
46
|
.mw-radio-button {
|
|
@@ -65,9 +72,17 @@
|
|
|
65
72
|
border-color: var(--mw-primary-color);
|
|
66
73
|
}
|
|
67
74
|
|
|
75
|
+
&:hover input[type='radio']:not(:checked, :disabled) + .mw-radio-button {
|
|
76
|
+
border-color: var(--mw-gray-color);
|
|
77
|
+
}
|
|
78
|
+
|
|
68
79
|
input[type='radio']:checked + .mw-radio-button {
|
|
69
80
|
border-color: var(--mw-primary-color);
|
|
70
81
|
}
|
|
82
|
+
|
|
83
|
+
input[type='radio']:is(#{$invalid-states}) + .mw-radio-button {
|
|
84
|
+
border-color: var(--mw-danger-color);
|
|
85
|
+
}
|
|
71
86
|
input[type='radio']:checked + .mw-radio-button::after {
|
|
72
87
|
transform: translate(-50%, -50%) scale(1);
|
|
73
88
|
}
|
|
@@ -107,7 +122,8 @@
|
|
|
107
122
|
}
|
|
108
123
|
}
|
|
109
124
|
|
|
110
|
-
&-disabled
|
|
125
|
+
&-disabled,
|
|
126
|
+
&:has(input[type='radio']:disabled) {
|
|
111
127
|
cursor: not-allowed;
|
|
112
128
|
|
|
113
129
|
input[type='radio'] {
|
|
@@ -121,4 +137,17 @@
|
|
|
121
137
|
}
|
|
122
138
|
}
|
|
123
139
|
}
|
|
140
|
+
|
|
141
|
+
// Forced colours drop the dot's fill and the focus halo - the whole state
|
|
142
|
+
@media (forced-colors: active) {
|
|
143
|
+
.mw-radio input[type='radio']:checked + .mw-radio-button::after {
|
|
144
|
+
forced-color-adjust: none;
|
|
145
|
+
background: CanvasText;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
.mw-radio input[type='radio']:focus-visible + .mw-radio-button {
|
|
149
|
+
outline: 2px solid;
|
|
150
|
+
outline-offset: 2px;
|
|
151
|
+
}
|
|
152
|
+
}
|
|
124
153
|
}
|
|
@@ -42,9 +42,52 @@
|
|
|
42
42
|
}
|
|
43
43
|
|
|
44
44
|
&:disabled {
|
|
45
|
-
background-color: var(--mw-
|
|
45
|
+
background-color: var(--mw-form-elements-disabled-background);
|
|
46
46
|
color: var(--mw-text-muted-color);
|
|
47
47
|
cursor: not-allowed;
|
|
48
48
|
}
|
|
49
49
|
}
|
|
50
|
+
|
|
51
|
+
// Opt-in: the page draws the open list where base-select exists, else native
|
|
52
|
+
@supports (appearance: base-select) {
|
|
53
|
+
.mw-select-custom,
|
|
54
|
+
.mw-select-custom::picker(select) {
|
|
55
|
+
appearance: base-select;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
// The field keeps the framework's arrow, base-select would add its own
|
|
59
|
+
.mw-select-custom::picker-icon {
|
|
60
|
+
display: none;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
.mw-select-custom::picker(select) {
|
|
64
|
+
margin-block: spacing('1');
|
|
65
|
+
padding: spacing('1');
|
|
66
|
+
border: 1px solid var(--mw-border);
|
|
67
|
+
border-radius: radius('md');
|
|
68
|
+
background: var(--mw-form-elements-background);
|
|
69
|
+
color: var(--mw-form-elements-color);
|
|
70
|
+
box-shadow: var(--mw-elevation-4);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
.mw-select-custom option {
|
|
74
|
+
padding: spacing('2') spacing('3');
|
|
75
|
+
border-radius: radius('sm');
|
|
76
|
+
cursor: pointer;
|
|
77
|
+
@include focus-ring-inset;
|
|
78
|
+
|
|
79
|
+
&:hover,
|
|
80
|
+
&:focus-visible {
|
|
81
|
+
background: var(--mw-primary-background);
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
&:checked {
|
|
85
|
+
font-weight: font-weight('medium');
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
&::checkmark {
|
|
89
|
+
color: var(--mw-primary-text-color);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
50
93
|
}
|
|
@@ -121,4 +121,22 @@
|
|
|
121
121
|
}
|
|
122
122
|
}
|
|
123
123
|
}
|
|
124
|
+
|
|
125
|
+
// The filled track is a gradient, which forced colours would drop
|
|
126
|
+
@media (forced-colors: active) {
|
|
127
|
+
.mw-slider {
|
|
128
|
+
forced-color-adjust: none;
|
|
129
|
+
--fill: Highlight;
|
|
130
|
+
--track: GrayText;
|
|
131
|
+
--mw-focus-ring-color: CanvasText;
|
|
132
|
+
|
|
133
|
+
&::-webkit-slider-thumb {
|
|
134
|
+
border-color: CanvasText;
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
&::-moz-range-thumb {
|
|
138
|
+
border-color: CanvasText;
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
}
|
|
124
142
|
}
|
|
@@ -29,20 +29,23 @@
|
|
|
29
29
|
max-height: 60dvh;
|
|
30
30
|
}
|
|
31
31
|
|
|
32
|
+
// Firefox fades placeholders by default, which took the muted ink to 2.4:1
|
|
32
33
|
&::placeholder {
|
|
33
34
|
color: var(--mw-text-muted-color);
|
|
34
|
-
opacity:
|
|
35
|
+
opacity: 1;
|
|
35
36
|
}
|
|
36
37
|
|
|
37
|
-
&:hover:not(:focus
|
|
38
|
+
&:hover:not(:focus, [readonly], :disabled) {
|
|
38
39
|
border-color: var(--mw-gray-color);
|
|
39
40
|
}
|
|
40
41
|
|
|
41
42
|
@include field-focus;
|
|
42
43
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
44
|
+
// Not :read-only, which also matches colour, range and file inputs
|
|
45
|
+
&[readonly] {
|
|
46
|
+
// Light and in full ink in both themes - the value is content
|
|
47
|
+
background-color: var(--mw-form-elements-readonly-background);
|
|
48
|
+
color: var(--mw-form-elements-color);
|
|
46
49
|
cursor: default;
|
|
47
50
|
box-shadow: none;
|
|
48
51
|
}
|
|
@@ -68,7 +71,7 @@
|
|
|
68
71
|
}
|
|
69
72
|
|
|
70
73
|
&:disabled {
|
|
71
|
-
background-color: var(--mw-
|
|
74
|
+
background-color: var(--mw-form-elements-disabled-background);
|
|
72
75
|
color: var(--mw-text-muted-color);
|
|
73
76
|
cursor: not-allowed;
|
|
74
77
|
}
|
|
@@ -31,13 +31,18 @@
|
|
|
31
31
|
cursor: pointer;
|
|
32
32
|
user-select: none;
|
|
33
33
|
position: relative;
|
|
34
|
+
isolation: isolate;
|
|
34
35
|
|
|
36
|
+
// Row-sized for touch exploration, behind the content so a label link works
|
|
35
37
|
input[type='checkbox'] {
|
|
36
38
|
position: absolute;
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
39
|
+
inset: 0;
|
|
40
|
+
z-index: -1;
|
|
41
|
+
width: 100%;
|
|
42
|
+
height: 100%;
|
|
40
43
|
margin: spacing('0');
|
|
44
|
+
opacity: 0;
|
|
45
|
+
cursor: inherit;
|
|
41
46
|
}
|
|
42
47
|
|
|
43
48
|
.mw-toggle-track {
|
|
@@ -135,7 +140,8 @@
|
|
|
135
140
|
}
|
|
136
141
|
}
|
|
137
142
|
|
|
138
|
-
&-disabled
|
|
143
|
+
&-disabled,
|
|
144
|
+
&:has(input[type='checkbox']:disabled) {
|
|
139
145
|
cursor: not-allowed;
|
|
140
146
|
opacity: 0.45;
|
|
141
147
|
|
|
@@ -161,4 +167,31 @@
|
|
|
161
167
|
}
|
|
162
168
|
}
|
|
163
169
|
}
|
|
170
|
+
|
|
171
|
+
// Track and knob are fills, which forced colours take away - system colours
|
|
172
|
+
@media (forced-colors: active) {
|
|
173
|
+
.mw-toggle-track {
|
|
174
|
+
forced-color-adjust: none;
|
|
175
|
+
background: Canvas;
|
|
176
|
+
outline: 1px solid CanvasText;
|
|
177
|
+
|
|
178
|
+
&::after {
|
|
179
|
+
background: CanvasText;
|
|
180
|
+
box-shadow: none;
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
.mw-toggle input[type='checkbox']:checked + .mw-toggle-track {
|
|
185
|
+
background: Highlight;
|
|
186
|
+
|
|
187
|
+
&::after {
|
|
188
|
+
background: HighlightText;
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
.mw-toggle input[type='checkbox']:focus-visible + .mw-toggle-track {
|
|
193
|
+
outline: 2px solid CanvasText;
|
|
194
|
+
outline-offset: 2px;
|
|
195
|
+
}
|
|
196
|
+
}
|
|
164
197
|
}
|