maverick-wave 3.3.0 → 3.3.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 +208 -0
- package/.claude/skills/maverick-wave/examples/angular-form.md +275 -0
- package/.claude/skills/maverick-wave/examples/angular-list-page.md +304 -0
- package/.claude/skills/maverick-wave/examples/angular-services.md +348 -0
- package/.claude/skills/maverick-wave/examples/static-landing-page.md +362 -0
- package/.claude/skills/maverick-wave/references/components.md +812 -0
- package/.claude/skills/maverick-wave/references/forms.md +289 -0
- package/.claude/skills/maverick-wave/references/javascript.md +70 -0
- package/.claude/skills/maverick-wave/references/layout.md +300 -0
- package/.claude/skills/maverick-wave/references/theming.md +192 -0
- package/.github/workflows/ci.yml +41 -0
- package/CHANGELOG.md +13 -0
- package/README.md +115 -21
- package/index.html +15 -9
- package/maverick-wave.min.css +1 -1
- package/maverick-wave.min.js +1 -1
- package/package.json +3 -1
- package/scripts/verify.js +137 -0
- package/src/js/main.js +39 -11
- package/src/partials/accordions-container.html +22 -27
- package/src/partials/alerts-container.html +26 -0
- package/src/partials/avatars-container.html +22 -0
- package/src/partials/buttons-container.html +11 -15
- package/src/partials/cards-container.html +8 -8
- package/src/partials/colors-container.html +33 -20
- package/src/partials/documentation-container.html +3 -0
- package/src/partials/form-field-container.html +16 -12
- package/src/partials/get-started-container.html +93 -35
- package/src/partials/header-utilities-container.html +64 -6
- package/src/partials/input-group-container.html +5 -3
- package/src/partials/page-header-container.html +78 -0
- package/src/partials/tables-container.html +130 -0
- package/src/partials/tabs-container.html +20 -16
- package/src/partials/tags-container.html +55 -1
- package/src/scss/abstracts/_index.scss +4 -1
- package/src/scss/abstracts/_variables.scss +128 -106
- package/src/scss/base/_base.scss +32 -136
- package/src/scss/base/_reset.scss +1 -1
- package/src/scss/base/_typography.scss +0 -92
- package/src/scss/components/_accordions.scss +3 -3
- package/src/scss/components/_avatars.scss +28 -1
- package/src/scss/components/_blog-post.scss +1 -1
- package/src/scss/components/_button-bar.scss +6 -6
- package/src/scss/components/_buttons.scss +33 -10
- package/src/scss/components/_cards.scss +7 -7
- package/src/scss/components/_coming-soon.scss +4 -4
- package/src/scss/components/_gallery.scss +2 -2
- package/src/scss/components/_index.scss +1 -0
- package/src/scss/components/_info.scss +20 -3
- package/src/scss/components/_lists.scss +11 -10
- package/src/scss/components/_modals.scss +14 -7
- package/src/scss/components/_pagination.scss +3 -3
- package/src/scss/components/_panels.scss +4 -4
- package/src/scss/components/_progress.scss +1 -1
- package/src/scss/components/_ratings.scss +1 -1
- package/src/scss/components/_spinners.scss +2 -2
- package/src/scss/components/_stepper.scss +3 -2
- package/src/scss/components/_tables.scss +42 -1
- package/src/scss/components/_tabs.scss +5 -5
- package/src/scss/components/_tags.scss +43 -27
- package/src/scss/components/_tiles.scss +3 -3
- package/src/scss/components/_timelines.scss +2 -2
- package/src/scss/components/_toasts.scss +92 -0
- package/src/scss/form-elements/_form.scss +11 -3
- package/src/scss/form-elements/_input.scss +24 -0
- package/src/scss/form-elements/_toggle.scss +1 -1
- package/src/scss/layout/_footer.scss +4 -4
- package/src/scss/layout/_header.scss +219 -59
- package/src/scss/layout/_index.scss +1 -0
- package/src/scss/layout/_main.scss +1 -1
- package/src/scss/layout/_page-header.scss +48 -0
- package/src/scss/layout/_section.scss +15 -14
- package/src/scss/main.scss +4 -0
- package/src/scss/utilities/_flex.scss +4 -0
- package/src/scss/utilities/_index.scss +1 -0
- package/src/scss/utilities/_text.scss +105 -0
- package/.claude/commands/mw.md +0 -595
|
@@ -43,11 +43,36 @@
|
|
|
43
43
|
|
|
44
44
|
<!-- Secondary (Tools) -->
|
|
45
45
|
<h5 class="mw-text-medium mw-mb-2">Secondary</h5>
|
|
46
|
-
<div class="mw-tags mw-tags-secondary">
|
|
46
|
+
<div class="mw-tags mw-tags-secondary mw-mb-4">
|
|
47
47
|
<span class="mw-tags-item">Docker</span>
|
|
48
48
|
<span class="mw-tags-item">Kubernetes</span>
|
|
49
49
|
<span class="mw-tags-item">Git</span>
|
|
50
50
|
</div>
|
|
51
|
+
|
|
52
|
+
<!-- Warning (Pending) -->
|
|
53
|
+
<h5 class="mw-text-medium mw-mb-2">Warning</h5>
|
|
54
|
+
<div class="mw-tags mw-tags-warning mw-mb-4">
|
|
55
|
+
<span class="mw-tags-item">
|
|
56
|
+
<i class="fas fa-clock mw-tags-icon"></i>Pending
|
|
57
|
+
</span>
|
|
58
|
+
<span class="mw-tags-item">Review</span>
|
|
59
|
+
</div>
|
|
60
|
+
|
|
61
|
+
<!-- Danger (Failed) -->
|
|
62
|
+
<h5 class="mw-text-medium mw-mb-2">Danger</h5>
|
|
63
|
+
<div class="mw-tags mw-tags-danger mw-mb-4">
|
|
64
|
+
<span class="mw-tags-item">
|
|
65
|
+
<i class="fas fa-xmark mw-tags-icon"></i>Failed
|
|
66
|
+
</span>
|
|
67
|
+
<span class="mw-tags-item">Deprecated</span>
|
|
68
|
+
</div>
|
|
69
|
+
|
|
70
|
+
<!-- Muted (Neutral) -->
|
|
71
|
+
<h5 class="mw-text-medium mw-mb-2">Muted</h5>
|
|
72
|
+
<div class="mw-tags mw-tags-muted">
|
|
73
|
+
<span class="mw-tags-item">Draft</span>
|
|
74
|
+
<span class="mw-tags-item">Archived</span>
|
|
75
|
+
</div>
|
|
51
76
|
</div>
|
|
52
77
|
</div>
|
|
53
78
|
|
|
@@ -165,4 +190,33 @@
|
|
|
165
190
|
</div>
|
|
166
191
|
</div>
|
|
167
192
|
</div>
|
|
193
|
+
|
|
194
|
+
<!-- COLUMN 4: Single tag -->
|
|
195
|
+
<div>
|
|
196
|
+
<h3 class="mw-card-title mw-mb-4">Single Tag</h3>
|
|
197
|
+
<div class="mw-card mw-card-simple">
|
|
198
|
+
<p class="mw-text-muted mw-mb-4">
|
|
199
|
+
For a single status chip – e.g. in a table cell – use
|
|
200
|
+
<strong>mw-tag</strong>. It carries the colour itself, so no
|
|
201
|
+
<strong>mw-tags</strong> container is needed.
|
|
202
|
+
</p>
|
|
203
|
+
|
|
204
|
+
<h5 class="mw-text-medium mw-mb-2">Variants</h5>
|
|
205
|
+
<div class="mw-d-flex mw-flex-wrap mw-gap-2 mw-mb-4">
|
|
206
|
+
<span class="mw-tag mw-tag-primary">Primary</span>
|
|
207
|
+
<span class="mw-tag mw-tag-secondary">Secondary</span>
|
|
208
|
+
<span class="mw-tag mw-tag-success">Paid</span>
|
|
209
|
+
<span class="mw-tag mw-tag-info">Info</span>
|
|
210
|
+
<span class="mw-tag mw-tag-warning">Open</span>
|
|
211
|
+
<span class="mw-tag mw-tag-danger">Cancelled</span>
|
|
212
|
+
<span class="mw-tag mw-tag-muted">Draft</span>
|
|
213
|
+
</div>
|
|
214
|
+
|
|
215
|
+
<h5 class="mw-text-medium mw-mb-2">Large</h5>
|
|
216
|
+
<div class="mw-d-flex mw-flex-wrap mw-gap-2">
|
|
217
|
+
<span class="mw-tag mw-tag-success mw-tag-lg">Paid</span>
|
|
218
|
+
<span class="mw-tag mw-tag-muted mw-tag-lg">Draft</span>
|
|
219
|
+
</div>
|
|
220
|
+
</div>
|
|
221
|
+
</div>
|
|
168
222
|
</div>
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
// 'variables' first: it is the only configurable module, and both 'functions'
|
|
2
|
+
// and 'mixins' load it themselves. Forwarding it later would mean it is
|
|
3
|
+
// already loaded by the time a `with (...)` configuration reaches it.
|
|
4
|
+
@forward 'variables';
|
|
1
5
|
@forward 'functions';
|
|
2
6
|
@forward 'mixins';
|
|
3
|
-
@forward 'variables';
|
|
@@ -1,135 +1,157 @@
|
|
|
1
|
-
@use 'sass:
|
|
2
|
-
@use 'sass:color';
|
|
1
|
+
@use 'sass:string';
|
|
3
2
|
|
|
4
3
|
$mw-theme-mode: 'switchable' !default; // 'dark', 'light', or 'switchable'
|
|
5
4
|
|
|
6
5
|
$mw-hero-image: url('https://images.unsplash.com/photo-1591638462868-19cfad9c49d1?q=80&w=1300&auto=format&fit=crop') !default;
|
|
7
6
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
$
|
|
16
|
-
$
|
|
17
|
-
|
|
18
|
-
$
|
|
19
|
-
|
|
20
|
-
//
|
|
7
|
+
// ---------------------------------------------------------------------------
|
|
8
|
+
// Root colors
|
|
9
|
+
//
|
|
10
|
+
// These are the only values a project has to set. Every other tone is derived
|
|
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.
|
|
13
|
+
// ---------------------------------------------------------------------------
|
|
14
|
+
$primary-color: #1031bb !default;
|
|
15
|
+
$secondary-color: #bb3110 !default;
|
|
16
|
+
// Darkened a little so light button text stays readable on the solid surface
|
|
17
|
+
$success-color: #218838 !default;
|
|
18
|
+
$warning-color: #d4a310 !default;
|
|
19
|
+
// Darkened a little so light button text stays readable on the solid surface
|
|
20
|
+
$danger-color: #c82333 !default;
|
|
21
|
+
$info-color: #17a2b8 !default;
|
|
22
|
+
$gray-color: #565656 !default;
|
|
23
|
+
$dark-background: #0b111a !default;
|
|
24
|
+
$dark-text-color: #d6dbdf !default;
|
|
25
|
+
$light-background: #d2d1e1 !default;
|
|
26
|
+
$light-text-color: #1a1a1d !default;
|
|
27
|
+
// Form controls stay light in both themes, so they get their own root value
|
|
28
|
+
$form-elements-background: #efefef !default;
|
|
29
|
+
|
|
30
|
+
// ---------------------------------------------------------------------------
|
|
31
|
+
// Derivation helpers
|
|
32
|
+
//
|
|
33
|
+
// They emit color-mix() referring back to another --mw-* token instead of
|
|
34
|
+
// baking a value at compile time.
|
|
35
|
+
//
|
|
36
|
+
// shade()/tint() mix `in hsl`, which behaves like color.adjust($lightness: ...)
|
|
37
|
+
// and scales proportionally, so a derivation looks the same on every palette.
|
|
38
|
+
// Mixing with black/white also lowers the saturation a little — that is why
|
|
39
|
+
// hover tones read slightly softer than the base color. Alpha blending uses
|
|
40
|
+
// `srgb` against `transparent`.
|
|
41
|
+
// ---------------------------------------------------------------------------
|
|
42
|
+
|
|
43
|
+
// Reference another token as-is
|
|
44
|
+
@function token($name) {
|
|
45
|
+
@return string.unquote('var(--mw-#{$name})');
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
// Translucent variant of a token ($amount = remaining opacity)
|
|
49
|
+
@function fade($name, $amount) {
|
|
50
|
+
@return string.unquote(
|
|
51
|
+
'color-mix(in srgb, var(--mw-#{$name}) #{$amount}, transparent)'
|
|
52
|
+
);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
// Darker, fully opaque variant of a token
|
|
56
|
+
@function shade($name, $amount) {
|
|
57
|
+
@return string.unquote(
|
|
58
|
+
'color-mix(in hsl, var(--mw-#{$name}), black #{$amount})'
|
|
59
|
+
);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
// Lighter, fully opaque variant of a token
|
|
63
|
+
@function tint($name, $amount) {
|
|
64
|
+
@return string.unquote(
|
|
65
|
+
'color-mix(in hsl, var(--mw-#{$name}), white #{$amount})'
|
|
66
|
+
);
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
// Uniform hover tone for every solid brand/status surface
|
|
70
|
+
$hover-shift: 18%;
|
|
71
|
+
|
|
72
|
+
// Base colors that don't change between themes.
|
|
73
|
+
// Emitted as --mw-<key>.
|
|
21
74
|
$base-colors: (
|
|
22
75
|
'primary-color': $primary-color,
|
|
23
|
-
'primary-color-hover': color
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
),
|
|
28
|
-
'primary-background': color.adjust(
|
|
29
|
-
$primary-color,
|
|
30
|
-
$lightness: -8%,
|
|
31
|
-
$alpha: -0.8
|
|
32
|
-
),
|
|
33
|
-
'primary-background-hover': color.adjust(
|
|
34
|
-
$primary-color,
|
|
35
|
-
$lightness: -4%,
|
|
36
|
-
$alpha: -0.5
|
|
37
|
-
),
|
|
38
|
-
'primary-info-background': color.adjust(
|
|
39
|
-
$primary-color,
|
|
40
|
-
$lightness: -1%,
|
|
41
|
-
$alpha: -0.3
|
|
42
|
-
),
|
|
43
|
-
'primary-text-color': $dark-text-color,
|
|
76
|
+
'primary-color-hover': shade('primary-color', $hover-shift),
|
|
77
|
+
'primary-background': fade('primary-color', 20%),
|
|
78
|
+
'primary-background-hover': fade('primary-color', 50%),
|
|
79
|
+
'primary-info-background': fade('primary-color', 70%),
|
|
44
80
|
'secondary-color': $secondary-color,
|
|
45
|
-
'secondary-color-hover': color
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
'
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
'secondary-background-hover': color.adjust(
|
|
56
|
-
$secondary-color,
|
|
57
|
-
$lightness: -3%,
|
|
58
|
-
$alpha: -0.6
|
|
59
|
-
),
|
|
60
|
-
'secondary-info-background': color.adjust(
|
|
61
|
-
$secondary-color,
|
|
62
|
-
$lightness: -8%,
|
|
63
|
-
$alpha: -0.3
|
|
64
|
-
),
|
|
65
|
-
'secondary-text-color': $dark-text-color,
|
|
81
|
+
'secondary-color-hover': shade('secondary-color', $hover-shift),
|
|
82
|
+
'secondary-background': fade('secondary-color', 20%),
|
|
83
|
+
'secondary-background-hover': fade('secondary-color', 40%),
|
|
84
|
+
'secondary-info-background': fade('secondary-color-hover', 70%),
|
|
85
|
+
// Translucent accent line used for dividers, rules and outlines
|
|
86
|
+
'border-accent': fade('primary-color', 70%),
|
|
87
|
+
// Text on any solid colored surface — buttons of every variant, table and
|
|
88
|
+
// panel headers, badges, stepper dots. Deliberately not derived from a brand
|
|
89
|
+
// color, so retuning the palette never drags it along.
|
|
90
|
+
'accent-text-color': token('dark-text-color'),
|
|
66
91
|
'gray-color': $gray-color,
|
|
67
|
-
|
|
68
|
-
'gray-background':
|
|
69
|
-
|
|
70
|
-
'
|
|
71
|
-
'
|
|
92
|
+
// Subtle neutral surface: zebra rows, disabled fields, tracks, skeletons
|
|
93
|
+
'gray-background': fade('gray-color', 20%),
|
|
94
|
+
// Heavy scrim behind modals and blocking spinners
|
|
95
|
+
'overlay-background': fade('gray-color', 60%),
|
|
96
|
+
'section-alternate-pattern': fade('gray-color', 45%),
|
|
97
|
+
'form-elements-background': $form-elements-background,
|
|
98
|
+
'form-elements-color': shade('light-text-color', 18%),
|
|
72
99
|
);
|
|
73
100
|
|
|
101
|
+
// Status colors. Every status offers the same four tones.
|
|
102
|
+
// Emitted as --mw-<key>.
|
|
74
103
|
$status-colors: (
|
|
75
104
|
'success-color': $success-color,
|
|
76
|
-
'success-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
$alpha: -0.1
|
|
80
|
-
),
|
|
81
|
-
'success-info-background-hover': color.adjust(
|
|
82
|
-
$success-color,
|
|
83
|
-
$lightness: +4%,
|
|
84
|
-
$alpha: -0.3
|
|
85
|
-
),
|
|
105
|
+
'success-color-hover': shade('success-color', $hover-shift),
|
|
106
|
+
'success-info-background': fade('success-color-hover', 90%),
|
|
107
|
+
'success-info-background-hover': fade('success-color', 70%),
|
|
86
108
|
'warning-color': $warning-color,
|
|
87
|
-
'warning-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
$alpha: -0.1
|
|
91
|
-
),
|
|
109
|
+
'warning-color-hover': shade('warning-color', $hover-shift),
|
|
110
|
+
'warning-info-background': fade('warning-color-hover', 90%),
|
|
111
|
+
'warning-info-background-hover': fade('warning-color', 70%),
|
|
92
112
|
'danger-color': $danger-color,
|
|
93
|
-
'danger-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
$alpha: -0.1
|
|
97
|
-
),
|
|
113
|
+
'danger-color-hover': shade('danger-color', $hover-shift),
|
|
114
|
+
'danger-info-background': fade('danger-color-hover', 90%),
|
|
115
|
+
'danger-info-background-hover': fade('danger-color', 70%),
|
|
98
116
|
'info-color': $info-color,
|
|
99
|
-
'info-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
$alpha: -0.1
|
|
103
|
-
),
|
|
104
|
-
'info-info-background-hover': color.adjust(
|
|
105
|
-
$info-color,
|
|
106
|
-
$lightness: +4%,
|
|
107
|
-
$alpha: -0.3
|
|
108
|
-
),
|
|
117
|
+
'info-color-hover': shade('info-color', $hover-shift),
|
|
118
|
+
'info-info-background': fade('info-color-hover', 90%),
|
|
119
|
+
'info-info-background-hover': fade('info-color', 70%),
|
|
109
120
|
);
|
|
110
121
|
|
|
111
|
-
// Dark theme colors
|
|
122
|
+
// Dark theme colors. Emitted as --mw-dark-<key>, hence the prefixed references.
|
|
112
123
|
$dark-theme-colors: (
|
|
113
124
|
'page-background': $dark-background,
|
|
114
|
-
'hero-overlay-background':
|
|
115
|
-
'card-background':
|
|
116
|
-
'footer-background':
|
|
117
|
-
'border':
|
|
118
|
-
'shadow':
|
|
125
|
+
'hero-overlay-background': fade('dark-page-background', 30%),
|
|
126
|
+
'card-background': tint('dark-page-background', 5%),
|
|
127
|
+
'footer-background': tint('dark-page-background', 3%),
|
|
128
|
+
'border': tint('dark-page-background', 16%),
|
|
129
|
+
'shadow': fade('dark-text-color', 30%),
|
|
119
130
|
'text-color': $dark-text-color,
|
|
120
|
-
'text-muted-color':
|
|
131
|
+
'text-muted-color': shade('dark-text-color', 30%),
|
|
121
132
|
);
|
|
122
133
|
|
|
123
|
-
// Light theme colors
|
|
134
|
+
// Light theme colors. Emitted as --mw-light-<key>.
|
|
124
135
|
$light-theme-colors: (
|
|
125
136
|
'page-background': $light-background,
|
|
126
|
-
'hero-overlay-background':
|
|
127
|
-
'card-background':
|
|
128
|
-
'footer-background':
|
|
129
|
-
'border':
|
|
130
|
-
'shadow':
|
|
137
|
+
'hero-overlay-background': fade('light-page-background', 30%),
|
|
138
|
+
'card-background': tint('light-page-background', 40%),
|
|
139
|
+
'footer-background': shade('light-page-background', 2%),
|
|
140
|
+
'border': shade('light-page-background', 15%),
|
|
141
|
+
'shadow': fade('light-text-color', 30%),
|
|
131
142
|
'text-color': $light-text-color,
|
|
132
|
-
'text-muted-color':
|
|
143
|
+
'text-muted-color': tint('light-text-color', 32%),
|
|
144
|
+
);
|
|
145
|
+
|
|
146
|
+
// Header/navbar colors. They stay dark in both themes but can be retuned on
|
|
147
|
+
// their own. Emitted as --mw-header-<key>.
|
|
148
|
+
$header-colors: (
|
|
149
|
+
'background': token('dark-footer-background'),
|
|
150
|
+
'text-color': token('dark-text-color'),
|
|
151
|
+
'navbar-list-color': token('dark-text-muted-color'),
|
|
152
|
+
'navbar-list-active-color': token('primary-color'),
|
|
153
|
+
'burgerbutton-color': token('dark-text-color'),
|
|
154
|
+
'border': token('border-accent'),
|
|
133
155
|
);
|
|
134
156
|
|
|
135
157
|
// Typography
|
package/src/scss/base/_base.scss
CHANGED
|
@@ -1,122 +1,40 @@
|
|
|
1
|
-
@use 'sass:map';
|
|
2
1
|
@use '../abstracts' as *;
|
|
3
2
|
|
|
3
|
+
// Active theme set and its token prefix, derived from $mw-theme-mode
|
|
4
|
+
$_active-theme: $dark-theme-colors;
|
|
5
|
+
$_active-prefix: 'dark';
|
|
6
|
+
|
|
7
|
+
@if $mw-theme-mode == 'light' {
|
|
8
|
+
$_active-theme: $light-theme-colors;
|
|
9
|
+
$_active-prefix: 'light';
|
|
10
|
+
}
|
|
11
|
+
|
|
4
12
|
// CSS Variables for theming and overriding
|
|
5
13
|
:root {
|
|
6
|
-
//
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
--mw-primary-background-hover: #{map.get(
|
|
11
|
-
$base-colors,
|
|
12
|
-
'primary-background-hover'
|
|
13
|
-
)};
|
|
14
|
-
--mw-primary-info-background: #{map.get(
|
|
15
|
-
$base-colors,
|
|
16
|
-
'primary-info-background'
|
|
17
|
-
)};
|
|
18
|
-
--mw-primary-text-color: #{map.get($base-colors, 'primary-text-color')};
|
|
19
|
-
--mw-secondary-color: #{map.get($base-colors, 'secondary-color')};
|
|
20
|
-
--mw-secondary-color-hover: #{map.get($base-colors, 'secondary-color-hover')};
|
|
21
|
-
--mw-secondary-background: #{map.get($base-colors, 'secondary-background')};
|
|
22
|
-
--mw-secondary-background-hover: #{map.get(
|
|
23
|
-
$base-colors,
|
|
24
|
-
'secondary-background-hover'
|
|
25
|
-
)};
|
|
26
|
-
--mw-secondary-info-background: #{map.get(
|
|
27
|
-
$base-colors,
|
|
28
|
-
'secondary-info-background'
|
|
29
|
-
)};
|
|
30
|
-
--mw-secondary-text-color: #{map.get($base-colors, 'secondary-text-color')};
|
|
31
|
-
--mw-white-color: #{map.get($base-colors, 'white-color')};
|
|
32
|
-
--mw-gray-color: #{map.get($base-colors, 'gray-color')};
|
|
33
|
-
--mw-gray-background: #{map.get($base-colors, 'gray-background')};
|
|
34
|
-
--mw-section-alternate-pattern: #{map.get(
|
|
35
|
-
$base-colors,
|
|
36
|
-
'section-alternate-pattern'
|
|
37
|
-
)};
|
|
38
|
-
|
|
39
|
-
// form
|
|
40
|
-
--mw-form-elements-background: #{map.get(
|
|
41
|
-
$base-colors,
|
|
42
|
-
'form-elements-background'
|
|
43
|
-
)};
|
|
44
|
-
--mw-form-elements-color: #{map.get($base-colors, 'form-elements-color')};
|
|
14
|
+
// Brand and neutral colors
|
|
15
|
+
@each $name, $value in $base-colors {
|
|
16
|
+
--mw-#{$name}: #{$value};
|
|
17
|
+
}
|
|
45
18
|
|
|
46
19
|
// Status colors
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
'success-info-background'
|
|
51
|
-
)};
|
|
52
|
-
--mw-success-info-background-hover: #{map.get(
|
|
53
|
-
$status-colors,
|
|
54
|
-
'success-info-background-hover'
|
|
55
|
-
)};
|
|
56
|
-
--mw-warning-color: #{map.get($status-colors, 'warning-color')};
|
|
57
|
-
--mw-warning-info-background: #{map.get(
|
|
58
|
-
$status-colors,
|
|
59
|
-
'warning-info-background'
|
|
60
|
-
)};
|
|
61
|
-
--mw-danger-color: #{map.get($status-colors, 'danger-color')};
|
|
62
|
-
--mw-danger-info-background: #{map.get(
|
|
63
|
-
$status-colors,
|
|
64
|
-
'danger-info-background'
|
|
65
|
-
)};
|
|
66
|
-
--mw-info-color: #{map.get($status-colors, 'info-color')};
|
|
67
|
-
--mw-info-info-background: #{map.get($status-colors, 'info-info-background')};
|
|
68
|
-
--mw-info-info-background-hover: #{map.get(
|
|
69
|
-
$status-colors,
|
|
70
|
-
'info-info-background-hover'
|
|
71
|
-
)};
|
|
20
|
+
@each $name, $value in $status-colors {
|
|
21
|
+
--mw-#{$name}: #{$value};
|
|
22
|
+
}
|
|
72
23
|
|
|
73
|
-
// Header/navbar colors (
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
'text-muted-color'
|
|
78
|
-
)};
|
|
79
|
-
--mw-header-navbar-list-active-color: #{map.get(
|
|
80
|
-
$base-colors,
|
|
81
|
-
'primary-color'
|
|
82
|
-
)};
|
|
83
|
-
--mw-header-burgerbutton-color: #{map.get($dark-theme-colors, 'text-color')};
|
|
84
|
-
--mw-header-border: #{map.get($base-colors, 'primary-color-hover')};
|
|
24
|
+
// Header/navbar colors (fixed across themes, but overridable on their own)
|
|
25
|
+
@each $name, $value in $header-colors {
|
|
26
|
+
--mw-header-#{$name}: #{$value};
|
|
27
|
+
}
|
|
85
28
|
|
|
86
29
|
// Dark theme colors
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
'hero-overlay-background'
|
|
91
|
-
)};
|
|
92
|
-
--mw-dark-card-background: #{map.get($dark-theme-colors, 'card-background')};
|
|
93
|
-
--mw-dark-footer-background: #{map.get(
|
|
94
|
-
$dark-theme-colors,
|
|
95
|
-
'footer-background'
|
|
96
|
-
)};
|
|
97
|
-
--mw-dark-border: #{map.get($dark-theme-colors, 'border')};
|
|
98
|
-
--mw-dark-shadow: #{map.get($dark-theme-colors, 'shadow')};
|
|
99
|
-
--mw-dark-text-color: #{map.get($dark-theme-colors, 'text-color')};
|
|
100
|
-
--mw-dark-text-muted-color: #{map.get($dark-theme-colors, 'text-muted-color')};
|
|
30
|
+
@each $name, $value in $dark-theme-colors {
|
|
31
|
+
--mw-dark-#{$name}: #{$value};
|
|
32
|
+
}
|
|
101
33
|
|
|
102
34
|
// Light theme colors
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
'hero-overlay-background'
|
|
107
|
-
)};
|
|
108
|
-
--mw-light-card-background: #{map.get($light-theme-colors, 'card-background')};
|
|
109
|
-
--mw-light-footer-background: #{map.get(
|
|
110
|
-
$light-theme-colors,
|
|
111
|
-
'footer-background'
|
|
112
|
-
)};
|
|
113
|
-
--mw-light-border: #{map.get($light-theme-colors, 'border')};
|
|
114
|
-
--mw-light-shadow: #{map.get($light-theme-colors, 'shadow')};
|
|
115
|
-
--mw-light-text-color: #{map.get($light-theme-colors, 'text-color')};
|
|
116
|
-
--mw-light-text-muted-color: #{map.get(
|
|
117
|
-
$light-theme-colors,
|
|
118
|
-
'text-muted-color'
|
|
119
|
-
)};
|
|
35
|
+
@each $name, $value in $light-theme-colors {
|
|
36
|
+
--mw-light-#{$name}: #{$value};
|
|
37
|
+
}
|
|
120
38
|
|
|
121
39
|
// Transitions
|
|
122
40
|
--mw-transition: #{$transition-default};
|
|
@@ -127,39 +45,17 @@
|
|
|
127
45
|
// hero background image
|
|
128
46
|
--mw-hero-background: #{$mw-hero-image};
|
|
129
47
|
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
--mw
|
|
133
|
-
--mw-hero-overlay-background: var(--mw-dark-hero-overlay-background);
|
|
134
|
-
--mw-card-background: var(--mw-dark-card-background);
|
|
135
|
-
--mw-footer-background: var(--mw-dark-footer-background);
|
|
136
|
-
--mw-border: var(--mw-dark-border);
|
|
137
|
-
--mw-shadow: var(--mw-dark-shadow);
|
|
138
|
-
--mw-text-color: var(--mw-dark-text-color);
|
|
139
|
-
--mw-text-muted-color: var(--mw-dark-text-muted-color);
|
|
140
|
-
} @else {
|
|
141
|
-
// Light theme variables
|
|
142
|
-
--mw-page-background: var(--mw-light-page-background);
|
|
143
|
-
--mw-hero-overlay-background: var(--mw-light-hero-overlay-background);
|
|
144
|
-
--mw-card-background: var(--mw-light-card-background);
|
|
145
|
-
--mw-footer-background: var(--mw-light-footer-background);
|
|
146
|
-
--mw-border: var(--mw-light-border);
|
|
147
|
-
--mw-shadow: var(--mw-light-shadow);
|
|
148
|
-
--mw-text-color: var(--mw-light-text-color);
|
|
149
|
-
--mw-text-muted-color: var(--mw-light-text-muted-color);
|
|
48
|
+
// Active theme — aliases onto the dark or light set above
|
|
49
|
+
@each $name, $value in $_active-theme {
|
|
50
|
+
--mw-#{$name}: var(--mw-#{$_active-prefix}-#{$name});
|
|
150
51
|
}
|
|
151
52
|
}
|
|
152
53
|
|
|
153
54
|
@if $mw-theme-mode == 'switchable' {
|
|
154
55
|
.mw-theme-light {
|
|
155
56
|
// Light theme variables for switching
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
--mw-footer-background: var(--mw-light-footer-background);
|
|
160
|
-
--mw-border: var(--mw-light-border);
|
|
161
|
-
--mw-shadow: var(--mw-light-shadow);
|
|
162
|
-
--mw-text-color: var(--mw-light-text-color);
|
|
163
|
-
--mw-text-muted-color: var(--mw-light-text-muted-color);
|
|
57
|
+
@each $name, $value in $light-theme-colors {
|
|
58
|
+
--mw-#{$name}: var(--mw-light-#{$name});
|
|
59
|
+
}
|
|
164
60
|
}
|
|
165
61
|
}
|
|
@@ -148,95 +148,3 @@ blockquote {
|
|
|
148
148
|
right: spacing('4');
|
|
149
149
|
}
|
|
150
150
|
}
|
|
151
|
-
|
|
152
|
-
// Text utilities
|
|
153
|
-
.mw-text {
|
|
154
|
-
&-center {
|
|
155
|
-
text-align: center;
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
&-left {
|
|
159
|
-
text-align: left;
|
|
160
|
-
}
|
|
161
|
-
|
|
162
|
-
&-right {
|
|
163
|
-
text-align: right;
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
&-primary {
|
|
167
|
-
color: var(--mw-primary-color);
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
&-secondary {
|
|
171
|
-
color: var(--mw-secondary-color);
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
&-success {
|
|
175
|
-
color: var(--mw-success-color);
|
|
176
|
-
}
|
|
177
|
-
|
|
178
|
-
&-warning {
|
|
179
|
-
color: var(--mw-warning-color);
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
&-danger {
|
|
183
|
-
color: var(--mw-danger-color);
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
&-info {
|
|
187
|
-
color: var(--mw-info-color);
|
|
188
|
-
}
|
|
189
|
-
|
|
190
|
-
&-muted {
|
|
191
|
-
color: var(--mw-text-muted-color);
|
|
192
|
-
}
|
|
193
|
-
|
|
194
|
-
&-bold {
|
|
195
|
-
font-weight: font-weight('bold');
|
|
196
|
-
}
|
|
197
|
-
|
|
198
|
-
&-medium {
|
|
199
|
-
font-weight: font-weight('medium');
|
|
200
|
-
}
|
|
201
|
-
|
|
202
|
-
&-normal {
|
|
203
|
-
font-weight: font-weight('normal');
|
|
204
|
-
}
|
|
205
|
-
|
|
206
|
-
&-light {
|
|
207
|
-
font-weight: font-weight('light');
|
|
208
|
-
}
|
|
209
|
-
|
|
210
|
-
&-italic {
|
|
211
|
-
font-style: italic;
|
|
212
|
-
}
|
|
213
|
-
|
|
214
|
-
&-color-dark {
|
|
215
|
-
color: var(--mw-dark-text-color);
|
|
216
|
-
}
|
|
217
|
-
|
|
218
|
-
&-color-light {
|
|
219
|
-
color: var(--mw-light-text-color);
|
|
220
|
-
}
|
|
221
|
-
|
|
222
|
-
@each $name, $size in $font-sizes {
|
|
223
|
-
&-#{$name} {
|
|
224
|
-
font-size: $size;
|
|
225
|
-
}
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
|
|
229
|
-
// Line height utilities
|
|
230
|
-
.mw-leading {
|
|
231
|
-
&-tight {
|
|
232
|
-
line-height: 1.2;
|
|
233
|
-
}
|
|
234
|
-
|
|
235
|
-
&-normal {
|
|
236
|
-
line-height: 1.5;
|
|
237
|
-
}
|
|
238
|
-
|
|
239
|
-
&-loose {
|
|
240
|
-
line-height: 1.8;
|
|
241
|
-
}
|
|
242
|
-
}
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
margin: spacing('2');
|
|
8
8
|
|
|
9
9
|
&-item {
|
|
10
|
-
border-bottom: 1px solid var(--mw-
|
|
10
|
+
border-bottom: 1px solid var(--mw-border-accent);
|
|
11
11
|
|
|
12
12
|
&:last-child {
|
|
13
13
|
border-bottom: none;
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
|
|
45
45
|
&.active {
|
|
46
46
|
background: var(--mw-primary-color);
|
|
47
|
-
color: var(--mw-
|
|
47
|
+
color: var(--mw-accent-text-color);
|
|
48
48
|
|
|
49
49
|
.mw-accordion-icon {
|
|
50
50
|
transform: rotate(180deg);
|
|
@@ -61,7 +61,7 @@
|
|
|
61
61
|
|
|
62
62
|
&-inner {
|
|
63
63
|
padding: spacing('4');
|
|
64
|
-
border-top: 1px solid var(--mw-
|
|
64
|
+
border-top: 1px solid var(--mw-border-accent);
|
|
65
65
|
@include media-down('sm') {
|
|
66
66
|
font-size: font-size('sm');
|
|
67
67
|
}
|