maverick-wave 5.30.0 → 5.32.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 +2 -2
- package/maverick-wave.min.css +2 -2
- package/package.json +8 -2
- package/src/scss/abstracts/_variables.scss +2 -0
- package/src/scss/components/_modals.scss +23 -9
- package/src/scss/components/_testimonial.scss +2 -0
- package/src/scss/layout/_home.scss +46 -0
- package/src/scss/layout/_main.scss +20 -0
- package/src/scss/layout/_parallax.scss +2 -2
- package/src/scss/main-lean.scss +8 -3
- package/.claude/settings.local.json +0 -43
- package/.claude/skills/mw-maverick-wave/SKILL.md +0 -532
- package/.claude/skills/mw-maverick-wave/examples/angular-form.md +0 -279
- package/.claude/skills/mw-maverick-wave/examples/angular-list-page.md +0 -309
- package/.claude/skills/mw-maverick-wave/examples/angular-services.md +0 -538
- package/.claude/skills/mw-maverick-wave/examples/static-landing-page.md +0 -530
- package/.claude/skills/mw-maverick-wave/references/components.md +0 -2170
- package/.claude/skills/mw-maverick-wave/references/forms.md +0 -358
- package/.claude/skills/mw-maverick-wave/references/javascript.md +0 -164
- package/.claude/skills/mw-maverick-wave/references/layout.md +0 -764
- package/.claude/skills/mw-maverick-wave/references/theming.md +0 -530
- package/.github/workflows/ci.yml +0 -41
- package/.idea/codeStyles/Project.xml +0 -59
- package/.idea/codeStyles/codeStyleConfig.xml +0 -5
- package/.idea/maverick-wave.iml +0 -12
- package/.idea/modules.xml +0 -8
- package/.idea/prettier.xml +0 -6
- package/.idea/vcs.xml +0 -6
- package/.prettierignore +0 -8
- package/.prettierrc.json +0 -7
- package/CHANGELOG.md +0 -956
- package/CLAUDE.md +0 -60
- package/gulpfile.js +0 -167
- package/index.html +0 -1730
- package/release.sh +0 -31
- package/scripts/verify.js +0 -252
- 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 +0 -1
- package/src/assets/favicon/site.webmanifest +0 -37
- 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 +0 -24
- package/src/assets/images/gallery-city.svg +0 -49
- package/src/assets/images/gallery-desert.svg +0 -25
- package/src/assets/images/gallery-forest.svg +0 -46
- package/src/assets/images/gallery-lake.svg +0 -26
- package/src/assets/images/gallery-mountain.svg +0 -19
- package/src/assets/images/gallery-ocean.svg +0 -26
- package/src/assets/images/gallery-oldtown.svg +0 -41
- package/src/assets/images/gallery-snow.svg +0 -39
- package/src/assets/images/photo-balloon.svg +0 -35
- package/src/assets/images/photo-forest-path.svg +0 -31
- package/src/assets/images/photo-lighthouse.svg +0 -42
- package/src/assets/images/photo-palm.svg +0 -27
- package/src/assets/images/photo-peak.svg +0 -27
- package/src/assets/images/photo-tower.svg +0 -34
- package/src/assets/images/photo-waterfall.svg +0 -32
- package/src/assets/images/slider-field.svg +0 -124
- package/src/assets/images/slider-forest.svg +0 -33
- package/src/assets/images/slider-lake.svg +0 -35
- package/src/assets/images/slider-mountains.svg +0 -29
- package/src/assets/images/slider-trees.svg +0 -41
- package/src/assets/images/story-aurora.svg +0 -36
- package/src/assets/images/story-beach.svg +0 -34
- package/src/assets/images/story-stars.svg +0 -35
- package/src/assets/images/tile-analytics.svg +0 -22
- package/src/assets/images/tile-cloud.svg +0 -19
- package/src/assets/images/tile-ecommerce.svg +0 -14
- package/src/assets/images/tile-enterprise.svg +0 -22
- package/src/assets/images/tile-marketing.svg +0 -16
- package/src/assets/media/demo-chime.wav +0 -0
- package/src/assets/media/story-sunrise.jpg +0 -0
- package/src/assets/media/story-sunrise.mp4 +0 -0
- package/src/partials/accordions-container.html +0 -179
- package/src/partials/alerts-container.html +0 -151
- package/src/partials/announcement-container.html +0 -67
- package/src/partials/avatars-container.html +0 -229
- package/src/partials/badges-container.html +0 -114
- package/src/partials/blog-posts-container.html +0 -158
- package/src/partials/breadcrumbs-container.html +0 -126
- package/src/partials/button-bar-container.html +0 -175
- package/src/partials/buttons-container.html +0 -272
- package/src/partials/calendar-container.html +0 -203
- package/src/partials/cards-container.html +0 -727
- package/src/partials/code-container.html +0 -194
- package/src/partials/colors-container.html +0 -263
- package/src/partials/coming-soon-container.html +0 -10
- package/src/partials/contact-container.html +0 -85
- package/src/partials/content-slider-container.html +0 -36
- package/src/partials/divider-container.html +0 -70
- package/src/partials/documentation-container.html +0 -204
- package/src/partials/dropdown-container.html +0 -119
- package/src/partials/empty-state-container.html +0 -79
- package/src/partials/feed-container.html +0 -506
- package/src/partials/footer-container.html +0 -113
- package/src/partials/form-container.html +0 -262
- package/src/partials/form-elements-container.html +0 -616
- package/src/partials/form-field-container.html +0 -166
- package/src/partials/gallery-container.html +0 -62
- package/src/partials/get-started-container.html +0 -423
- package/src/partials/grid-container.html +0 -191
- package/src/partials/header-container.html +0 -69
- package/src/partials/header-utilities-container.html +0 -331
- package/src/partials/highlights-container.html +0 -71
- package/src/partials/history-container.html +0 -67
- package/src/partials/home-container.html +0 -31
- package/src/partials/html-lists-container.html +0 -63
- package/src/partials/info-container.html +0 -104
- package/src/partials/input-group-container.html +0 -299
- package/src/partials/item-lists-container.html +0 -368
- package/src/partials/kanban-container.html +0 -459
- package/src/partials/kbd-container.html +0 -63
- package/src/partials/leader-row-container.html +0 -139
- package/src/partials/login-container.html +0 -65
- package/src/partials/lunch-menu-container.html +0 -341
- package/src/partials/media-container.html +0 -27
- package/src/partials/meta-info-container.html +0 -21
- package/src/partials/modals-container.html +0 -199
- package/src/partials/mosaic-container.html +0 -173
- package/src/partials/page-header-container.html +0 -78
- package/src/partials/pagination-container.html +0 -64
- package/src/partials/palette-container.html +0 -480
- package/src/partials/panels-container.html +0 -126
- package/src/partials/parallax-container.html +0 -147
- package/src/partials/portrait-gallery-container.html +0 -175
- package/src/partials/preview-container.html +0 -136
- package/src/partials/pricing-container.html +0 -523
- package/src/partials/progress-container.html +0 -230
- package/src/partials/prose-container.html +0 -43
- package/src/partials/ratings-container.html +0 -104
- package/src/partials/section-head-container.html +0 -77
- package/src/partials/segmented-container.html +0 -66
- package/src/partials/skeleton-container.html +0 -87
- package/src/partials/spinners-container.html +0 -96
- package/src/partials/stepper-container.html +0 -111
- package/src/partials/stories-container.html +0 -182
- package/src/partials/tables-container.html +0 -309
- package/src/partials/tabs-container.html +0 -290
- package/src/partials/tags-container.html +0 -242
- package/src/partials/techstack-bucket-container.html +0 -187
- package/src/partials/testimonials-container.html +0 -88
- package/src/partials/tiles-container.html +0 -247
- package/src/partials/timelines-container.html +0 -196
- package/src/partials/typography-container.html +0 -74
- package/src/partials/utilities-container.html +0 -553
|
@@ -1,553 +0,0 @@
|
|
|
1
|
-
<h3 class="mw-section-subtitle">Utilities</h3>
|
|
2
|
-
<p class="mw-text-muted mw-text-measure">
|
|
3
|
-
The classes that do exactly one thing: spacing, flex, display, text,
|
|
4
|
-
elevation, aspect ratio. Worth checking before writing a rule of your own -
|
|
5
|
-
most one-off styles in an application turn out to be a utility that already
|
|
6
|
-
exists.
|
|
7
|
-
</p>
|
|
8
|
-
|
|
9
|
-
<div class="mw-grid-3-lg">
|
|
10
|
-
<div>
|
|
11
|
-
<h3 class="mw-mb-4">Spacing Utilities</h3>
|
|
12
|
-
<div class="mw-card mw-card-simple mw-mb-0">No margin bottom</div>
|
|
13
|
-
<div class="mw-card mw-card-simple mw-mb-2">Small margin bottom</div>
|
|
14
|
-
<div class="mw-card mw-card-simple mw-mb-4">Medium margin bottom</div>
|
|
15
|
-
<div class="mw-card mw-card-simple mw-mb-6">Large margin bottom</div>
|
|
16
|
-
|
|
17
|
-
<div class="mw-card mw-card-simple mw-p-2">Small padding</div>
|
|
18
|
-
<div class="mw-card mw-card-simple mw-p-4 mw-mt-4">Medium padding</div>
|
|
19
|
-
<div class="mw-card mw-card-simple mw-p-6 mw-mt-4">Large padding</div>
|
|
20
|
-
|
|
21
|
-
<h4 class="mw-mt-6 mw-mb-2">Auto Margins</h4>
|
|
22
|
-
<p class="mw-text-muted mw-text-sm mw-mb-3">
|
|
23
|
-
Every margin utility also takes <code>auto</code> -
|
|
24
|
-
<code>mw-mx-auto</code> centers a block, <code>mw-ml-auto</code> pushes a
|
|
25
|
-
flex item to the far side.
|
|
26
|
-
</p>
|
|
27
|
-
|
|
28
|
-
<div class="mw-card mw-card-simple mw-mb-4">
|
|
29
|
-
<div
|
|
30
|
-
class="mw-card mw-card-simple mw-corner-plain mw-mx-auto"
|
|
31
|
-
style="width: 60%"
|
|
32
|
-
>
|
|
33
|
-
mw-mx-auto
|
|
34
|
-
</div>
|
|
35
|
-
</div>
|
|
36
|
-
|
|
37
|
-
<div
|
|
38
|
-
class="mw-card mw-card-simple mw-corner-plain mw-d-flex mw-items-center mw-gap-3"
|
|
39
|
-
>
|
|
40
|
-
<span>Left</span>
|
|
41
|
-
<span class="mw-tag mw-tag-primary mw-ml-auto">mw-ml-auto</span>
|
|
42
|
-
</div>
|
|
43
|
-
</div>
|
|
44
|
-
|
|
45
|
-
<div>
|
|
46
|
-
<h3 class="mw-mb-4">Display & Flex Utilities</h3>
|
|
47
|
-
|
|
48
|
-
<div class="mw-card mw-card-simple mw-mb-4">
|
|
49
|
-
<h4 class="mw-mb-2">Flex Row</h4>
|
|
50
|
-
<div class="mw-d-flex mw-justify-between mw-gap-3">
|
|
51
|
-
<div class="mw-card mw-card-simple mw-p-2 mw-corner-plain">Item 1</div>
|
|
52
|
-
<div class="mw-card mw-card-simple mw-p-2 mw-corner-plain">Item 2</div>
|
|
53
|
-
<div class="mw-card mw-card-simple mw-p-2 mw-corner-plain">Item 3</div>
|
|
54
|
-
</div>
|
|
55
|
-
</div>
|
|
56
|
-
|
|
57
|
-
<div class="mw-card mw-card-simple mw-mb-4">
|
|
58
|
-
<h4 class="mw-mb-2">Flex Column</h4>
|
|
59
|
-
<div class="mw-d-flex mw-flex-column mw-gap-3">
|
|
60
|
-
<div class="mw-card mw-card-simple mw-p-2 mw-corner-plain">Item 1</div>
|
|
61
|
-
<div class="mw-card mw-card-simple mw-p-2 mw-corner-plain">Item 2</div>
|
|
62
|
-
<div class="mw-card mw-card-simple mw-p-2 mw-corner-plain">Item 3</div>
|
|
63
|
-
</div>
|
|
64
|
-
</div>
|
|
65
|
-
|
|
66
|
-
<div class="mw-card mw-card-simple mw-mb-4">
|
|
67
|
-
<h4 class="mw-mb-2">Alignment</h4>
|
|
68
|
-
<div
|
|
69
|
-
class="mw-d-flex mw-justify-center mw-items-center mw-gap-3"
|
|
70
|
-
style="height: 90px"
|
|
71
|
-
>
|
|
72
|
-
<div class="mw-card mw-card-simple mw-p-2 mw-corner-plain">
|
|
73
|
-
Centered
|
|
74
|
-
</div>
|
|
75
|
-
<div class="mw-card mw-card-simple mw-p-2 mw-corner-plain">
|
|
76
|
-
Centered
|
|
77
|
-
</div>
|
|
78
|
-
</div>
|
|
79
|
-
</div>
|
|
80
|
-
|
|
81
|
-
<div class="mw-card mw-card-simple">
|
|
82
|
-
<h4 class="mw-mb-2">Align Self</h4>
|
|
83
|
-
<p class="mw-text-muted mw-text-sm mw-mb-3">
|
|
84
|
-
<code>mw-items-*</code> sets the rule for the whole container,
|
|
85
|
-
<code>mw-self-*</code> lets a single child break out of it.
|
|
86
|
-
</p>
|
|
87
|
-
<div class="mw-d-flex mw-items-stretch mw-gap-3" style="height: 130px">
|
|
88
|
-
<div class="mw-card mw-card-simple mw-p-2 mw-corner-plain">stretch</div>
|
|
89
|
-
<div
|
|
90
|
-
class="mw-card mw-card-simple mw-p-2 mw-self-start mw-corner-plain"
|
|
91
|
-
>
|
|
92
|
-
start
|
|
93
|
-
</div>
|
|
94
|
-
<div
|
|
95
|
-
class="mw-card mw-card-simple mw-p-2 mw-self-center mw-corner-plain"
|
|
96
|
-
>
|
|
97
|
-
center
|
|
98
|
-
</div>
|
|
99
|
-
<div class="mw-card mw-card-simple mw-p-2 mw-self-end mw-corner-plain">
|
|
100
|
-
end
|
|
101
|
-
</div>
|
|
102
|
-
</div>
|
|
103
|
-
</div>
|
|
104
|
-
</div>
|
|
105
|
-
|
|
106
|
-
<div>
|
|
107
|
-
<h3 class="mw-mb-4">Gap Utilities</h3>
|
|
108
|
-
<div class="mw-card mw-card-simple">
|
|
109
|
-
<h4 class="mw-mb-3">Different Gap Sizes (from 0 - 14)</h4>
|
|
110
|
-
|
|
111
|
-
<div class="mw-mb-4">
|
|
112
|
-
<p class="mw-mb-2">Small gap (gap-2)</p>
|
|
113
|
-
<div class="mw-d-flex mw-gap-2 mw-flex-wrap">
|
|
114
|
-
<div class="mw-card mw-card-simple mw-corner-plain">Item</div>
|
|
115
|
-
<div class="mw-card mw-card-simple mw-corner-plain">Item</div>
|
|
116
|
-
<div class="mw-card mw-card-simple mw-corner-plain">Item</div>
|
|
117
|
-
<div class="mw-card mw-card-simple mw-corner-plain">Item</div>
|
|
118
|
-
</div>
|
|
119
|
-
</div>
|
|
120
|
-
|
|
121
|
-
<div class="mw-mb-4">
|
|
122
|
-
<p class="mw-mb-2">Medium gap (gap-4)</p>
|
|
123
|
-
<div class="mw-d-flex mw-gap-4 mw-flex-wrap">
|
|
124
|
-
<div class="mw-card mw-card-simple mw-corner-plain">Item</div>
|
|
125
|
-
<div class="mw-card mw-card-simple mw-corner-plain">Item</div>
|
|
126
|
-
<div class="mw-card mw-card-simple mw-corner-plain">Item</div>
|
|
127
|
-
<div class="mw-card mw-card-simple mw-corner-plain">Item</div>
|
|
128
|
-
</div>
|
|
129
|
-
</div>
|
|
130
|
-
|
|
131
|
-
<div>
|
|
132
|
-
<p class="mw-mb-2">Large gap (gap-7)</p>
|
|
133
|
-
<div class="mw-d-flex mw-gap-7 mw-flex-wrap">
|
|
134
|
-
<div class="mw-card mw-card-simple mw-corner-plain">Item</div>
|
|
135
|
-
<div class="mw-card mw-card-simple mw-corner-plain">Item</div>
|
|
136
|
-
<div class="mw-card mw-card-simple mw-corner-plain">Item</div>
|
|
137
|
-
<div class="mw-card mw-card-simple mw-corner-plain">Item</div>
|
|
138
|
-
</div>
|
|
139
|
-
</div>
|
|
140
|
-
</div>
|
|
141
|
-
</div>
|
|
142
|
-
</div>
|
|
143
|
-
|
|
144
|
-
<h3 class="mw-mb-4 mw-mt-6">Split Rows</h3>
|
|
145
|
-
<p class="mw-text-muted">
|
|
146
|
-
The most common row in any interface: what it is on the left, the value or the
|
|
147
|
-
action on the right. <code>mw-row-split</code> wraps, so on a narrow screen
|
|
148
|
-
the right half drops below instead of squashing the left one.
|
|
149
|
-
<code>mw-row-split-center</code> switches from baseline to center alignment,
|
|
150
|
-
for a row that mixes text with a button or an icon.
|
|
151
|
-
</p>
|
|
152
|
-
<div class="mw-grid-2-lg">
|
|
153
|
-
<div class="mw-card mw-card-simple">
|
|
154
|
-
<div class="mw-row-split mw-mb-4">
|
|
155
|
-
<strong>Invoice 2026-0042</strong>
|
|
156
|
-
<span class="mw-text-currency">1,204.50</span>
|
|
157
|
-
</div>
|
|
158
|
-
<div class="mw-row-split mw-mb-4">
|
|
159
|
-
<span class="mw-text-muted">Due date</span>
|
|
160
|
-
<span>19.09.2026</span>
|
|
161
|
-
</div>
|
|
162
|
-
<div class="mw-row-split">
|
|
163
|
-
<span class="mw-text-muted">Status</span>
|
|
164
|
-
<span class="mw-tag mw-tag-neutral">XRechnung</span>
|
|
165
|
-
</div>
|
|
166
|
-
</div>
|
|
167
|
-
|
|
168
|
-
<div class="mw-card mw-card-simple">
|
|
169
|
-
<div class="mw-row-split mw-row-split-center mw-mb-4">
|
|
170
|
-
<h4>Team members</h4>
|
|
171
|
-
<button type="button" class="mw-btn mw-btn-sm mw-btn-primary">
|
|
172
|
-
<i class="fas fa-plus"></i>
|
|
173
|
-
Add
|
|
174
|
-
</button>
|
|
175
|
-
</div>
|
|
176
|
-
<div class="mw-row-split mw-row-split-center">
|
|
177
|
-
<span><i class="fas fa-user mw-mr-2"></i>Alex Fischer</span>
|
|
178
|
-
<button
|
|
179
|
-
type="button"
|
|
180
|
-
class="mw-btn-mini mw-btn-mini-danger"
|
|
181
|
-
aria-label="Remove Alex Fischer"
|
|
182
|
-
>
|
|
183
|
-
<i class="fas fa-times"></i>
|
|
184
|
-
</button>
|
|
185
|
-
</div>
|
|
186
|
-
</div>
|
|
187
|
-
</div>
|
|
188
|
-
|
|
189
|
-
<h3 class="mw-mb-4 mw-mt-6">Numbers</h3>
|
|
190
|
-
<p class="mw-text-muted">
|
|
191
|
-
<code>mw-text-numeric</code> gives fixed-width digits and nothing else - for a
|
|
192
|
-
clock, a counter or an ID that must not jitter while it changes.
|
|
193
|
-
<code>mw-text-currency</code> adds right alignment and prevents wrapping
|
|
194
|
-
mid-number, which is what a money column in a table wants.
|
|
195
|
-
</p>
|
|
196
|
-
<div class="mw-card mw-card-simple">
|
|
197
|
-
<div class="mw-row-split mw-mb-4">
|
|
198
|
-
<span>Elapsed <code>mw-text-numeric</code></span>
|
|
199
|
-
<span class="mw-text-numeric">00:11:38</span>
|
|
200
|
-
</div>
|
|
201
|
-
<div class="mw-row-split">
|
|
202
|
-
<span>Total <code>mw-text-currency</code></span>
|
|
203
|
-
<span class="mw-text-currency">15,930.25</span>
|
|
204
|
-
</div>
|
|
205
|
-
</div>
|
|
206
|
-
|
|
207
|
-
<h3 class="mw-mb-4 mw-mt-6">Screen Reader Only</h3>
|
|
208
|
-
<p class="mw-text-muted">
|
|
209
|
-
<code>mw-sr-only</code> hides text visually but keeps it in the accessibility
|
|
210
|
-
tree - the label an icon-only button still owes its user.
|
|
211
|
-
<code>display: none</code> would not do: it drops the element out of that tree
|
|
212
|
-
as well. The two buttons below look identical; only one of them says what it
|
|
213
|
-
does.
|
|
214
|
-
</p>
|
|
215
|
-
<div class="mw-card mw-card-simple">
|
|
216
|
-
<div class="mw-d-flex mw-items-center mw-gap-4">
|
|
217
|
-
<button type="button" class="mw-btn mw-btn-outline mw-btn-sm">
|
|
218
|
-
<i class="fas fa-trash"></i>
|
|
219
|
-
<span class="mw-sr-only">Delete invoice 2026-0042</span>
|
|
220
|
-
</button>
|
|
221
|
-
<code><span class="mw-sr-only">Delete invoice</span></code>
|
|
222
|
-
</div>
|
|
223
|
-
</div>
|
|
224
|
-
|
|
225
|
-
<h3 class="mw-mb-4 mw-mt-6">Tooltips</h3>
|
|
226
|
-
<p class="mw-text-muted">
|
|
227
|
-
Put <code>data-tooltip="..."</code> on any element - pure CSS, no script
|
|
228
|
-
needed. The bubble sits above the element on hover or keyboard focus and long
|
|
229
|
-
text wraps instead of running off in one endless line. It reaches outside a
|
|
230
|
-
card, because cards only clip their content when they carry a ribbon. What
|
|
231
|
-
does still cut it off: a scroll container, and the edge of the screen.
|
|
232
|
-
</p>
|
|
233
|
-
<p class="mw-text-muted">
|
|
234
|
-
Add <code>mw-tooltip-below</code> to put it underneath instead - for a control
|
|
235
|
-
in a fixed header, where above is off the screen.
|
|
236
|
-
<code>mw-tooltip-end</code> and <code>mw-tooltip-start</code> line the bubble
|
|
237
|
-
up with that edge of the trigger rather than centring it, for a trigger close
|
|
238
|
-
to the side of the screen. The two axes combine, and the arrow keeps pointing
|
|
239
|
-
at the trigger by itself.
|
|
240
|
-
</p>
|
|
241
|
-
<div class="mw-card mw-card-simple">
|
|
242
|
-
<p class="mw-mb-4">
|
|
243
|
-
Works on inline elements too:
|
|
244
|
-
<a href="#utilities" data-tooltip="A link">a link</a>,
|
|
245
|
-
<code data-tooltip="Some code">a code span</code> or
|
|
246
|
-
<i class="fas fa-circle-info" data-tooltip="An icon"></i> an icon.
|
|
247
|
-
</p>
|
|
248
|
-
<div class="mw-d-flex mw-gap-4 mw-flex-wrap">
|
|
249
|
-
<button
|
|
250
|
-
type="button"
|
|
251
|
-
class="mw-btn mw-btn-outline"
|
|
252
|
-
data-tooltip="Hover or focus me"
|
|
253
|
-
>
|
|
254
|
-
A button
|
|
255
|
-
</button>
|
|
256
|
-
<span class="mw-tag mw-tag-primary" data-tooltip="Tags work as well">
|
|
257
|
-
Tag
|
|
258
|
-
</span>
|
|
259
|
-
<span
|
|
260
|
-
class="mw-tag mw-tag-success"
|
|
261
|
-
data-tooltip="Long text wraps at 280px instead of running off the screen in one endless line"
|
|
262
|
-
>
|
|
263
|
-
Long text
|
|
264
|
-
</span>
|
|
265
|
-
<button
|
|
266
|
-
type="button"
|
|
267
|
-
class="mw-btn mw-btn-outline mw-tooltip-below"
|
|
268
|
-
data-tooltip="This one sits underneath"
|
|
269
|
-
>
|
|
270
|
-
Below
|
|
271
|
-
</button>
|
|
272
|
-
<button
|
|
273
|
-
type="button"
|
|
274
|
-
class="mw-btn mw-btn-outline mw-tooltip-end"
|
|
275
|
-
data-tooltip="Right edge on the trigger's right edge"
|
|
276
|
-
>
|
|
277
|
-
End
|
|
278
|
-
</button>
|
|
279
|
-
<button
|
|
280
|
-
type="button"
|
|
281
|
-
class="mw-btn mw-btn-outline mw-tooltip-below mw-tooltip-end"
|
|
282
|
-
data-tooltip="Both at once, no extra rule needed"
|
|
283
|
-
>
|
|
284
|
-
Below + end
|
|
285
|
-
</button>
|
|
286
|
-
</div>
|
|
287
|
-
</div>
|
|
288
|
-
|
|
289
|
-
<h3 class="mw-mb-4 mw-mt-6">Text Overflow & Wrapping</h3>
|
|
290
|
-
<p class="mw-text-muted mw-text-measure">
|
|
291
|
-
The two ways a long string is cut short, and they are not interchangeable:
|
|
292
|
-
<code>mw-text-truncate</code> is one line ending in an ellipsis,
|
|
293
|
-
<code>mw-text-clamp-2</code> through <code>-5</code> is that many lines ending
|
|
294
|
-
in one. Truncation carries <code>min-width: 0</code> with it, which is the
|
|
295
|
-
reason it "does not work" nine times out of ten inside a flex row.
|
|
296
|
-
</p>
|
|
297
|
-
<div class="mw-grid-2 mw-gap-6">
|
|
298
|
-
<div class="mw-card mw-card-simple">
|
|
299
|
-
<h4 class="mw-text-medium mw-mb-2"><code>mw-text-truncate</code></h4>
|
|
300
|
-
<p class="mw-text-truncate">
|
|
301
|
-
One line only: this sentence is far longer than the box it has been given
|
|
302
|
-
and ends in an ellipsis rather than wrapping.
|
|
303
|
-
</p>
|
|
304
|
-
<h4 class="mw-text-medium mw-mb-2 mw-mt-5">
|
|
305
|
-
<code>mw-text-clamp-2</code>
|
|
306
|
-
</h4>
|
|
307
|
-
<p class="mw-text-clamp-2">
|
|
308
|
-
Two lines and then an ellipsis. This paragraph runs on for long enough
|
|
309
|
-
that the third line is cut off, which is what a card preview or a list
|
|
310
|
-
subtitle wants when the copy is not yours to control.
|
|
311
|
-
</p>
|
|
312
|
-
<h4 class="mw-text-medium mw-mb-2 mw-mt-5">
|
|
313
|
-
<code>mw-text-break</code>
|
|
314
|
-
</h4>
|
|
315
|
-
<p class="mw-text-break">
|
|
316
|
-
https://example.com/a/very/long/url/that/has/no/spaces/in/it/at/all/and/would/otherwise/push/the/page/sideways
|
|
317
|
-
</p>
|
|
318
|
-
</div>
|
|
319
|
-
<div class="mw-card mw-card-simple">
|
|
320
|
-
<h4 class="mw-text-medium mw-mb-2">
|
|
321
|
-
<code>mw-text-balance</code> and <code>mw-text-pretty</code>
|
|
322
|
-
</h4>
|
|
323
|
-
<p class="mw-text-muted mw-text-sm">
|
|
324
|
-
Headings get <code>balance</code> by default - it evens the lines out so
|
|
325
|
-
no headline leaves one word alone on the last one. Paragraphs get
|
|
326
|
-
<code>pretty</code>, which only prevents the orphan. Both are on already;
|
|
327
|
-
the classes are for anything the framework does not style itself.
|
|
328
|
-
</p>
|
|
329
|
-
<h4 class="mw-text-medium mw-mb-2 mw-mt-5">
|
|
330
|
-
<code>mw-text-eyebrow</code>
|
|
331
|
-
</h4>
|
|
332
|
-
<p class="mw-text-eyebrow mw-mb-1">Release notes</p>
|
|
333
|
-
<h4 class="mw-mb-0">The kicker above a heading</h4>
|
|
334
|
-
<h5 class="mw-text-medium mw-mb-2 mw-mt-5">
|
|
335
|
-
<code>mw-text-measure</code>
|
|
336
|
-
</h5>
|
|
337
|
-
<p class="mw-text-muted mw-text-sm mw-mb-0">
|
|
338
|
-
Caps a column at 68 characters. Past roughly 75 the eye loses the start of
|
|
339
|
-
the next line on the way back, which is why a full-width paragraph on a
|
|
340
|
-
desktop is harder to read than a narrow one.
|
|
341
|
-
</p>
|
|
342
|
-
</div>
|
|
343
|
-
</div>
|
|
344
|
-
|
|
345
|
-
<h3 class="mw-mb-4 mw-mt-6">Elevation</h3>
|
|
346
|
-
<p class="mw-text-muted mw-text-measure">
|
|
347
|
-
The same five-step ramp every component uses, as classes. Each level is two
|
|
348
|
-
shadows: a tight contact layer that gives the box weight, and a wide ambient
|
|
349
|
-
one that says how high it floats. One layer alone reads as a blur behind the
|
|
350
|
-
box - the pair reads as light. <code>mw-elevation-0</code> is explicitly flat,
|
|
351
|
-
for taking something off the page it normally floats above.
|
|
352
|
-
</p>
|
|
353
|
-
<div class="mw-grid-3 mw-gap-6">
|
|
354
|
-
<div class="mw-card mw-card-simple mw-elevation-1">
|
|
355
|
-
<h4 class="mw-text-medium mw-mb-1">1 · resting</h4>
|
|
356
|
-
<p class="mw-text-muted mw-text-sm mw-mb-0">
|
|
357
|
-
Inputs, tags, small controls.
|
|
358
|
-
</p>
|
|
359
|
-
</div>
|
|
360
|
-
<div class="mw-card mw-card-simple mw-elevation-2">
|
|
361
|
-
<h4 class="mw-text-medium mw-mb-1">2 · raised</h4>
|
|
362
|
-
<p class="mw-text-muted mw-text-sm mw-mb-0">Cards and panels at rest.</p>
|
|
363
|
-
</div>
|
|
364
|
-
<div class="mw-card mw-card-simple mw-elevation-3">
|
|
365
|
-
<h4 class="mw-text-medium mw-mb-1">3 · floating</h4>
|
|
366
|
-
<p class="mw-text-muted mw-text-sm mw-mb-0">A card under the pointer.</p>
|
|
367
|
-
</div>
|
|
368
|
-
<div class="mw-card mw-card-simple mw-elevation-4">
|
|
369
|
-
<h4 class="mw-text-medium mw-mb-1">4 · overlay</h4>
|
|
370
|
-
<p class="mw-text-muted mw-text-sm mw-mb-0">Dropdowns, popovers, drawer.</p>
|
|
371
|
-
</div>
|
|
372
|
-
<div class="mw-card mw-card-simple mw-elevation-5">
|
|
373
|
-
<h4 class="mw-text-medium mw-mb-1">5 · modal</h4>
|
|
374
|
-
<p class="mw-text-muted mw-text-sm mw-mb-0">The dialog over everything.</p>
|
|
375
|
-
</div>
|
|
376
|
-
<div class="mw-card mw-card-simple mw-elevation-0">
|
|
377
|
-
<h4 class="mw-text-medium mw-mb-1">0 · flat</h4>
|
|
378
|
-
<p class="mw-text-muted mw-text-sm mw-mb-0">Explicitly on the page.</p>
|
|
379
|
-
</div>
|
|
380
|
-
</div>
|
|
381
|
-
|
|
382
|
-
<h3 class="mw-mb-4 mw-mt-6">Glow</h3>
|
|
383
|
-
<p class="mw-text-muted mw-text-measure">
|
|
384
|
-
The other half of the lighting model: elevation says how far a surface floats
|
|
385
|
-
above the page, a glow says it is the thing giving off the light. Two layers
|
|
386
|
-
like elevation, and both without an offset - light does not fall downwards,
|
|
387
|
-
which is the whole difference between this and a coloured shadow. For the one
|
|
388
|
-
element on a screen that has to be looked at first, and for nothing else. Bare
|
|
389
|
-
<code>mw-glow</code> is the primary one.
|
|
390
|
-
</p>
|
|
391
|
-
<div class="mw-grid-3 mw-gap-6">
|
|
392
|
-
<div class="mw-card mw-card-simple mw-glow-primary">
|
|
393
|
-
<h4 class="mw-text-medium mw-mb-1">primary</h4>
|
|
394
|
-
<p class="mw-text-muted mw-text-sm mw-mb-0">The brand, and the default.</p>
|
|
395
|
-
</div>
|
|
396
|
-
<div class="mw-card mw-card-simple mw-glow-secondary">
|
|
397
|
-
<h4 class="mw-text-medium mw-mb-1">secondary</h4>
|
|
398
|
-
<p class="mw-text-muted mw-text-sm mw-mb-0">The second brand tone.</p>
|
|
399
|
-
</div>
|
|
400
|
-
<div class="mw-card mw-card-simple mw-glow-info">
|
|
401
|
-
<h4 class="mw-text-medium mw-mb-1">info</h4>
|
|
402
|
-
<p class="mw-text-muted mw-text-sm mw-mb-0">Something worth reading.</p>
|
|
403
|
-
</div>
|
|
404
|
-
<div class="mw-card mw-card-simple mw-glow-success">
|
|
405
|
-
<h4 class="mw-text-medium mw-mb-1">success</h4>
|
|
406
|
-
<p class="mw-text-muted mw-text-sm mw-mb-0">It worked - say so once.</p>
|
|
407
|
-
</div>
|
|
408
|
-
<div class="mw-card mw-card-simple mw-glow-warning">
|
|
409
|
-
<h4 class="mw-text-medium mw-mb-1">warning</h4>
|
|
410
|
-
<p class="mw-text-muted mw-text-sm mw-mb-0">Check this before going on.</p>
|
|
411
|
-
</div>
|
|
412
|
-
<div class="mw-card mw-card-simple mw-glow-danger">
|
|
413
|
-
<h4 class="mw-text-medium mw-mb-1">danger</h4>
|
|
414
|
-
<p class="mw-text-muted mw-text-sm mw-mb-0">
|
|
415
|
-
The one that cannot be undone.
|
|
416
|
-
</p>
|
|
417
|
-
</div>
|
|
418
|
-
</div>
|
|
419
|
-
|
|
420
|
-
<h3 class="mw-mb-4 mw-mt-6">Responsive Display</h3>
|
|
421
|
-
<p class="mw-text-muted mw-text-measure">
|
|
422
|
-
Mobile-first and min-width, like everything else here.
|
|
423
|
-
<code>mw-d-md-flex</code> means "flex from the md breakpoint up", and the
|
|
424
|
-
unprefixed class beside it is what applies below that - the pair
|
|
425
|
-
<code>mw-d-none mw-d-md-flex</code> is hidden on a phone and a row from a
|
|
426
|
-
tablet on. Variants exist for <code>sm</code>, <code>md</code>,
|
|
427
|
-
<code>lg</code> and <code>xl</code>.
|
|
428
|
-
</p>
|
|
429
|
-
<div class="mw-card mw-card-simple">
|
|
430
|
-
<div class="mw-row-split mw-row-split-center">
|
|
431
|
-
<code>mw-hide-mobile</code>
|
|
432
|
-
<span class="mw-hide-mobile mw-badge mw-badge-success">visible now</span>
|
|
433
|
-
<span class="mw-hide-desktop mw-badge mw-badge-muted">hidden below md</span>
|
|
434
|
-
</div>
|
|
435
|
-
<hr class="mw-divider" />
|
|
436
|
-
<div class="mw-row-split mw-row-split-center">
|
|
437
|
-
<code>mw-hide-desktop</code>
|
|
438
|
-
<span class="mw-hide-desktop mw-badge mw-badge-success">visible now</span>
|
|
439
|
-
<span class="mw-hide-mobile mw-badge mw-badge-muted"
|
|
440
|
-
>hidden from md up</span
|
|
441
|
-
>
|
|
442
|
-
</div>
|
|
443
|
-
<p class="mw-text-muted mw-text-sm mw-mt-4 mw-mb-0">
|
|
444
|
-
Resize the window past 768px to see the two swap.
|
|
445
|
-
</p>
|
|
446
|
-
</div>
|
|
447
|
-
|
|
448
|
-
<h3 class="mw-mb-4 mw-mt-6">Aspect Ratio</h3>
|
|
449
|
-
<p class="mw-text-muted mw-text-measure">
|
|
450
|
-
Reserves the box before the image inside it has loaded, which is the whole
|
|
451
|
-
point: without it the page reflows when the picture arrives and everything
|
|
452
|
-
below jumps. The child fills the box and crops rather than stretching.
|
|
453
|
-
<code>mw-aspect-square</code>, <code>-video</code>, <code>-wide</code>,
|
|
454
|
-
<code>-portrait</code>, <code>-photo</code>.
|
|
455
|
-
</p>
|
|
456
|
-
<div class="mw-grid-3 mw-gap-4">
|
|
457
|
-
<div
|
|
458
|
-
class="mw-aspect-square mw-card mw-card-simple mw-d-flex mw-items-center mw-justify-center"
|
|
459
|
-
>
|
|
460
|
-
<code>square</code>
|
|
461
|
-
</div>
|
|
462
|
-
<div
|
|
463
|
-
class="mw-aspect-video mw-card mw-card-simple mw-d-flex mw-items-center mw-justify-center"
|
|
464
|
-
>
|
|
465
|
-
<code>video</code>
|
|
466
|
-
</div>
|
|
467
|
-
<div
|
|
468
|
-
class="mw-aspect-photo mw-card mw-card-simple mw-d-flex mw-items-center mw-justify-center"
|
|
469
|
-
>
|
|
470
|
-
<code>photo</code>
|
|
471
|
-
</div>
|
|
472
|
-
</div>
|
|
473
|
-
|
|
474
|
-
<h3 class="mw-mb-4 mw-mt-6">Squircle Corners</h3>
|
|
475
|
-
<p class="mw-text-muted mw-text-measure">
|
|
476
|
-
<code>mw-squircle</code> draws the framework silhouette with a superellipse
|
|
477
|
-
instead of a circular arc - same four radii, fuller curve. Opt-in, because
|
|
478
|
-
<code>corner-shape</code> only lands in Chromium so far; everywhere else the
|
|
479
|
-
card below is simply the normal one.
|
|
480
|
-
</p>
|
|
481
|
-
<div class="mw-grid-2 mw-gap-6">
|
|
482
|
-
<div class="mw-card mw-card-simple">
|
|
483
|
-
<strong>Default</strong>
|
|
484
|
-
<p class="mw-text-muted mw-text-sm mw-mb-0">Circular corner radii.</p>
|
|
485
|
-
</div>
|
|
486
|
-
<div class="mw-card mw-card-simple mw-squircle">
|
|
487
|
-
<strong>mw-squircle</strong>
|
|
488
|
-
<p class="mw-text-muted mw-text-sm mw-mb-0">
|
|
489
|
-
Superellipse, corner accent follows.
|
|
490
|
-
</p>
|
|
491
|
-
</div>
|
|
492
|
-
</div>
|
|
493
|
-
|
|
494
|
-
<h3 class="mw-mb-4 mw-mt-6">Site-wide Variants</h3>
|
|
495
|
-
<p class="mw-text-muted mw-text-measure">
|
|
496
|
-
Twelve classes on <code><html></code> retune the whole look without
|
|
497
|
-
touching markup. They stack, and the palette button in the corner switches all
|
|
498
|
-
of them live - the box at the bottom of that panel prints the setup a project
|
|
499
|
-
would carry, and reads it back: paste one in to see someone else's.
|
|
500
|
-
</p>
|
|
501
|
-
<ul class="mw-list mw-list-dot mw-text-measure">
|
|
502
|
-
<li>
|
|
503
|
-
<code>mw-corners-even</code> - drops the surface signature; every panel
|
|
504
|
-
becomes an evenly rounded box
|
|
505
|
-
</li>
|
|
506
|
-
<li>
|
|
507
|
-
<code>mw-accent-single</code> - one brand colour instead of two,
|
|
508
|
-
<code>mw-btn-secondary</code> turns outline
|
|
509
|
-
</li>
|
|
510
|
-
<li>
|
|
511
|
-
<code>mw-shadows-flat</code> - elevation 1-3 to <code>none</code>, dropdown
|
|
512
|
-
and modal keep theirs
|
|
513
|
-
</li>
|
|
514
|
-
<li>
|
|
515
|
-
<code>mw-surfaces-flush</code> - cards, panels and footer on the page
|
|
516
|
-
colour, held by their border
|
|
517
|
-
</li>
|
|
518
|
-
<li>
|
|
519
|
-
<code>mw-hover-static</code> - no hover travels; colour and border still
|
|
520
|
-
respond
|
|
521
|
-
</li>
|
|
522
|
-
<li>
|
|
523
|
-
<code>mw-scroll-static</code> - no scroll entrance;
|
|
524
|
-
<code>mw-reveal</code> blocks sit where they land
|
|
525
|
-
</li>
|
|
526
|
-
<li>
|
|
527
|
-
<code>mw-sections-plain</code> - the hatch behind
|
|
528
|
-
<code>mw-section-alternate</code> collapses into the page colour
|
|
529
|
-
</li>
|
|
530
|
-
<li><code>mw-headings-caps</code> - h1 to h3 in capitals</li>
|
|
531
|
-
<li>
|
|
532
|
-
<code>mw-btn-pill</code> - fully rounded buttons, form fields keep their
|
|
533
|
-
radius
|
|
534
|
-
</li>
|
|
535
|
-
<li>
|
|
536
|
-
<code>mw-btn-square</code> - the other end of that axis: buttons cut to a
|
|
537
|
-
hard corner while the page keeps its radius
|
|
538
|
-
</li>
|
|
539
|
-
<li>
|
|
540
|
-
<code>mw-btn-tactile</code> - filled buttons stand on a darker edge and sink
|
|
541
|
-
onto it when pressed
|
|
542
|
-
</li>
|
|
543
|
-
<li>
|
|
544
|
-
<code>mw-btn-glass</code> - filled buttons become tinted glass with a lit
|
|
545
|
-
top edge
|
|
546
|
-
</li>
|
|
547
|
-
</ul>
|
|
548
|
-
<p class="mw-text-muted mw-text-measure">
|
|
549
|
-
Five properties do the rest: <code>--mw-radius-scale</code> multiplies every
|
|
550
|
-
radius and <code>--mw-root-font-size</code> the whole rem scale, plus
|
|
551
|
-
<code>--mw-font-family-heading</code>, <code>--mw-container-width</code> and
|
|
552
|
-
<code>--mw-section-padding-block</code>.
|
|
553
|
-
</p>
|