maverick-wave 4.4.0 → 4.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/.claude/skills/maverick-wave/SKILL.md +3 -2
- package/.claude/skills/maverick-wave/examples/static-landing-page.md +1 -1
- package/.claude/skills/maverick-wave/references/theming.md +91 -67
- package/CHANGELOG.md +6 -0
- package/README.md +100 -22
- package/index.html +7 -29
- package/maverick-wave.min.css +2 -2
- package/package.json +1 -1
- package/scripts/verify.js +8 -2
- package/src/assets/favicon/apple-touch-icon.png +0 -0
- package/src/assets/favicon/favicon-96x96.png +0 -0
- package/src/assets/favicon/favicon.svg +1 -0
- package/src/assets/favicon/site.webmanifest +37 -1
- package/src/assets/favicon/web-app-manifest-192x192.png +0 -0
- package/src/assets/favicon/web-app-manifest-512x512.png +0 -0
- package/src/assets/favicon.ico +0 -0
- package/src/assets/header-logo.svg +4 -4
- package/src/partials/accordions-container.html +6 -6
- package/src/partials/colors-container.html +76 -4
- package/src/partials/get-started-container.html +17 -14
- package/src/partials/tabs-container.html +7 -6
- package/src/scss/abstracts/_variables.scss +152 -45
- package/src/scss/base/_typography.scss +2 -2
- package/src/scss/components/_alerts.scss +2 -2
- package/src/scss/components/_avatars.scss +1 -1
- package/src/scss/components/_blog-post.scss +5 -5
- package/src/scss/components/_breadcrumbs.scss +3 -3
- package/src/scss/components/_button-bar.scss +4 -4
- package/src/scss/components/_buttons.scss +6 -6
- package/src/scss/components/_calendar.scss +10 -10
- package/src/scss/components/_cards.scss +2 -2
- package/src/scss/components/_divider.scss +3 -3
- package/src/scss/components/_empty-state.scss +4 -4
- package/src/scss/components/_gallery.scss +1 -1
- package/src/scss/components/_info.scss +3 -3
- package/src/scss/components/_kanban.scss +3 -3
- package/src/scss/components/_lists.scss +13 -12
- package/src/scss/components/_localhost-indicator.scss +2 -2
- package/src/scss/components/_meta-info.scss +1 -1
- package/src/scss/components/_ratings.scss +1 -1
- package/src/scss/components/_segmented.scss +3 -3
- package/src/scss/components/_spinners.scss +10 -10
- package/src/scss/components/_stepper.scss +4 -4
- package/src/scss/components/_tabs.scss +5 -5
- package/src/scss/components/_techstack-bucket.scss +2 -2
- package/src/scss/components/_timelines.scss +10 -10
- package/src/scss/form-elements/_form.scss +2 -2
- package/src/scss/form-elements/_login.scss +2 -2
- package/src/scss/layout/_footer.scss +3 -3
- package/src/scss/layout/_header.scss +4 -4
- package/src/scss/layout/_section.scss +5 -5
- package/src/scss/utilities/_text.scss +6 -6
- package/src/assets/favicon/android-chrome-192x192.png +0 -0
- package/src/assets/favicon/android-chrome-512x512.png +0 -0
- package/src/assets/favicon/favicon-16x16.png +0 -0
- package/src/assets/favicon/favicon-32x32.png +0 -0
|
@@ -9,25 +9,51 @@ $mw-hero-image: url('https://images.unsplash.com/photo-1591638462868-19cfad9c49d
|
|
|
9
9
|
//
|
|
10
10
|
// These are the only values a project has to set. Every other tone is derived
|
|
11
11
|
// from them at runtime via color-mix(), so overriding a root token in plain
|
|
12
|
-
// CSS (:root { --mw-primary-color: ... }) cascades to all of its variants
|
|
12
|
+
// CSS (:root { --mw-primary-color: ... }) cascades to all of its variants -
|
|
13
|
+
// including the lightened variants the dark theme needs.
|
|
13
14
|
// ---------------------------------------------------------------------------
|
|
15
|
+
|
|
16
|
+
// Brand
|
|
14
17
|
$primary-color: #1031bb !default;
|
|
15
|
-
$secondary-color: #
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
$
|
|
23
|
-
$dark-
|
|
24
|
-
$
|
|
25
|
-
$light-
|
|
26
|
-
|
|
18
|
+
$secondary-color: #bb5710 !default;
|
|
19
|
+
|
|
20
|
+
// Neutrals - a touch of the brand hue, so grays sit next to the brand colors
|
|
21
|
+
// instead of fighting them
|
|
22
|
+
$gray-color: #6e6e78 !default;
|
|
23
|
+
// Deep enough to read as dark, light enough that the surfaces derived from it
|
|
24
|
+
// still have somewhere to go - see the surface stack below
|
|
25
|
+
$dark-background: #171f30 !default;
|
|
26
|
+
$dark-text-color: #f0eef9 !default;
|
|
27
|
+
$light-background: #e7e7f0 !default;
|
|
28
|
+
$light-text-color: #131925 !default;
|
|
29
|
+
// Text on solid colored surfaces, in both themes. The one token that cannot be
|
|
30
|
+
// derived: a dark brand color needs a light label, a light one a dark label.
|
|
31
|
+
// Set it to the opposite end of your palette from $primary-color.
|
|
32
|
+
$accent-text-color: #f2f6fc !default;
|
|
27
33
|
// Form controls stay light in both themes, so they get their own root value
|
|
28
|
-
$form-elements-background: #
|
|
29
|
-
|
|
30
|
-
|
|
34
|
+
$form-elements-background: #f4f7fb !default;
|
|
35
|
+
|
|
36
|
+
// Status - kept clear of the brand colors, so "accent" never reads as
|
|
37
|
+
// "attention"
|
|
38
|
+
$success-color: #157f1a !default;
|
|
39
|
+
$warning-color: #d1bb21 !default;
|
|
40
|
+
$danger-color: #d41708 !default;
|
|
41
|
+
$info-color: #0780ca !default;
|
|
42
|
+
|
|
43
|
+
// Uniform hover tone for every solid brand/status surface. Darkening, in both
|
|
44
|
+
// themes: the label on a solid surface is $accent-text-color, and lightening
|
|
45
|
+
// a solid surface is what breaks it.
|
|
46
|
+
$hover-shift: 15% !default;
|
|
47
|
+
|
|
48
|
+
// How light a color has to be before it reads as ink on a dark surface, and how
|
|
49
|
+
// dark before it reads as ink on a light one - OKLch lightness, 0 to 1. A bound,
|
|
50
|
+
// not a target: a color already inside the range is used untouched, so a bright
|
|
51
|
+
// brand color stays bright and only one that would drown gets moved.
|
|
52
|
+
$ink-lightness-dark: 0.4 !default;
|
|
53
|
+
$ink-lightness-light: 0.7 !default;
|
|
54
|
+
// How much of the primary color the muted text gray picks up, so it belongs to
|
|
55
|
+
// the palette instead of being a stock #888. 0% is a true gray.
|
|
56
|
+
$muted-tint: 23% !default;
|
|
31
57
|
|
|
32
58
|
// ---------------------------------------------------------------------------
|
|
33
59
|
// Derivation helpers
|
|
@@ -40,6 +66,11 @@ $accent-text-color: #efefef !default;
|
|
|
40
66
|
// Mixing with black/white also lowers the saturation a little - that is why
|
|
41
67
|
// hover tones read slightly softer than the base color. Alpha blending uses
|
|
42
68
|
// `srgb` against `transparent`.
|
|
69
|
+
//
|
|
70
|
+
// A derived token may only reference a token whose value does not depend on the
|
|
71
|
+
// active theme, i.e. a root color or a theme-prefixed one (dark-*/light-*).
|
|
72
|
+
// Custom properties are substituted on the element they are declared on, so a
|
|
73
|
+
// base token pointing at a theme alias would freeze the dark value on :root.
|
|
43
74
|
// ---------------------------------------------------------------------------
|
|
44
75
|
|
|
45
76
|
// Reference another token as-is
|
|
@@ -68,24 +99,74 @@ $accent-text-color: #efefef !default;
|
|
|
68
99
|
);
|
|
69
100
|
}
|
|
70
101
|
|
|
71
|
-
//
|
|
72
|
-
|
|
102
|
+
// The two ink variants. They clamp lightness in OKLch and keep hue and chroma,
|
|
103
|
+
// which is what makes them palette-agnostic: the same expression lifts a very
|
|
104
|
+
// dark color, deepens a very light one and leaves everything in between alone.
|
|
105
|
+
@function ink-on-dark($name) {
|
|
106
|
+
@return string.unquote(
|
|
107
|
+
'oklch(from var(--mw-#{$name}) max(l, #{$ink-lightness-dark}) c h)'
|
|
108
|
+
);
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
@function ink-on-light($name) {
|
|
112
|
+
@return string.unquote(
|
|
113
|
+
'oklch(from var(--mw-#{$name}) min(l, #{$ink-lightness-light}) c h)'
|
|
114
|
+
);
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
// A theme surface derived from the page background: OKLch lightness and chroma
|
|
118
|
+
// scaled by the same factor, hue kept. Below 1 steps toward black, above 1
|
|
119
|
+
// toward white. Chroma rides along because that is what a hand-picked stack
|
|
120
|
+
// does - a darker surface of the same hue carries less color, not the same
|
|
121
|
+
// color at a lower lightness, which would read oversaturated.
|
|
122
|
+
@function surface($name, $factor) {
|
|
123
|
+
@return string.unquote(
|
|
124
|
+
'oklch(from var(--mw-#{$name}) calc(l * #{$factor}) calc(c * #{$factor}) h)'
|
|
125
|
+
);
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
// Muted text tone. Built from a true gray on purpose, not by stepping the
|
|
129
|
+
// theme's text color back: darkening keeps the source saturation and fading
|
|
130
|
+
// keeps its hue, so a tinted text color hands its tint straight through - a
|
|
131
|
+
// mint white page ends up with mint green secondary text. Starting neutral and
|
|
132
|
+
// adding back a defined share of the brand keeps that under control. Opaque,
|
|
133
|
+
// so it reads the same on the page and on a card.
|
|
134
|
+
@function muted($lightness) {
|
|
135
|
+
@return string.unquote(
|
|
136
|
+
'color-mix(in oklab, oklch(#{$lightness} 0 0), var(--mw-primary-color) #{$muted-tint})'
|
|
137
|
+
);
|
|
138
|
+
}
|
|
73
139
|
|
|
74
140
|
// Base colors that don't change between themes.
|
|
75
141
|
// Emitted as --mw-<key>.
|
|
142
|
+
//
|
|
143
|
+
// A brand color has two jobs, and they need two tokens:
|
|
144
|
+
// --mw-primary-color the exact brand tone, for anything it *fills* -
|
|
145
|
+
// buttons, badges, bars, filled surfaces. The label
|
|
146
|
+
// on top is --mw-accent-text-color.
|
|
147
|
+
// --mw-primary-text-color the same color as ink on a theme surface - text,
|
|
148
|
+
// icons, focus rings, accent borders. Lives in the
|
|
149
|
+
// theme maps below, because a color chosen to carry
|
|
150
|
+
// a label is by definition too dark or too light to
|
|
151
|
+
// be read *on* the page it sits on.
|
|
152
|
+
// Same split for secondary and for every status color.
|
|
76
153
|
$base-colors: (
|
|
77
154
|
'primary-color': $primary-color,
|
|
78
155
|
'primary-color-hover': shade('primary-color', $hover-shift),
|
|
79
|
-
|
|
156
|
+
// One rule for every tinted surface in the framework: 20% of the color, 45%
|
|
157
|
+
// while hovered. Both stay close enough to the surface underneath that the
|
|
158
|
+
// theme's own --mw-text-color keeps working on top - which is what makes a
|
|
159
|
+
// soft alert, badge or tag readable in the light *and* the dark theme.
|
|
160
|
+
'primary-background': fade('primary-color', 30%),
|
|
80
161
|
'primary-background-hover': fade('primary-color', 50%),
|
|
81
|
-
|
|
162
|
+
// Same surface under the name the status colors use, so a component can
|
|
163
|
+
// interpolate one token name across all six colors
|
|
164
|
+
'primary-info-background': token('primary-background'),
|
|
82
165
|
'secondary-color': $secondary-color,
|
|
83
166
|
'secondary-color-hover': shade('secondary-color', $hover-shift),
|
|
84
|
-
'secondary-background': fade('secondary-color',
|
|
85
|
-
'secondary-background-hover': fade('secondary-color',
|
|
86
|
-
'secondary-info-background':
|
|
87
|
-
// Translucent accent line used for dividers, rules and outlines
|
|
88
|
-
'border-accent': fade('primary-color', 70%),
|
|
167
|
+
'secondary-background': fade('secondary-color', 30%),
|
|
168
|
+
'secondary-background-hover': fade('secondary-color', 50%),
|
|
169
|
+
'secondary-info-background': token('secondary-background'),
|
|
89
170
|
// Text on any solid colored surface - buttons of every variant, table and
|
|
90
171
|
// panel headers, badges, tooltips, mini close buttons, stepper dots.
|
|
91
172
|
// Deliberately derived from neither a brand color nor a theme text color:
|
|
@@ -101,7 +182,7 @@ $base-colors: (
|
|
|
101
182
|
'surface-muted': token('gray-background'),
|
|
102
183
|
// Heavy scrim behind modals and blocking spinners
|
|
103
184
|
'overlay-background': fade('gray-color', 60%),
|
|
104
|
-
'section-alternate-pattern': fade('gray-color',
|
|
185
|
+
'section-alternate-pattern': fade('gray-color', 30%),
|
|
105
186
|
'form-elements-background': $form-elements-background,
|
|
106
187
|
'form-elements-color': shade('light-text-color', 18%),
|
|
107
188
|
);
|
|
@@ -111,55 +192,81 @@ $base-colors: (
|
|
|
111
192
|
$status-colors: (
|
|
112
193
|
'success-color': $success-color,
|
|
113
194
|
'success-color-hover': shade('success-color', $hover-shift),
|
|
114
|
-
'success-info-background': fade('success-color
|
|
115
|
-
'success-info-background-hover': fade('success-color',
|
|
195
|
+
'success-info-background': fade('success-color', 30%),
|
|
196
|
+
'success-info-background-hover': fade('success-color', 50%),
|
|
116
197
|
'warning-color': $warning-color,
|
|
117
198
|
'warning-color-hover': shade('warning-color', $hover-shift),
|
|
118
|
-
'warning-info-background': fade('warning-color
|
|
119
|
-
'warning-info-background-hover': fade('warning-color',
|
|
199
|
+
'warning-info-background': fade('warning-color', 30%),
|
|
200
|
+
'warning-info-background-hover': fade('warning-color', 50%),
|
|
120
201
|
'danger-color': $danger-color,
|
|
121
202
|
'danger-color-hover': shade('danger-color', $hover-shift),
|
|
122
|
-
'danger-info-background': fade('danger-color
|
|
123
|
-
'danger-info-background-hover': fade('danger-color',
|
|
203
|
+
'danger-info-background': fade('danger-color', 30%),
|
|
204
|
+
'danger-info-background-hover': fade('danger-color', 50%),
|
|
124
205
|
'info-color': $info-color,
|
|
125
206
|
'info-color-hover': shade('info-color', $hover-shift),
|
|
126
|
-
'info-info-background': fade('info-color
|
|
127
|
-
'info-info-background-hover': fade('info-color',
|
|
207
|
+
'info-info-background': fade('info-color', 30%),
|
|
208
|
+
'info-info-background-hover': fade('info-color', 50%),
|
|
128
209
|
);
|
|
129
210
|
|
|
130
211
|
// Dark theme colors. Emitted as --mw-dark-<key>, hence the prefixed references.
|
|
131
212
|
$dark-theme-colors: (
|
|
132
213
|
'page-background': $dark-background,
|
|
133
214
|
'hero-overlay-background': fade('dark-page-background', 30%),
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
215
|
+
// The surface stack. A card steps *away* from the text color - down here, up
|
|
216
|
+
// in the light theme - so content sits on the cleaner of the two surfaces.
|
|
217
|
+
// Footer and header chrome step further out, the rule steps back the other way.
|
|
218
|
+
'card-background': surface('dark-page-background', 0.8),
|
|
219
|
+
'footer-background': surface('dark-page-background', 0.75),
|
|
220
|
+
'border': surface('dark-page-background', 1.5),
|
|
137
221
|
'shadow': fade('dark-text-color', 30%),
|
|
138
222
|
'text-color': $dark-text-color,
|
|
139
|
-
'text-muted-color':
|
|
223
|
+
'text-muted-color': muted(0.7),
|
|
224
|
+
// Every color as ink on this page. Derived, not hardcoded - a project that
|
|
225
|
+
// overrides a root color gets a readable dark-theme variant without setting a
|
|
226
|
+
// second value, and a palette that is already light passes through unchanged.
|
|
227
|
+
'primary-text-color': ink-on-dark('primary-color'),
|
|
228
|
+
'secondary-text-color': ink-on-dark('secondary-color'),
|
|
229
|
+
'success-text-color': ink-on-dark('success-color'),
|
|
230
|
+
'warning-text-color': ink-on-dark('warning-color'),
|
|
231
|
+
'danger-text-color': ink-on-dark('danger-color'),
|
|
232
|
+
'info-text-color': ink-on-dark('info-color'),
|
|
233
|
+
// Translucent accent line used for dividers, rules and outlines. Built from
|
|
234
|
+
// the ink tone, not the fill tone, or the line disappears into the page.
|
|
235
|
+
'border-accent': fade('dark-primary-text-color', 70%),
|
|
140
236
|
);
|
|
141
237
|
|
|
142
238
|
// Light theme colors. Emitted as --mw-light-<key>.
|
|
143
239
|
$light-theme-colors: (
|
|
144
240
|
'page-background': $light-background,
|
|
145
241
|
'hero-overlay-background': fade('light-page-background', 30%),
|
|
146
|
-
'card-background':
|
|
147
|
-
'footer-background':
|
|
148
|
-
'border':
|
|
242
|
+
'card-background': surface('light-page-background', 1.05),
|
|
243
|
+
'footer-background': surface('light-page-background', 0.95),
|
|
244
|
+
'border': surface('light-page-background', 0.85),
|
|
149
245
|
'shadow': fade('light-text-color', 30%),
|
|
150
246
|
'text-color': $light-text-color,
|
|
151
|
-
'text-muted-color':
|
|
247
|
+
'text-muted-color': muted(0.5),
|
|
248
|
+
// Same idea, other direction: a color too light to be read on paper is
|
|
249
|
+
// deepened, everything else passes through as it is
|
|
250
|
+
'primary-text-color': ink-on-light('primary-color'),
|
|
251
|
+
'secondary-text-color': ink-on-light('secondary-color'),
|
|
252
|
+
'success-text-color': ink-on-light('success-color'),
|
|
253
|
+
'warning-text-color': ink-on-light('warning-color'),
|
|
254
|
+
'danger-text-color': ink-on-light('danger-color'),
|
|
255
|
+
'info-text-color': ink-on-light('info-color'),
|
|
256
|
+
'border-accent': fade('light-primary-text-color', 70%),
|
|
152
257
|
);
|
|
153
258
|
|
|
154
259
|
// Header/navbar colors. They stay dark in both themes but can be retuned on
|
|
155
|
-
// their own. Emitted as --mw-header-<key>.
|
|
260
|
+
// their own, hence the dark-* references. Emitted as --mw-header-<key>.
|
|
156
261
|
$header-colors: (
|
|
157
262
|
'background': token('dark-footer-background'),
|
|
158
263
|
'text-color': token('dark-text-color'),
|
|
159
264
|
'navbar-list-color': token('dark-text-muted-color'),
|
|
160
|
-
|
|
265
|
+
// Primary carries the navigation, secondary stays a signal. The bar is dark in
|
|
266
|
+
// both themes, so the active item takes the dark ink tone in both.
|
|
267
|
+
'navbar-list-active-color': token('dark-primary-text-color'),
|
|
161
268
|
'burgerbutton-color': token('dark-text-color'),
|
|
162
|
-
'border': token('border-accent'),
|
|
269
|
+
'border': token('dark-border-accent'),
|
|
163
270
|
);
|
|
164
271
|
// Drives the bar height, the anchor scroll offset and the mobile drawer padding.
|
|
165
272
|
// 59px is the intrinsic height: 42px logo + 2 × spacing('3') + 1px border.
|
|
@@ -47,7 +47,7 @@ h3 {
|
|
|
47
47
|
font-size: font-size('xl');
|
|
48
48
|
|
|
49
49
|
&.mw-accent {
|
|
50
|
-
color: var(--mw-primary-color);
|
|
50
|
+
color: var(--mw-primary-text-color);
|
|
51
51
|
}
|
|
52
52
|
}
|
|
53
53
|
|
|
@@ -89,7 +89,7 @@ code {
|
|
|
89
89
|
}
|
|
90
90
|
|
|
91
91
|
blockquote {
|
|
92
|
-
color: var(--mw-secondary-color);
|
|
92
|
+
color: var(--mw-secondary-text-color);
|
|
93
93
|
font-style: italic;
|
|
94
94
|
position: relative;
|
|
95
95
|
padding: spacing('4') spacing('8');
|
|
@@ -80,10 +80,10 @@ $_mw-alert-colors: (
|
|
|
80
80
|
var(--mw-#{$name}-info-background)
|
|
81
81
|
);
|
|
82
82
|
border: 1px solid color-mix(in srgb, #{$col} 20%, transparent);
|
|
83
|
-
border-left: 4px solid
|
|
83
|
+
border-left: 4px solid var(--mw-#{$name}-text-color);
|
|
84
84
|
|
|
85
85
|
.mw-alert-icon {
|
|
86
|
-
color:
|
|
86
|
+
color: var(--mw-#{$name}-text-color);
|
|
87
87
|
}
|
|
88
88
|
}
|
|
89
89
|
}
|
|
@@ -50,7 +50,7 @@
|
|
|
50
50
|
left: spacing('0');
|
|
51
51
|
width: 200px;
|
|
52
52
|
height: 5px;
|
|
53
|
-
background: var(--mw-primary-color);
|
|
53
|
+
background: var(--mw-primary-text-color);
|
|
54
54
|
}
|
|
55
55
|
}
|
|
56
56
|
|
|
@@ -112,7 +112,7 @@
|
|
|
112
112
|
}
|
|
113
113
|
|
|
114
114
|
i {
|
|
115
|
-
color: var(--mw-primary-color);
|
|
115
|
+
color: var(--mw-primary-text-color);
|
|
116
116
|
flex-shrink: 0;
|
|
117
117
|
}
|
|
118
118
|
}
|
|
@@ -196,7 +196,7 @@
|
|
|
196
196
|
}
|
|
197
197
|
|
|
198
198
|
&:hover {
|
|
199
|
-
color: var(--mw-primary-color);
|
|
199
|
+
color: var(--mw-primary-text-color);
|
|
200
200
|
&::after {
|
|
201
201
|
opacity: 1;
|
|
202
202
|
height: 2px;
|
|
@@ -248,7 +248,7 @@
|
|
|
248
248
|
&-footer {
|
|
249
249
|
margin-top: spacing('6');
|
|
250
250
|
padding-top: spacing('4');
|
|
251
|
-
border-top: 1px solid var(--mw-secondary-color);
|
|
251
|
+
border-top: 1px solid var(--mw-secondary-text-color);
|
|
252
252
|
display: flex;
|
|
253
253
|
justify-content: space-between;
|
|
254
254
|
align-items: center;
|
|
@@ -260,7 +260,7 @@
|
|
|
260
260
|
|
|
261
261
|
&-button {
|
|
262
262
|
transition: var(--mw-transition);
|
|
263
|
-
color: var(--mw-primary-color);
|
|
263
|
+
color: var(--mw-primary-text-color);
|
|
264
264
|
|
|
265
265
|
&:hover {
|
|
266
266
|
transform: translateX(-7px);
|
|
@@ -51,8 +51,8 @@
|
|
|
51
51
|
&:focus,
|
|
52
52
|
&.mw-breadcrumbs-active {
|
|
53
53
|
outline: 0;
|
|
54
|
-
color: var(--mw-primary-color);
|
|
55
|
-
border-color: var(--mw-primary-color);
|
|
54
|
+
color: var(--mw-primary-text-color);
|
|
55
|
+
border-color: var(--mw-primary-text-color);
|
|
56
56
|
z-index: z-index('lift');
|
|
57
57
|
}
|
|
58
58
|
|
|
@@ -66,7 +66,7 @@
|
|
|
66
66
|
&.mw-breadcrumbs-current a,
|
|
67
67
|
&:last-child a {
|
|
68
68
|
color: var(--mw-text-color);
|
|
69
|
-
border-color: var(--mw-primary-color);
|
|
69
|
+
border-color: var(--mw-primary-text-color);
|
|
70
70
|
cursor: default;
|
|
71
71
|
pointer-events: none;
|
|
72
72
|
}
|
|
@@ -83,8 +83,8 @@
|
|
|
83
83
|
[class*='mw-btn-link']
|
|
84
84
|
) {
|
|
85
85
|
background: transparent;
|
|
86
|
-
border-color: var(--mw-primary-color);
|
|
87
|
-
color: var(--mw-primary-color);
|
|
86
|
+
border-color: var(--mw-primary-text-color);
|
|
87
|
+
color: var(--mw-primary-text-color);
|
|
88
88
|
|
|
89
89
|
&:hover:not(:disabled) {
|
|
90
90
|
background: var(--mw-primary-color);
|
|
@@ -101,8 +101,8 @@
|
|
|
101
101
|
.mw-btn:first-child:not([class*='mw-btn-']),
|
|
102
102
|
.mw-btn:last-child:not([class*='mw-btn-']) {
|
|
103
103
|
background: transparent;
|
|
104
|
-
border-color: var(--mw-primary-color);
|
|
105
|
-
color: var(--mw-primary-color);
|
|
104
|
+
border-color: var(--mw-primary-text-color);
|
|
105
|
+
color: var(--mw-primary-text-color);
|
|
106
106
|
|
|
107
107
|
&:hover:not(:disabled) {
|
|
108
108
|
background: var(--mw-primary-color);
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
font-size: inherit;
|
|
20
20
|
|
|
21
21
|
&:focus-visible {
|
|
22
|
-
outline: 2px solid var(--mw-primary-color);
|
|
22
|
+
outline: 2px solid var(--mw-primary-text-color);
|
|
23
23
|
outline-offset: 2px;
|
|
24
24
|
}
|
|
25
25
|
|
|
@@ -81,8 +81,8 @@
|
|
|
81
81
|
}
|
|
82
82
|
.mw-btn-outline {
|
|
83
83
|
background: transparent;
|
|
84
|
-
border-color: var(--mw-primary-color);
|
|
85
|
-
color: var(--mw-primary-color);
|
|
84
|
+
border-color: var(--mw-primary-text-color);
|
|
85
|
+
color: var(--mw-primary-text-color);
|
|
86
86
|
&:hover:not(:disabled) {
|
|
87
87
|
background: var(--mw-primary-color);
|
|
88
88
|
color: var(--mw-accent-text-color);
|
|
@@ -97,7 +97,7 @@
|
|
|
97
97
|
background: transparent;
|
|
98
98
|
border: none;
|
|
99
99
|
padding: 0;
|
|
100
|
-
color: var(--mw-primary-color);
|
|
100
|
+
color: var(--mw-primary-text-color);
|
|
101
101
|
&:hover:not(:disabled) {
|
|
102
102
|
text-decoration: underline;
|
|
103
103
|
}
|
|
@@ -108,7 +108,7 @@
|
|
|
108
108
|
padding: 0;
|
|
109
109
|
color: var(--mw-text-muted-color);
|
|
110
110
|
&:hover:not(:disabled) {
|
|
111
|
-
color: var(--mw-primary-color);
|
|
111
|
+
color: var(--mw-primary-text-color);
|
|
112
112
|
text-decoration: underline;
|
|
113
113
|
}
|
|
114
114
|
}
|
|
@@ -133,7 +133,7 @@
|
|
|
133
133
|
cursor: pointer;
|
|
134
134
|
|
|
135
135
|
&:focus-visible {
|
|
136
|
-
outline: 2px solid var(--mw-primary-color);
|
|
136
|
+
outline: 2px solid var(--mw-primary-text-color);
|
|
137
137
|
outline-offset: 2px;
|
|
138
138
|
}
|
|
139
139
|
|
|
@@ -10,12 +10,12 @@ $_mw-calendar-grid-gap-sm: 3px;
|
|
|
10
10
|
$_mw-calendar-grid-gap-compact: 3px;
|
|
11
11
|
|
|
12
12
|
$_mw-calendar-dot-tones: (
|
|
13
|
-
'primary': var(--mw-primary-color),
|
|
14
|
-
'secondary': var(--mw-secondary-color),
|
|
15
|
-
'success': var(--mw-success-color),
|
|
16
|
-
'warning': var(--mw-warning-color),
|
|
17
|
-
'danger': var(--mw-danger-color),
|
|
18
|
-
'info': var(--mw-info-color),
|
|
13
|
+
'primary': var(--mw-primary-text-color),
|
|
14
|
+
'secondary': var(--mw-secondary-text-color),
|
|
15
|
+
'success': var(--mw-success-text-color),
|
|
16
|
+
'warning': var(--mw-warning-text-color),
|
|
17
|
+
'danger': var(--mw-danger-text-color),
|
|
18
|
+
'info': var(--mw-info-text-color),
|
|
19
19
|
);
|
|
20
20
|
|
|
21
21
|
// Same silhouette as a card, but without the hover lift
|
|
@@ -86,7 +86,7 @@ $_mw-calendar-dot-tones: (
|
|
|
86
86
|
// Saturday and Sunday read like a wall calendar - the label carries the
|
|
87
87
|
// weekend, the cell below only gets a faint tint
|
|
88
88
|
.mw-calendar-weekday.mw-calendar-weekend {
|
|
89
|
-
color: var(--mw-danger-color);
|
|
89
|
+
color: var(--mw-danger-text-color);
|
|
90
90
|
}
|
|
91
91
|
|
|
92
92
|
// A fixed row height instead of an aspect ratio
|
|
@@ -128,19 +128,19 @@ $_mw-calendar-dot-tones: (
|
|
|
128
128
|
.mw-calendar-day:focus-visible {
|
|
129
129
|
outline: none;
|
|
130
130
|
box-shadow: 0 0 0 2px var(--mw-primary-background);
|
|
131
|
-
border-color: var(--mw-primary-color);
|
|
131
|
+
border-color: var(--mw-primary-text-color);
|
|
132
132
|
}
|
|
133
133
|
|
|
134
134
|
// Today gets the outline, the selection gets the fill - both at once would be
|
|
135
135
|
// indistinguishable. Secondary, so it never reads as a selection.
|
|
136
136
|
.mw-calendar-day.mw-calendar-today {
|
|
137
|
-
border-color: var(--mw-secondary-color);
|
|
137
|
+
border-color: var(--mw-secondary-text-color);
|
|
138
138
|
font-weight: font-weight('bold');
|
|
139
139
|
}
|
|
140
140
|
|
|
141
141
|
.mw-calendar-day.mw-selected {
|
|
142
142
|
background: var(--mw-primary-color);
|
|
143
|
-
border-color: var(--mw-primary-color);
|
|
143
|
+
border-color: var(--mw-primary-text-color);
|
|
144
144
|
color: var(--mw-accent-text-color);
|
|
145
145
|
opacity: 1;
|
|
146
146
|
}
|
|
@@ -13,8 +13,8 @@ $_mw-card-addon-colors: (
|
|
|
13
13
|
@mixin _card-divider-gradient {
|
|
14
14
|
background-image: linear-gradient(
|
|
15
15
|
to right,
|
|
16
|
-
var(--mw-secondary-color),
|
|
17
|
-
var(--mw-secondary-color),
|
|
16
|
+
var(--mw-secondary-text-color),
|
|
17
|
+
var(--mw-secondary-text-color),
|
|
18
18
|
var(--mw-gray-background),
|
|
19
19
|
transparent
|
|
20
20
|
);
|
|
@@ -17,11 +17,11 @@
|
|
|
17
17
|
}
|
|
18
18
|
|
|
19
19
|
&-primary {
|
|
20
|
-
border-top-color: var(--mw-primary-color);
|
|
20
|
+
border-top-color: var(--mw-primary-text-color);
|
|
21
21
|
}
|
|
22
22
|
|
|
23
23
|
&-secondary {
|
|
24
|
-
border-top-color: var(--mw-secondary-color);
|
|
24
|
+
border-top-color: var(--mw-secondary-text-color);
|
|
25
25
|
}
|
|
26
26
|
}
|
|
27
27
|
|
|
@@ -67,7 +67,7 @@
|
|
|
67
67
|
}
|
|
68
68
|
|
|
69
69
|
span {
|
|
70
|
-
color: var(--mw-primary-color);
|
|
70
|
+
color: var(--mw-primary-text-color);
|
|
71
71
|
}
|
|
72
72
|
}
|
|
73
73
|
}
|
|
@@ -52,22 +52,22 @@
|
|
|
52
52
|
|
|
53
53
|
// Color variants (change icon color)
|
|
54
54
|
&-primary .mw-empty-state-icon {
|
|
55
|
-
color: var(--mw-primary-color);
|
|
55
|
+
color: var(--mw-primary-text-color);
|
|
56
56
|
opacity: 0.7;
|
|
57
57
|
}
|
|
58
58
|
|
|
59
59
|
&-success .mw-empty-state-icon {
|
|
60
|
-
color: var(--mw-success-color);
|
|
60
|
+
color: var(--mw-success-text-color);
|
|
61
61
|
opacity: 0.7;
|
|
62
62
|
}
|
|
63
63
|
|
|
64
64
|
&-warning .mw-empty-state-icon {
|
|
65
|
-
color: var(--mw-warning-color);
|
|
65
|
+
color: var(--mw-warning-text-color);
|
|
66
66
|
opacity: 0.7;
|
|
67
67
|
}
|
|
68
68
|
|
|
69
69
|
&-danger .mw-empty-state-icon {
|
|
70
|
-
color: var(--mw-danger-color);
|
|
70
|
+
color: var(--mw-danger-text-color);
|
|
71
71
|
opacity: 0.7;
|
|
72
72
|
}
|
|
73
73
|
}
|
|
@@ -78,7 +78,7 @@ button.mw-info {
|
|
|
78
78
|
cursor: pointer;
|
|
79
79
|
|
|
80
80
|
&:focus-visible {
|
|
81
|
-
outline: 2px solid var(--mw-primary-color);
|
|
81
|
+
outline: 2px solid var(--mw-primary-text-color);
|
|
82
82
|
outline-offset: 2px;
|
|
83
83
|
}
|
|
84
84
|
}
|
|
@@ -149,8 +149,8 @@ button.mw-info {
|
|
|
149
149
|
@each $name, $col in $_mw-info-colors {
|
|
150
150
|
.mw-info-#{$name} {
|
|
151
151
|
background: var(--mw-#{$name}-info-background);
|
|
152
|
-
border-color:
|
|
153
|
-
border-left: 6px solid
|
|
152
|
+
border-color: var(--mw-#{$name}-text-color);
|
|
153
|
+
border-left: 6px solid var(--mw-#{$name}-text-color);
|
|
154
154
|
}
|
|
155
155
|
|
|
156
156
|
.mw-info-mini-#{$name} {
|
|
@@ -221,12 +221,12 @@ $_mw-kanban-ribbon-clearance-compact: 58px;
|
|
|
221
221
|
|
|
222
222
|
&:hover:not(:disabled) {
|
|
223
223
|
background: var(--mw-primary-color);
|
|
224
|
-
border-color: var(--mw-primary-color);
|
|
224
|
+
border-color: var(--mw-primary-text-color);
|
|
225
225
|
color: var(--mw-accent-text-color);
|
|
226
226
|
}
|
|
227
227
|
|
|
228
228
|
&:focus-visible {
|
|
229
|
-
outline: 2px solid var(--mw-primary-color);
|
|
229
|
+
outline: 2px solid var(--mw-primary-text-color);
|
|
230
230
|
outline-offset: 2px;
|
|
231
231
|
}
|
|
232
232
|
|
|
@@ -254,7 +254,7 @@ $_mw-kanban-ribbon-clearance-compact: 58px;
|
|
|
254
254
|
gap: spacing('3');
|
|
255
255
|
padding: spacing('4');
|
|
256
256
|
background: var(--mw-card-background);
|
|
257
|
-
border: 1px dashed var(--mw-primary-color);
|
|
257
|
+
border: 1px dashed var(--mw-primary-text-color);
|
|
258
258
|
// Same silhouette as a ticket, so it reads as one being written
|
|
259
259
|
border-radius: radius('sm') radius('xl') radius('sm') radius('xl');
|
|
260
260
|
|