maverick-wave 4.28.0 → 5.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (138) hide show
  1. package/.claude/settings.local.json +29 -1
  2. package/.claude/skills/mw-maverick-wave/SKILL.md +39 -24
  3. package/.claude/skills/mw-maverick-wave/examples/angular-services.md +16 -4
  4. package/.claude/skills/mw-maverick-wave/examples/static-landing-page.md +13 -4
  5. package/.claude/skills/mw-maverick-wave/references/components.md +42 -5
  6. package/.claude/skills/mw-maverick-wave/references/forms.md +14 -2
  7. package/.claude/skills/mw-maverick-wave/references/javascript.md +17 -4
  8. package/.claude/skills/mw-maverick-wave/references/layout.md +53 -19
  9. package/.claude/skills/mw-maverick-wave/references/theming.md +38 -1
  10. package/.impeccable/config.local.json +5 -0
  11. package/.impeccable/hook.cache.json +1 -0
  12. package/CHANGELOG.md +11 -0
  13. package/CLAUDE.md +5 -5
  14. package/README.md +48 -4
  15. package/index.html +19 -38
  16. package/maverick-wave.min.css +14 -12
  17. package/maverick-wave.min.js +1 -1
  18. package/package.json +2 -2
  19. package/scripts/verify.js +27 -2
  20. package/src/js/main.js +223 -83
  21. package/src/partials/accordions-container.html +6 -10
  22. package/src/partials/alerts-container.html +6 -6
  23. package/src/partials/announcement-container.html +5 -5
  24. package/src/partials/avatars-container.html +85 -17
  25. package/src/partials/badges-container.html +6 -6
  26. package/src/partials/blog-posts-container.html +11 -12
  27. package/src/partials/buttons-container.html +3 -3
  28. package/src/partials/cards-container.html +26 -9
  29. package/src/partials/code-container.html +5 -5
  30. package/src/partials/content-slider-container.html +5 -4
  31. package/src/partials/divider-container.html +7 -7
  32. package/src/partials/dropdown-container.html +2 -2
  33. package/src/partials/empty-state-container.html +5 -5
  34. package/src/partials/footer-container.html +21 -18
  35. package/src/partials/form-elements-container.html +14 -14
  36. package/src/partials/gallery-container.html +16 -8
  37. package/src/partials/get-started-container.html +4 -8
  38. package/src/partials/header-container.html +18 -7
  39. package/src/partials/home-container.html +10 -20
  40. package/src/partials/input-group-container.html +11 -2
  41. package/src/partials/kbd-container.html +1 -1
  42. package/src/partials/login-container.html +5 -1
  43. package/src/partials/media-container.html +2 -2
  44. package/src/partials/modals-container.html +22 -32
  45. package/src/partials/pricing-container.html +9 -9
  46. package/src/partials/skeleton-container.html +6 -6
  47. package/src/partials/stepper-container.html +2 -2
  48. package/src/partials/tables-container.html +12 -12
  49. package/src/partials/tabs-container.html +17 -27
  50. package/src/partials/tags-container.html +23 -17
  51. package/src/partials/techstack-bucket-container.html +13 -0
  52. package/src/partials/tiles-container.html +26 -9
  53. package/src/partials/typography-container.html +7 -6
  54. package/src/partials/utilities-container.html +35 -15
  55. package/src/scss/_layers.scss +10 -0
  56. package/src/scss/abstracts/_index.scss +6 -0
  57. package/src/scss/abstracts/_mixins.scss +61 -153
  58. package/src/scss/abstracts/_variables.scss +123 -319
  59. package/src/scss/base/_base.scss +170 -190
  60. package/src/scss/base/_reset.scss +106 -104
  61. package/src/scss/base/_typography.scss +153 -151
  62. package/src/scss/components/_accordions.scss +97 -97
  63. package/src/scss/components/_alerts.scss +71 -70
  64. package/src/scss/components/_announcement.scss +71 -70
  65. package/src/scss/components/_avatars.scss +130 -142
  66. package/src/scss/components/_badge.scss +131 -132
  67. package/src/scss/components/_blog-post.scss +223 -220
  68. package/src/scss/components/_breadcrumbs.scss +93 -92
  69. package/src/scss/components/_button-bar.scss +102 -110
  70. package/src/scss/components/_buttons.scss +319 -324
  71. package/src/scss/components/_calendar.scss +251 -252
  72. package/src/scss/components/_cards.scss +359 -386
  73. package/src/scss/components/_code.scss +190 -194
  74. package/src/scss/components/_coming-soon.scss +77 -75
  75. package/src/scss/components/_content-slider.scss +90 -89
  76. package/src/scss/components/_divider.scss +55 -53
  77. package/src/scss/components/_dropdown.scss +179 -185
  78. package/src/scss/components/_empty-state.scss +57 -57
  79. package/src/scss/components/_flag.scss +294 -278
  80. package/src/scss/components/_gallery.scss +131 -133
  81. package/src/scss/components/_info.scss +151 -167
  82. package/src/scss/components/_kanban.scss +332 -341
  83. package/src/scss/components/_kbd.scss +40 -38
  84. package/src/scss/components/_lang-switch.scss +89 -97
  85. package/src/scss/components/_links.scss +21 -28
  86. package/src/scss/components/_lists.scss +510 -514
  87. package/src/scss/components/_localhost-indicator.scss +26 -24
  88. package/src/scss/components/_media.scss +22 -20
  89. package/src/scss/components/_meta-info.scss +35 -33
  90. package/src/scss/components/_modals.scss +277 -186
  91. package/src/scss/components/_pagination.scss +81 -87
  92. package/src/scss/components/_panels.scss +99 -97
  93. package/src/scss/components/_pricing.scss +183 -241
  94. package/src/scss/components/_progress.scss +112 -89
  95. package/src/scss/components/_prose.scss +35 -33
  96. package/src/scss/components/_ratings.scss +40 -38
  97. package/src/scss/components/_segmented.scss +82 -84
  98. package/src/scss/components/_skeleton.scss +66 -72
  99. package/src/scss/components/_spinners.scss +155 -159
  100. package/src/scss/components/_stepper.scss +116 -116
  101. package/src/scss/components/_tables.scss +155 -148
  102. package/src/scss/components/_tabs.scss +232 -141
  103. package/src/scss/components/_tags.scss +109 -107
  104. package/src/scss/components/_techstack-bucket.scss +123 -122
  105. package/src/scss/components/_testimonial.scss +72 -70
  106. package/src/scss/components/_theme-toggle.scss +53 -51
  107. package/src/scss/components/_tiles.scss +174 -174
  108. package/src/scss/components/_timelines.scss +282 -280
  109. package/src/scss/components/_toasts.scss +66 -72
  110. package/src/scss/form-elements/_checkbox.scss +117 -132
  111. package/src/scss/form-elements/_form.scss +149 -115
  112. package/src/scss/form-elements/_input-group.scss +99 -103
  113. package/src/scss/form-elements/_input.scss +74 -74
  114. package/src/scss/form-elements/_login.scss +48 -48
  115. package/src/scss/form-elements/_prefilled.scss +53 -51
  116. package/src/scss/form-elements/_radio.scss +95 -107
  117. package/src/scss/form-elements/_select.scss +42 -42
  118. package/src/scss/form-elements/_slider.scss +117 -132
  119. package/src/scss/form-elements/_textarea.scss +68 -54
  120. package/src/scss/form-elements/_toggle.scss +127 -140
  121. package/src/scss/layout/_footer.scss +172 -171
  122. package/src/scss/layout/_grid.scss +268 -302
  123. package/src/scss/layout/_header.scss +426 -427
  124. package/src/scss/layout/_home.scss +28 -27
  125. package/src/scss/layout/_main.scss +275 -238
  126. package/src/scss/layout/_page-header.scss +38 -36
  127. package/src/scss/layout/_section.scss +150 -124
  128. package/src/scss/main.scss +1 -1
  129. package/src/scss/utilities/_accessibility.scss +46 -45
  130. package/src/scss/utilities/_aspect.scss +22 -20
  131. package/src/scss/utilities/_corner.scss +23 -5
  132. package/src/scss/utilities/_display.scss +76 -70
  133. package/src/scss/utilities/_elevation.scss +13 -11
  134. package/src/scss/utilities/_flex.scss +83 -85
  135. package/src/scss/utilities/_reveal.scss +40 -63
  136. package/src/scss/utilities/_spacing.scss +63 -64
  137. package/src/scss/utilities/_text.scss +139 -141
  138. package/src/scss/utilities/_touch-targets.scss +130 -147
@@ -18,7 +18,7 @@
18
18
  <button
19
19
  type="button"
20
20
  class="mw-btn-mini mw-btn-mini-danger mw-alert-close"
21
- onclick="this.closest('.mw-alert').remove()"
21
+ aria-label="Dismiss System Update"
22
22
  >
23
23
  <i class="fas fa-times"></i>
24
24
  </button>
@@ -36,7 +36,7 @@
36
36
  <button
37
37
  type="button"
38
38
  class="mw-btn-mini mw-btn-mini-danger mw-alert-close"
39
- onclick="this.closest('.mw-alert').remove()"
39
+ aria-label="Dismiss Notification"
40
40
  >
41
41
  <i class="fas fa-times"></i>
42
42
  </button>
@@ -54,7 +54,7 @@
54
54
  <button
55
55
  type="button"
56
56
  class="mw-btn-mini mw-btn-mini-danger mw-alert-close"
57
- onclick="this.closest('.mw-alert').remove()"
57
+ aria-label="Dismiss Profile Updated"
58
58
  >
59
59
  <i class="fas fa-times"></i>
60
60
  </button>
@@ -75,7 +75,7 @@
75
75
  <button
76
76
  type="button"
77
77
  class="mw-btn-mini mw-btn-mini-danger mw-alert-close"
78
- onclick="this.closest('.mw-alert').remove()"
78
+ aria-label="Dismiss Storage Low"
79
79
  >
80
80
  <i class="fas fa-times"></i>
81
81
  </button>
@@ -96,7 +96,7 @@
96
96
  <button
97
97
  type="button"
98
98
  class="mw-btn-mini mw-btn-mini-danger mw-alert-close"
99
- onclick="this.closest('.mw-alert').remove()"
99
+ aria-label="Dismiss Connection Failed"
100
100
  >
101
101
  <i class="fas fa-times"></i>
102
102
  </button>
@@ -117,7 +117,7 @@
117
117
  <button
118
118
  type="button"
119
119
  class="mw-btn-mini mw-btn-mini-danger mw-alert-close"
120
- onclick="this.closest('.mw-alert').remove()"
120
+ aria-label="Dismiss Did you know?"
121
121
  >
122
122
  <i class="fas fa-times"></i>
123
123
  </button>
@@ -12,10 +12,10 @@
12
12
 
13
13
  <div class="mw-grid-1 mw-gap-6">
14
14
  <div>
15
- <h5 class="mw-text-medium mw-mb-2">
15
+ <h4 class="mw-text-medium mw-mb-2">
16
16
  Default (primary) with highlight pill - over content, showing the 75%
17
17
  surface and the blur
18
- </h5>
18
+ </h4>
19
19
  <div
20
20
  style="
21
21
  background: url('images/slider-mountains.svg') center / cover;
@@ -32,7 +32,7 @@
32
32
  </div>
33
33
 
34
34
  <div>
35
- <h5 class="mw-text-medium mw-mb-2">Secondary</h5>
35
+ <h4 class="mw-text-medium mw-mb-2">Secondary</h4>
36
36
  <aside
37
37
  class="mw-announcement mw-announcement-secondary mw-announcement-static"
38
38
  >
@@ -44,7 +44,7 @@
44
44
  </div>
45
45
 
46
46
  <div>
47
- <h5 class="mw-text-medium mw-mb-2">Warning, without a link</h5>
47
+ <h4 class="mw-text-medium mw-mb-2">Warning, without a link</h4>
48
48
  <aside
49
49
  class="mw-announcement mw-announcement-warning mw-announcement-static"
50
50
  >
@@ -55,7 +55,7 @@
55
55
  </div>
56
56
 
57
57
  <div>
58
- <h5 class="mw-text-medium mw-mb-2">Danger</h5>
58
+ <h4 class="mw-text-medium mw-mb-2">Danger</h4>
59
59
  <aside
60
60
  class="mw-announcement mw-announcement-danger mw-announcement-static"
61
61
  >
@@ -11,19 +11,39 @@
11
11
  <div class="mw-card mw-card-simple">
12
12
  <div class="mw-grid-stack-center">
13
13
  <div class="mw-avatar mw-avatar-xs">
14
- <img src="https://i.pravatar.cc/150?img=1" alt="Avatar" />
14
+ <img
15
+ src="https://i.pravatar.cc/150?img=1"
16
+ alt="Avatar"
17
+ loading="lazy"
18
+ />
15
19
  </div>
16
20
  <div class="mw-avatar mw-avatar-sm">
17
- <img src="https://i.pravatar.cc/150?img=2" alt="Avatar" />
21
+ <img
22
+ src="https://i.pravatar.cc/150?img=2"
23
+ alt="Avatar"
24
+ loading="lazy"
25
+ />
18
26
  </div>
19
27
  <div class="mw-avatar">
20
- <img src="https://i.pravatar.cc/150?img=3" alt="Avatar" />
28
+ <img
29
+ src="https://i.pravatar.cc/150?img=3"
30
+ alt="Avatar"
31
+ loading="lazy"
32
+ />
21
33
  </div>
22
34
  <div class="mw-avatar mw-avatar-lg">
23
- <img src="https://i.pravatar.cc/150?img=4" alt="Avatar" />
35
+ <img
36
+ src="https://i.pravatar.cc/150?img=4"
37
+ alt="Avatar"
38
+ loading="lazy"
39
+ />
24
40
  </div>
25
41
  <div class="mw-avatar mw-avatar-xl">
26
- <img src="https://i.pravatar.cc/150?img=5" alt="Avatar" />
42
+ <img
43
+ src="https://i.pravatar.cc/150?img=5"
44
+ alt="Avatar"
45
+ loading="lazy"
46
+ />
27
47
  </div>
28
48
  </div>
29
49
  </div>
@@ -35,37 +55,69 @@
35
55
  <h4 class="mw-mb-2">Avatar Shapes</h4>
36
56
  <div>
37
57
  <div class="mw-avatar">
38
- <img src="https://i.pravatar.cc/150?img=6" alt="Avatar" />
58
+ <img
59
+ src="https://i.pravatar.cc/150?img=6"
60
+ alt="Avatar"
61
+ loading="lazy"
62
+ />
39
63
  </div>
40
64
  <div class="mw-avatar mw-avatar-square">
41
- <img src="https://i.pravatar.cc/150?img=7" alt="Avatar" />
65
+ <img
66
+ src="https://i.pravatar.cc/150?img=7"
67
+ alt="Avatar"
68
+ loading="lazy"
69
+ />
42
70
  </div>
43
71
  </div>
44
72
 
45
73
  <h4 class="mw-mb-2 mw-mt-4">Avatar Colors</h4>
46
74
  <div>
47
75
  <div class="mw-avatar mw-avatar-primary">
48
- <img src="https://i.pravatar.cc/150?img=9" alt="Avatar" />
76
+ <img
77
+ src="https://i.pravatar.cc/150?img=9"
78
+ alt="Avatar"
79
+ loading="lazy"
80
+ />
49
81
  </div>
50
82
  <div class="mw-avatar mw-avatar-secondary">
51
- <img src="https://i.pravatar.cc/150?img=10" alt="Avatar" />
83
+ <img
84
+ src="https://i.pravatar.cc/150?img=10"
85
+ alt="Avatar"
86
+ loading="lazy"
87
+ />
52
88
  </div>
53
89
  </div>
54
90
  <div>
55
91
  <div class="mw-avatar mw-avatar-success">
56
- <img src="https://i.pravatar.cc/150?img=11" alt="Avatar" />
92
+ <img
93
+ src="https://i.pravatar.cc/150?img=11"
94
+ alt="Avatar"
95
+ loading="lazy"
96
+ />
57
97
  </div>
58
98
 
59
99
  <div class="mw-avatar mw-avatar-warning">
60
- <img src="https://i.pravatar.cc/150?img=12" alt="Avatar" />
100
+ <img
101
+ src="https://i.pravatar.cc/150?img=12"
102
+ alt="Avatar"
103
+ loading="lazy"
104
+ />
61
105
  </div>
62
106
 
63
107
  <div class="mw-avatar mw-avatar-danger">
64
- <img src="https://i.pravatar.cc/150?img=13" alt="Avatar" />
108
+ <img
109
+ src="https://i.pravatar.cc/150?img=13"
110
+ alt="Avatar"
111
+ loading="lazy"
112
+ />
65
113
  </div>
66
114
 
67
115
  <div class="mw-avatar">
68
- <img src="https://i.pravatar.cc/150?img=14" alt="Avatar" />
116
+ <img
117
+ src="https://i.pravatar.cc/150?img=14"
118
+ alt="Avatar"
119
+ loading="lazy"
120
+ />
69
121
  </div>
70
122
  </div>
71
123
 
@@ -94,16 +146,32 @@
94
146
  <h4 class="mw-mb-2 mw-mt-4">Avatar Group</h4>
95
147
  <div class="mw-avatar-group mw-mt-3 mw-mb-5">
96
148
  <div class="mw-avatar mw-avatar-sm">
97
- <img src="https://i.pravatar.cc/150?img=19" alt="Avatar" />
149
+ <img
150
+ src="https://i.pravatar.cc/150?img=19"
151
+ alt="Avatar"
152
+ loading="lazy"
153
+ />
98
154
  </div>
99
155
  <div class="mw-avatar mw-avatar-sm">
100
- <img src="https://i.pravatar.cc/150?img=20" alt="Avatar" />
156
+ <img
157
+ src="https://i.pravatar.cc/150?img=20"
158
+ alt="Avatar"
159
+ loading="lazy"
160
+ />
101
161
  </div>
102
162
  <div class="mw-avatar mw-avatar-sm">
103
- <img src="https://i.pravatar.cc/150?img=21" alt="Avatar" />
163
+ <img
164
+ src="https://i.pravatar.cc/150?img=21"
165
+ alt="Avatar"
166
+ loading="lazy"
167
+ />
104
168
  </div>
105
169
  <div class="mw-avatar mw-avatar-sm">
106
- <img src="https://i.pravatar.cc/150?img=22" alt="Avatar" />
170
+ <img
171
+ src="https://i.pravatar.cc/150?img=22"
172
+ alt="Avatar"
173
+ loading="lazy"
174
+ />
107
175
  </div>
108
176
  </div>
109
177
  </div>
@@ -12,7 +12,7 @@
12
12
  <h3 class="mw-card-title mw-mb-4">Counts</h3>
13
13
  <div class="mw-card mw-card-simple mw-grid-1 mw-gap-6">
14
14
  <div>
15
- <h5 class="mw-text-medium mw-mb-2">Colors</h5>
15
+ <h4 class="mw-text-medium mw-mb-2">Colors</h4>
16
16
  <div class="mw-d-flex mw-items-center mw-gap-3 mw-flex-wrap">
17
17
  <span class="mw-badge">3</span>
18
18
  <span class="mw-badge mw-badge-secondary">8</span>
@@ -25,7 +25,7 @@
25
25
  </div>
26
26
  </div>
27
27
  <div>
28
- <h5 class="mw-text-medium mw-mb-2">Sizes</h5>
28
+ <h4 class="mw-text-medium mw-mb-2">Sizes</h4>
29
29
  <div class="mw-d-flex mw-items-center mw-gap-3">
30
30
  <span class="mw-badge mw-badge-sm">7</span>
31
31
  <span class="mw-badge">7</span>
@@ -39,7 +39,7 @@
39
39
  </p>
40
40
  </div>
41
41
  <div>
42
- <h5 class="mw-text-medium mw-mb-2">Anchored to something</h5>
42
+ <h4 class="mw-text-medium mw-mb-2">Anchored to something</h4>
43
43
  <div class="mw-d-flex mw-items-center mw-gap-6">
44
44
  <span class="mw-badge-anchor">
45
45
  <button class="mw-btn mw-btn-outline">
@@ -68,7 +68,7 @@
68
68
  <h3 class="mw-card-title mw-mb-4">Status</h3>
69
69
  <div class="mw-card mw-card-simple mw-grid-1 mw-gap-6">
70
70
  <div>
71
- <h5 class="mw-text-medium mw-mb-2">Dot with a label</h5>
71
+ <h4 class="mw-text-medium mw-mb-2">Dot with a label</h4>
72
72
  <div class="mw-grid-1 mw-gap-3">
73
73
  <span class="mw-badge-status mw-badge-status-success">
74
74
  <span class="mw-badge-dot"></span> Online
@@ -85,7 +85,7 @@
85
85
  </div>
86
86
  </div>
87
87
  <div>
88
- <h5 class="mw-text-medium mw-mb-2">Live</h5>
88
+ <h4 class="mw-text-medium mw-mb-2">Live</h4>
89
89
  <p class="mw-text-muted mw-text-sm mw-mb-0">
90
90
  <code>mw-badge-pulse</code> adds a ring that grows out and fades. The
91
91
  dot underneath never moves, so a column of them in a table stays
@@ -94,7 +94,7 @@
94
94
  </p>
95
95
  </div>
96
96
  <div>
97
- <h5 class="mw-text-medium mw-mb-2">In a row</h5>
97
+ <h4 class="mw-text-medium mw-mb-2">In a row</h4>
98
98
  <div class="mw-row-split mw-row-split-center">
99
99
  <span>Deployment #4812</span>
100
100
  <span class="mw-badge-status mw-badge-status-success">
@@ -21,7 +21,7 @@
21
21
  </div>
22
22
  <div class="mw-blog-post-meta-item">
23
23
  <i class="far fa-user"></i>
24
- <span>By Sarah Johnson</span>
24
+ <span>By Nadia Kern</span>
25
25
  </div>
26
26
  <div class="mw-blog-post-meta-item">
27
27
  <i class="far fa-clock"></i>
@@ -34,6 +34,7 @@
34
34
  src="https://images.unsplash.com/photo-1603969072881-b0fc7f3d77d7?q=80&w=3540&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
35
35
  alt="UI/UX design"
36
36
  class="mw-blog-post-featured-image"
37
+ loading="lazy"
37
38
  />
38
39
 
39
40
  <div class="mw-blog-post-content-markdown">
@@ -58,16 +59,15 @@
58
59
  </p>
59
60
 
60
61
  <blockquote>
61
- "AI hasn't replaced developers; it has elevated them. We now spend more
62
- time on architecture and problem-solving rather than writing boilerplate
63
- code." - Elena Vega, Lead Developer at TechFront
62
+ "AI did not replace us. It took the boilerplate, and left the part where
63
+ you decide what the thing should do." - Elena Vega, Lead Developer at
64
+ TechFront
64
65
  </blockquote>
65
66
 
66
67
  <h3>Serverless Architecture: Beyond the Basics</h3>
67
68
  <p>
68
- Serverless computing has matured significantly, moving beyond simple
69
- function execution to comprehensive application architectures. The new
70
- generation of serverless platforms offers:
69
+ Serverless has grown past single functions. Whole applications now run on
70
+ it, and the current generation of platforms offers:
71
71
  </p>
72
72
 
73
73
  <ul>
@@ -136,12 +136,11 @@ export async function handler(event, context) {
136
136
  </li>
137
137
  </ul>
138
138
 
139
- <h3>Conclusion</h3>
139
+ <h3>What this means for the next project</h3>
140
140
  <p>
141
- As we move further into 2025, the web development landscape continues to
142
- prioritize developer experience, performance, and scalability. By
143
- embracing these modern techniques, developers can create more robust,
144
- efficient, and maintainable applications.
141
+ None of this is exotic any more. The tooling ships with the framework, the
142
+ runtimes are on every major host, and the cost of trying one of them on a
143
+ real feature is an afternoon.
145
144
  </p>
146
145
  </div>
147
146
 
@@ -40,7 +40,7 @@
40
40
  <h3 class="mw-mb-4">Ghost, Icon &amp; Block</h3>
41
41
  <div class="mw-card mw-card-simple mw-grid-1 mw-gap-6">
42
42
  <div>
43
- <h5 class="mw-text-medium mw-mb-2">Ghost</h5>
43
+ <h4 class="mw-text-medium mw-mb-2">Ghost</h4>
44
44
  <div class="mw-d-flex mw-flex-wrap mw-items-center mw-gap-3">
45
45
  <button type="button" class="mw-btn mw-btn-ghost">Rename</button>
46
46
  <button type="button" class="mw-btn mw-btn-ghost mw-active">
@@ -59,7 +59,7 @@
59
59
  </p>
60
60
  </div>
61
61
  <div>
62
- <h5 class="mw-text-medium mw-mb-2">Icon only</h5>
62
+ <h4 class="mw-text-medium mw-mb-2">Icon only</h4>
63
63
  <div class="mw-d-flex mw-flex-wrap mw-items-center mw-gap-3">
64
64
  <button
65
65
  type="button"
@@ -103,7 +103,7 @@
103
103
  </p>
104
104
  </div>
105
105
  <div>
106
- <h5 class="mw-text-medium mw-mb-2">Block</h5>
106
+ <h4 class="mw-text-medium mw-mb-2">Block</h4>
107
107
  <button type="button" class="mw-btn mw-btn-primary mw-btn-block">
108
108
  Sign in
109
109
  </button>
@@ -12,6 +12,7 @@
12
12
  <img
13
13
  src="https://images.unsplash.com/photo-1550745165-9bc0b252726f?ixlib=rb-4.0.3&auto=format&fit=crop&w=800&q=80"
14
14
  alt="Tech Image"
15
+ loading="lazy"
15
16
  />
16
17
  </div>
17
18
  <div class="mw-card-body">
@@ -120,7 +121,11 @@
120
121
  <div class="mw-card-body">
121
122
  <h3 class="mw-card-title">
122
123
  <span class="mw-card-title-icon mw-card-title-icon-lg">
123
- <img src="https://m1well.com/images/header_logo.svg" alt="" />
124
+ <img
125
+ src="https://m1well.com/images/header_logo.svg"
126
+ alt=""
127
+ loading="lazy"
128
+ />
124
129
  </span>
125
130
  A logo instead of an icon
126
131
  </h3>
@@ -141,7 +146,7 @@
141
146
  <div class="mw-card-stack-icon">
142
147
  <i class="fas fa-laptop-code"></i>
143
148
  </div>
144
- <h5 class="mw-card-stack-title">Frontend</h5>
149
+ <h4 class="mw-card-stack-title">Frontend</h4>
145
150
  </div>
146
151
  <div class="mw-card-stack-body">
147
152
  <div class="mw-tags">
@@ -161,7 +166,7 @@
161
166
  <div class="mw-card-stack-icon">
162
167
  <i class="fas fa-server"></i>
163
168
  </div>
164
- <h5 class="mw-card-stack-title">Backend</h5>
169
+ <h4 class="mw-card-stack-title">Backend</h4>
165
170
  </div>
166
171
  <div class="mw-card-stack-body">
167
172
  <div class="mw-tags">
@@ -181,7 +186,7 @@
181
186
  <div class="mw-card-stack-icon">
182
187
  <i class="fas fa-database"></i>
183
188
  </div>
184
- <h5 class="mw-card-stack-title">Data Storage</h5>
189
+ <h4 class="mw-card-stack-title">Data Storage</h4>
185
190
  </div>
186
191
  <div class="mw-card-stack-body">
187
192
  <div class="mw-tags">
@@ -201,7 +206,7 @@
201
206
  <div class="mw-card-stack-icon">
202
207
  <i class="fas fa-cloud"></i>
203
208
  </div>
204
- <h5 class="mw-card-stack-title">DevOps & Cloud</h5>
209
+ <h4 class="mw-card-stack-title">DevOps & Cloud</h4>
205
210
  </div>
206
211
  <div class="mw-card-stack-body">
207
212
  <div class="mw-tags">
@@ -221,7 +226,7 @@
221
226
  <div class="mw-card-stack-icon">
222
227
  <i class="fas fa-vial"></i>
223
228
  </div>
224
- <h5 class="mw-card-stack-title">Testing & Quality</h5>
229
+ <h4 class="mw-card-stack-title">Testing & Quality</h4>
225
230
  </div>
226
231
  <div class="mw-card-stack-body">
227
232
  <p class="mw-card-stack-text">
@@ -250,6 +255,7 @@
250
255
  <img
251
256
  src="https://images.unsplash.com/photo-1493246507139-91e8fad9978e?ixlib=rb-4.0.3&auto=format&fit=crop&w=800&q=80"
252
257
  alt="Mountain Scenery Portrait"
258
+ loading="lazy"
253
259
  />
254
260
  </div>
255
261
  <div class="mw-card-body">
@@ -274,6 +280,7 @@
274
280
  <img
275
281
  src="https://images.unsplash.com/photo-1517841905240-472988babdf9?ixlib=rb-4.0.3&auto=format&fit=crop&w=800&q=80"
276
282
  alt="Team Member Portrait"
283
+ loading="lazy"
277
284
  />
278
285
  </div>
279
286
  <div class="mw-card-body">
@@ -304,6 +311,7 @@
304
311
  <img
305
312
  src="https://images.unsplash.com/photo-1544005313-94ddf0286df2?ixlib=rb-4.0.3&auto=format&fit=crop&w=800&q=80"
306
313
  alt="Portrait Style Image"
314
+ loading="lazy"
307
315
  />
308
316
  </div>
309
317
  <div class="mw-card-body">
@@ -330,6 +338,7 @@
330
338
  <img
331
339
  src="https://images.unsplash.com/photo-1506794778202-cad84cf45f1d?ixlib=rb-4.0.3&auto=format&fit=crop&w=800&q=80"
332
340
  alt="Portrait Style Image"
341
+ loading="lazy"
333
342
  />
334
343
  </div>
335
344
  <div class="mw-card-body">
@@ -418,10 +427,14 @@
418
427
  <hr class="mw-card-title-divider" />
419
428
  <div class="mw-d-flex mw-items-center mw-gap-3 mw-mb-3">
420
429
  <div class="mw-avatar">
421
- <img src="https://i.pravatar.cc/150?img=32" alt="User Avatar" />
430
+ <img
431
+ src="https://i.pravatar.cc/150?img=32"
432
+ alt="User Avatar"
433
+ loading="lazy"
434
+ />
422
435
  </div>
423
436
  <div class="mw-flex-grow-1 mw-ml-1">
424
- <p class="mw-mb-0"><strong>Sarah Johnson</strong></p>
437
+ <p class="mw-mb-0"><strong>Nadia Kern</strong></p>
425
438
  <p class="mw-text-muted mw-mb-0">Product Designer</p>
426
439
  </div>
427
440
  </div>
@@ -479,7 +492,7 @@
479
492
  <h3 class="mw-card-title">Latest Gadget</h3>
480
493
  <hr class="mw-card-title-divider" />
481
494
  <p class="mw-card-text">
482
- Introducing our brand‐new gadget with cutting-edge features.
495
+ The one we spent two years on. It is finally ready.
483
496
  </p>
484
497
  <div class="mw-card-footer">
485
498
  <button type="button" class="mw-btn mw-btn-primary">Explore</button>
@@ -493,6 +506,7 @@
493
506
  <img
494
507
  src="https://images.unsplash.com/photo-1517841905240-472988babdf9?ixlib=rb-4.0.3&auto=format&fit=crop&w=800&q=80"
495
508
  alt="Profile"
509
+ loading="lazy"
496
510
  />
497
511
  </div>
498
512
  <div class="mw-card-body">
@@ -513,6 +527,7 @@
513
527
  <img
514
528
  src="https://images.unsplash.com/photo-1512436991641-6745cdb1723f?ixlib=rb-4.0.3&auto=format&fit=crop&w=800&q=80"
515
529
  alt="Sale"
530
+ loading="lazy"
516
531
  />
517
532
  </div>
518
533
  <div class="mw-card-body">
@@ -558,6 +573,7 @@
558
573
  <img
559
574
  src="https://images.unsplash.com/photo-1504674900247-0877df9cc836?ixlib=rb-4.0.3&auto=format&fit=crop&w=800&q=80"
560
575
  alt="Product Spotlight"
576
+ loading="lazy"
561
577
  />
562
578
  </div>
563
579
  <div class="mw-card-body">
@@ -596,6 +612,7 @@
596
612
  <img
597
613
  src="https://images.unsplash.com/photo-1519389950473-47ba0277781c?ixlib=rb-4.0.3&auto=format&fit=crop&w=800&q=80"
598
614
  alt="Dashboard Beta"
615
+ loading="lazy"
599
616
  />
600
617
  </div>
601
618
  <div class="mw-card-body">
@@ -92,7 +92,7 @@ function Counter() {
92
92
  <strong>does not include a built-in JavaScript library</strong>
93
93
  for automatically parsing code and applying these highlighting classes.
94
94
  </p>
95
- <h5 class="mw-mt-4 mw-mb-2">Option 1: Manual Highlighting</h5>
95
+ <h4 class="mw-mt-4 mw-mb-2">Option 1: Manual Highlighting</h4>
96
96
  <p>
97
97
  For simple snippets, you can manually wrap parts of your code with
98
98
  <code>&lt;span&gt;</code> tags using the provided
@@ -111,9 +111,9 @@ function Counter() {
111
111
  </div>
112
112
  </div>
113
113
 
114
- <h5 class="mw-mt-4 mw-mb-2">
114
+ <h4 class="mw-mt-4 mw-mb-2">
115
115
  Option 2: Using a Syntax Highlighting Library
116
- </h5>
116
+ </h4>
117
117
  <p>
118
118
  For automatic highlighting of various languages, integrate a dedicated
119
119
  JavaScript library like
@@ -141,8 +141,8 @@ function Counter() {
141
141
  </li>
142
142
  </ol>
143
143
  <p>
144
- Using an external library is recommended for robust, multi-language
145
- syntax highlighting.
144
+ Use an external library for reliable, multi-language syntax
145
+ highlighting.
146
146
  </p>
147
147
  </div>
148
148
  </div>
@@ -7,21 +7,22 @@
7
7
  src="images/slider-mountains.svg"
8
8
  class="mw-image-slider-base-image"
9
9
  alt="Mountain Landscape"
10
+ loading="lazy"
10
11
  />
11
12
  </div>
12
13
 
13
14
  <div class="mw-image-slider-overlay">
14
15
  <div class="mw-image-slider-overlay-image" data-index="1">
15
- <img src="images/slider-lake.svg" alt="Lake" />
16
+ <img src="images/slider-lake.svg" alt="Lake" loading="lazy" />
16
17
  </div>
17
18
  <div class="mw-image-slider-overlay-image" data-index="2">
18
- <img src="images/slider-forest.svg" alt="Forest" />
19
+ <img src="images/slider-forest.svg" alt="Forest" loading="lazy" />
19
20
  </div>
20
21
  <div class="mw-image-slider-overlay-image" data-index="3">
21
- <img src="images/slider-field.svg" alt="Field" />
22
+ <img src="images/slider-field.svg" alt="Field" loading="lazy" />
22
23
  </div>
23
24
  <div class="mw-image-slider-overlay-image" data-index="4">
24
- <img src="images/slider-trees.svg" alt="Trees" />
25
+ <img src="images/slider-trees.svg" alt="Trees" loading="lazy" />
25
26
  </div>
26
27
  </div>
27
28
 
@@ -9,25 +9,25 @@
9
9
  <h3 class="mw-card-title mw-mb-4">Horizontal</h3>
10
10
  <div class="mw-card mw-card-simple mw-grid-1 mw-gap-6">
11
11
  <div>
12
- <h5 class="mw-text-medium mw-mb-2">Default</h5>
12
+ <h4 class="mw-text-medium mw-mb-2">Default</h4>
13
13
  <p class="mw-text-muted">Content above</p>
14
14
  <hr class="mw-divider" />
15
15
  <p class="mw-text-muted">Content below</p>
16
16
  </div>
17
17
  <div>
18
- <h5 class="mw-text-medium mw-mb-2">Thick</h5>
18
+ <h4 class="mw-text-medium mw-mb-2">Thick</h4>
19
19
  <hr class="mw-divider mw-divider-thick" />
20
20
  </div>
21
21
  <div>
22
- <h5 class="mw-text-medium mw-mb-2">Dashed</h5>
22
+ <h4 class="mw-text-medium mw-mb-2">Dashed</h4>
23
23
  <hr class="mw-divider mw-divider-dashed" />
24
24
  </div>
25
25
  <div>
26
- <h5 class="mw-text-medium mw-mb-2">Primary color</h5>
26
+ <h4 class="mw-text-medium mw-mb-2">Primary color</h4>
27
27
  <hr class="mw-divider mw-divider-primary" />
28
28
  </div>
29
29
  <div>
30
- <h5 class="mw-text-medium mw-mb-2">Secondary color</h5>
30
+ <h4 class="mw-text-medium mw-mb-2">Secondary color</h4>
31
31
  <hr class="mw-divider mw-divider-secondary" />
32
32
  </div>
33
33
  </div>
@@ -37,7 +37,7 @@
37
37
  <h3 class="mw-card-title mw-mb-4">With Text & Vertical</h3>
38
38
  <div class="mw-card mw-card-simple mw-grid-1 mw-gap-6">
39
39
  <div>
40
- <h5 class="mw-text-medium mw-mb-2">With label</h5>
40
+ <h4 class="mw-text-medium mw-mb-2">With label</h4>
41
41
  <div class="mw-divider-text">
42
42
  <span>or</span>
43
43
  </div>
@@ -54,7 +54,7 @@
54
54
  </div>
55
55
 
56
56
  <div>
57
- <h5 class="mw-text-medium mw-mb-2">Vertical (inside flex row)</h5>
57
+ <h4 class="mw-text-medium mw-mb-2">Vertical (inside flex row)</h4>
58
58
  <div
59
59
  style="display: flex; align-items: center; gap: 1rem; height: 70px"
60
60
  >