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.
Files changed (147) hide show
  1. package/README.md +2 -2
  2. package/maverick-wave.min.css +2 -2
  3. package/package.json +8 -2
  4. package/src/scss/abstracts/_variables.scss +2 -0
  5. package/src/scss/components/_modals.scss +23 -9
  6. package/src/scss/components/_testimonial.scss +2 -0
  7. package/src/scss/layout/_home.scss +46 -0
  8. package/src/scss/layout/_main.scss +20 -0
  9. package/src/scss/layout/_parallax.scss +2 -2
  10. package/src/scss/main-lean.scss +8 -3
  11. package/.claude/settings.local.json +0 -43
  12. package/.claude/skills/mw-maverick-wave/SKILL.md +0 -532
  13. package/.claude/skills/mw-maverick-wave/examples/angular-form.md +0 -279
  14. package/.claude/skills/mw-maverick-wave/examples/angular-list-page.md +0 -309
  15. package/.claude/skills/mw-maverick-wave/examples/angular-services.md +0 -538
  16. package/.claude/skills/mw-maverick-wave/examples/static-landing-page.md +0 -530
  17. package/.claude/skills/mw-maverick-wave/references/components.md +0 -2170
  18. package/.claude/skills/mw-maverick-wave/references/forms.md +0 -358
  19. package/.claude/skills/mw-maverick-wave/references/javascript.md +0 -164
  20. package/.claude/skills/mw-maverick-wave/references/layout.md +0 -764
  21. package/.claude/skills/mw-maverick-wave/references/theming.md +0 -530
  22. package/.github/workflows/ci.yml +0 -41
  23. package/.idea/codeStyles/Project.xml +0 -59
  24. package/.idea/codeStyles/codeStyleConfig.xml +0 -5
  25. package/.idea/maverick-wave.iml +0 -12
  26. package/.idea/modules.xml +0 -8
  27. package/.idea/prettier.xml +0 -6
  28. package/.idea/vcs.xml +0 -6
  29. package/.prettierignore +0 -8
  30. package/.prettierrc.json +0 -7
  31. package/CHANGELOG.md +0 -956
  32. package/CLAUDE.md +0 -60
  33. package/gulpfile.js +0 -167
  34. package/index.html +0 -1730
  35. package/release.sh +0 -31
  36. package/scripts/verify.js +0 -252
  37. package/src/assets/favicon/apple-touch-icon.png +0 -0
  38. package/src/assets/favicon/favicon-96x96.png +0 -0
  39. package/src/assets/favicon/favicon.svg +0 -1
  40. package/src/assets/favicon/site.webmanifest +0 -37
  41. package/src/assets/favicon/web-app-manifest-192x192.png +0 -0
  42. package/src/assets/favicon/web-app-manifest-512x512.png +0 -0
  43. package/src/assets/favicon.ico +0 -0
  44. package/src/assets/header-logo.svg +0 -24
  45. package/src/assets/images/gallery-city.svg +0 -49
  46. package/src/assets/images/gallery-desert.svg +0 -25
  47. package/src/assets/images/gallery-forest.svg +0 -46
  48. package/src/assets/images/gallery-lake.svg +0 -26
  49. package/src/assets/images/gallery-mountain.svg +0 -19
  50. package/src/assets/images/gallery-ocean.svg +0 -26
  51. package/src/assets/images/gallery-oldtown.svg +0 -41
  52. package/src/assets/images/gallery-snow.svg +0 -39
  53. package/src/assets/images/photo-balloon.svg +0 -35
  54. package/src/assets/images/photo-forest-path.svg +0 -31
  55. package/src/assets/images/photo-lighthouse.svg +0 -42
  56. package/src/assets/images/photo-palm.svg +0 -27
  57. package/src/assets/images/photo-peak.svg +0 -27
  58. package/src/assets/images/photo-tower.svg +0 -34
  59. package/src/assets/images/photo-waterfall.svg +0 -32
  60. package/src/assets/images/slider-field.svg +0 -124
  61. package/src/assets/images/slider-forest.svg +0 -33
  62. package/src/assets/images/slider-lake.svg +0 -35
  63. package/src/assets/images/slider-mountains.svg +0 -29
  64. package/src/assets/images/slider-trees.svg +0 -41
  65. package/src/assets/images/story-aurora.svg +0 -36
  66. package/src/assets/images/story-beach.svg +0 -34
  67. package/src/assets/images/story-stars.svg +0 -35
  68. package/src/assets/images/tile-analytics.svg +0 -22
  69. package/src/assets/images/tile-cloud.svg +0 -19
  70. package/src/assets/images/tile-ecommerce.svg +0 -14
  71. package/src/assets/images/tile-enterprise.svg +0 -22
  72. package/src/assets/images/tile-marketing.svg +0 -16
  73. package/src/assets/media/demo-chime.wav +0 -0
  74. package/src/assets/media/story-sunrise.jpg +0 -0
  75. package/src/assets/media/story-sunrise.mp4 +0 -0
  76. package/src/partials/accordions-container.html +0 -179
  77. package/src/partials/alerts-container.html +0 -151
  78. package/src/partials/announcement-container.html +0 -67
  79. package/src/partials/avatars-container.html +0 -229
  80. package/src/partials/badges-container.html +0 -114
  81. package/src/partials/blog-posts-container.html +0 -158
  82. package/src/partials/breadcrumbs-container.html +0 -126
  83. package/src/partials/button-bar-container.html +0 -175
  84. package/src/partials/buttons-container.html +0 -272
  85. package/src/partials/calendar-container.html +0 -203
  86. package/src/partials/cards-container.html +0 -727
  87. package/src/partials/code-container.html +0 -194
  88. package/src/partials/colors-container.html +0 -263
  89. package/src/partials/coming-soon-container.html +0 -10
  90. package/src/partials/contact-container.html +0 -85
  91. package/src/partials/content-slider-container.html +0 -36
  92. package/src/partials/divider-container.html +0 -70
  93. package/src/partials/documentation-container.html +0 -204
  94. package/src/partials/dropdown-container.html +0 -119
  95. package/src/partials/empty-state-container.html +0 -79
  96. package/src/partials/feed-container.html +0 -506
  97. package/src/partials/footer-container.html +0 -113
  98. package/src/partials/form-container.html +0 -262
  99. package/src/partials/form-elements-container.html +0 -616
  100. package/src/partials/form-field-container.html +0 -166
  101. package/src/partials/gallery-container.html +0 -62
  102. package/src/partials/get-started-container.html +0 -423
  103. package/src/partials/grid-container.html +0 -191
  104. package/src/partials/header-container.html +0 -69
  105. package/src/partials/header-utilities-container.html +0 -331
  106. package/src/partials/highlights-container.html +0 -71
  107. package/src/partials/history-container.html +0 -67
  108. package/src/partials/home-container.html +0 -31
  109. package/src/partials/html-lists-container.html +0 -63
  110. package/src/partials/info-container.html +0 -104
  111. package/src/partials/input-group-container.html +0 -299
  112. package/src/partials/item-lists-container.html +0 -368
  113. package/src/partials/kanban-container.html +0 -459
  114. package/src/partials/kbd-container.html +0 -63
  115. package/src/partials/leader-row-container.html +0 -139
  116. package/src/partials/login-container.html +0 -65
  117. package/src/partials/lunch-menu-container.html +0 -341
  118. package/src/partials/media-container.html +0 -27
  119. package/src/partials/meta-info-container.html +0 -21
  120. package/src/partials/modals-container.html +0 -199
  121. package/src/partials/mosaic-container.html +0 -173
  122. package/src/partials/page-header-container.html +0 -78
  123. package/src/partials/pagination-container.html +0 -64
  124. package/src/partials/palette-container.html +0 -480
  125. package/src/partials/panels-container.html +0 -126
  126. package/src/partials/parallax-container.html +0 -147
  127. package/src/partials/portrait-gallery-container.html +0 -175
  128. package/src/partials/preview-container.html +0 -136
  129. package/src/partials/pricing-container.html +0 -523
  130. package/src/partials/progress-container.html +0 -230
  131. package/src/partials/prose-container.html +0 -43
  132. package/src/partials/ratings-container.html +0 -104
  133. package/src/partials/section-head-container.html +0 -77
  134. package/src/partials/segmented-container.html +0 -66
  135. package/src/partials/skeleton-container.html +0 -87
  136. package/src/partials/spinners-container.html +0 -96
  137. package/src/partials/stepper-container.html +0 -111
  138. package/src/partials/stories-container.html +0 -182
  139. package/src/partials/tables-container.html +0 -309
  140. package/src/partials/tabs-container.html +0 -290
  141. package/src/partials/tags-container.html +0 -242
  142. package/src/partials/techstack-bucket-container.html +0 -187
  143. package/src/partials/testimonials-container.html +0 -88
  144. package/src/partials/tiles-container.html +0 -247
  145. package/src/partials/timelines-container.html +0 -196
  146. package/src/partials/typography-container.html +0 -74
  147. 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>&lt;span class="mw-sr-only"&gt;Delete invoice&lt;/span&gt;</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 &amp; 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 &middot; 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 &middot; 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 &middot; 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 &middot; 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 &middot; 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 &middot; 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>&lt;html&gt;</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>