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,229 +0,0 @@
|
|
|
1
|
-
<h3 class="mw-section-subtitle">Avatars</h3>
|
|
2
|
-
<p class="mw-text-muted mw-text-measure">
|
|
3
|
-
A picture or a pair of initials, in five sizes. The colour variants sit on the
|
|
4
|
-
border, so they still read over a photo; on an initials avatar they fill the
|
|
5
|
-
circle as well. Inside a group the overlap follows the avatar size.
|
|
6
|
-
<code>mw-avatar-landscape</code> (3:2) and
|
|
7
|
-
<code>mw-avatar-portrait</code> (9:16, 2:3 on <code>-lg</code>) are for a
|
|
8
|
-
photo that is not square - meant for the two large sizes. Both run larger than
|
|
9
|
-
the round step, and a landscape avatar shrinks to fit a narrow column.
|
|
10
|
-
</p>
|
|
11
|
-
|
|
12
|
-
<div class="mw-grid-2">
|
|
13
|
-
<div>
|
|
14
|
-
<h3 class="mw-mb-4">Avatar Sizes</h3>
|
|
15
|
-
<div class="mw-card mw-card-simple">
|
|
16
|
-
<div class="mw-grid-stack-center">
|
|
17
|
-
<div class="mw-avatar mw-avatar-xs">
|
|
18
|
-
<img
|
|
19
|
-
src="https://i.pravatar.cc/150?img=1"
|
|
20
|
-
alt="Avatar"
|
|
21
|
-
loading="lazy"
|
|
22
|
-
/>
|
|
23
|
-
</div>
|
|
24
|
-
<div class="mw-avatar mw-avatar-sm">
|
|
25
|
-
<img
|
|
26
|
-
src="https://i.pravatar.cc/150?img=2"
|
|
27
|
-
alt="Avatar"
|
|
28
|
-
loading="lazy"
|
|
29
|
-
/>
|
|
30
|
-
</div>
|
|
31
|
-
<div class="mw-avatar">
|
|
32
|
-
<img
|
|
33
|
-
src="https://i.pravatar.cc/150?img=3"
|
|
34
|
-
alt="Avatar"
|
|
35
|
-
loading="lazy"
|
|
36
|
-
/>
|
|
37
|
-
</div>
|
|
38
|
-
<div class="mw-avatar mw-avatar-lg">
|
|
39
|
-
<img
|
|
40
|
-
src="https://i.pravatar.cc/150?img=4"
|
|
41
|
-
alt="Avatar"
|
|
42
|
-
loading="lazy"
|
|
43
|
-
/>
|
|
44
|
-
</div>
|
|
45
|
-
<div class="mw-avatar mw-avatar-xl">
|
|
46
|
-
<img
|
|
47
|
-
src="https://i.pravatar.cc/150?img=5"
|
|
48
|
-
alt="Avatar"
|
|
49
|
-
loading="lazy"
|
|
50
|
-
/>
|
|
51
|
-
</div>
|
|
52
|
-
</div>
|
|
53
|
-
</div>
|
|
54
|
-
</div>
|
|
55
|
-
|
|
56
|
-
<div>
|
|
57
|
-
<h3 class="mw-mb-4">Avatar Shapes & Colors & Group</h3>
|
|
58
|
-
<div class="mw-card mw-card-simple">
|
|
59
|
-
<h4 class="mw-mb-2">Avatar Shapes</h4>
|
|
60
|
-
<div>
|
|
61
|
-
<div class="mw-avatar">
|
|
62
|
-
<img
|
|
63
|
-
src="https://i.pravatar.cc/150?img=6"
|
|
64
|
-
alt="Avatar"
|
|
65
|
-
loading="lazy"
|
|
66
|
-
/>
|
|
67
|
-
</div>
|
|
68
|
-
<div class="mw-avatar mw-avatar-square">
|
|
69
|
-
<img
|
|
70
|
-
src="https://i.pravatar.cc/150?img=7"
|
|
71
|
-
alt="Avatar"
|
|
72
|
-
loading="lazy"
|
|
73
|
-
/>
|
|
74
|
-
</div>
|
|
75
|
-
</div>
|
|
76
|
-
|
|
77
|
-
<h4 class="mw-mb-2 mw-mt-4">Avatar Colors</h4>
|
|
78
|
-
<div>
|
|
79
|
-
<div class="mw-avatar mw-avatar-primary">
|
|
80
|
-
<img
|
|
81
|
-
src="https://i.pravatar.cc/150?img=9"
|
|
82
|
-
alt="Avatar"
|
|
83
|
-
loading="lazy"
|
|
84
|
-
/>
|
|
85
|
-
</div>
|
|
86
|
-
<div class="mw-avatar mw-avatar-secondary">
|
|
87
|
-
<img
|
|
88
|
-
src="https://i.pravatar.cc/150?img=10"
|
|
89
|
-
alt="Avatar"
|
|
90
|
-
loading="lazy"
|
|
91
|
-
/>
|
|
92
|
-
</div>
|
|
93
|
-
</div>
|
|
94
|
-
<div>
|
|
95
|
-
<div class="mw-avatar mw-avatar-success">
|
|
96
|
-
<img
|
|
97
|
-
src="https://i.pravatar.cc/150?img=11"
|
|
98
|
-
alt="Avatar"
|
|
99
|
-
loading="lazy"
|
|
100
|
-
/>
|
|
101
|
-
</div>
|
|
102
|
-
|
|
103
|
-
<div class="mw-avatar mw-avatar-warning">
|
|
104
|
-
<img
|
|
105
|
-
src="https://i.pravatar.cc/150?img=12"
|
|
106
|
-
alt="Avatar"
|
|
107
|
-
loading="lazy"
|
|
108
|
-
/>
|
|
109
|
-
</div>
|
|
110
|
-
|
|
111
|
-
<div class="mw-avatar mw-avatar-danger">
|
|
112
|
-
<img
|
|
113
|
-
src="https://i.pravatar.cc/150?img=13"
|
|
114
|
-
alt="Avatar"
|
|
115
|
-
loading="lazy"
|
|
116
|
-
/>
|
|
117
|
-
</div>
|
|
118
|
-
|
|
119
|
-
<div class="mw-avatar">
|
|
120
|
-
<img
|
|
121
|
-
src="https://i.pravatar.cc/150?img=14"
|
|
122
|
-
alt="Avatar"
|
|
123
|
-
loading="lazy"
|
|
124
|
-
/>
|
|
125
|
-
</div>
|
|
126
|
-
</div>
|
|
127
|
-
|
|
128
|
-
<h4 class="mw-mb-2 mw-mt-4">Avatar Initials</h4>
|
|
129
|
-
<p class="mw-text-muted mw-text-sm">
|
|
130
|
-
For users without a picture. The color variants tint the surface here
|
|
131
|
-
instead of the border.
|
|
132
|
-
</p>
|
|
133
|
-
<div>
|
|
134
|
-
<div class="mw-avatar mw-avatar-initials mw-avatar-xs">MW</div>
|
|
135
|
-
<div class="mw-avatar mw-avatar-initials mw-avatar-sm">AB</div>
|
|
136
|
-
<div class="mw-avatar mw-avatar-initials">CD</div>
|
|
137
|
-
<div class="mw-avatar mw-avatar-initials mw-avatar-secondary">EF</div>
|
|
138
|
-
</div>
|
|
139
|
-
<div>
|
|
140
|
-
<div class="mw-avatar mw-avatar-initials mw-avatar-success">GH</div>
|
|
141
|
-
<div class="mw-avatar mw-avatar-initials mw-avatar-warning">IJ</div>
|
|
142
|
-
<div class="mw-avatar mw-avatar-initials mw-avatar-danger">KL</div>
|
|
143
|
-
<div
|
|
144
|
-
class="mw-avatar mw-avatar-initials mw-avatar-info mw-avatar-square"
|
|
145
|
-
>
|
|
146
|
-
MN
|
|
147
|
-
</div>
|
|
148
|
-
</div>
|
|
149
|
-
|
|
150
|
-
<h4 class="mw-mb-2 mw-mt-4">Avatar Group</h4>
|
|
151
|
-
<div class="mw-avatar-group mw-mt-3 mw-mb-5">
|
|
152
|
-
<div class="mw-avatar mw-avatar-sm">
|
|
153
|
-
<img
|
|
154
|
-
src="https://i.pravatar.cc/150?img=19"
|
|
155
|
-
alt="Avatar"
|
|
156
|
-
loading="lazy"
|
|
157
|
-
/>
|
|
158
|
-
</div>
|
|
159
|
-
<div class="mw-avatar mw-avatar-sm">
|
|
160
|
-
<img
|
|
161
|
-
src="https://i.pravatar.cc/150?img=20"
|
|
162
|
-
alt="Avatar"
|
|
163
|
-
loading="lazy"
|
|
164
|
-
/>
|
|
165
|
-
</div>
|
|
166
|
-
<div class="mw-avatar mw-avatar-sm">
|
|
167
|
-
<img
|
|
168
|
-
src="https://i.pravatar.cc/150?img=21"
|
|
169
|
-
alt="Avatar"
|
|
170
|
-
loading="lazy"
|
|
171
|
-
/>
|
|
172
|
-
</div>
|
|
173
|
-
<div class="mw-avatar mw-avatar-sm">
|
|
174
|
-
<img
|
|
175
|
-
src="https://i.pravatar.cc/150?img=22"
|
|
176
|
-
alt="Avatar"
|
|
177
|
-
loading="lazy"
|
|
178
|
-
/>
|
|
179
|
-
</div>
|
|
180
|
-
</div>
|
|
181
|
-
</div>
|
|
182
|
-
</div>
|
|
183
|
-
</div>
|
|
184
|
-
|
|
185
|
-
<div class="mw-grid-2 mw-grid-from-lg mw-mt-6">
|
|
186
|
-
<div>
|
|
187
|
-
<h3 class="mw-mb-4">Landscape</h3>
|
|
188
|
-
<div class="mw-card mw-card-simple">
|
|
189
|
-
<div class="mw-d-flex mw-flex-column mw-items-center mw-gap-6">
|
|
190
|
-
<div class="mw-avatar mw-avatar-lg mw-avatar-landscape">
|
|
191
|
-
<img
|
|
192
|
-
src="https://images.unsplash.com/photo-1507003211169-0a1dd7228f2d?auto=format&fit=crop&crop=faces&w=720&h=480&q=80"
|
|
193
|
-
alt="Avatar"
|
|
194
|
-
loading="lazy"
|
|
195
|
-
/>
|
|
196
|
-
</div>
|
|
197
|
-
<div class="mw-avatar mw-avatar-xl mw-avatar-landscape">
|
|
198
|
-
<img
|
|
199
|
-
src="https://images.unsplash.com/photo-1494790108377-be9c29b29330?auto=format&fit=crop&crop=faces&w=720&h=480&q=80"
|
|
200
|
-
alt="Avatar"
|
|
201
|
-
loading="lazy"
|
|
202
|
-
/>
|
|
203
|
-
</div>
|
|
204
|
-
</div>
|
|
205
|
-
</div>
|
|
206
|
-
</div>
|
|
207
|
-
|
|
208
|
-
<div>
|
|
209
|
-
<h3 class="mw-mb-4">Portrait</h3>
|
|
210
|
-
<div class="mw-card mw-card-simple">
|
|
211
|
-
<div class="mw-d-flex mw-flex-wrap mw-justify-center mw-items-end">
|
|
212
|
-
<div class="mw-avatar mw-avatar-lg mw-avatar-portrait">
|
|
213
|
-
<img
|
|
214
|
-
src="https://images.unsplash.com/photo-1500648767791-00dcc994a43e?auto=format&fit=crop&crop=faces&w=480&h=720&q=80"
|
|
215
|
-
alt="Avatar"
|
|
216
|
-
loading="lazy"
|
|
217
|
-
/>
|
|
218
|
-
</div>
|
|
219
|
-
<div class="mw-avatar mw-avatar-xl mw-avatar-portrait">
|
|
220
|
-
<img
|
|
221
|
-
src="https://images.unsplash.com/photo-1438761681033-6461ffad8d80?auto=format&fit=crop&crop=faces&w=450&h=800&q=80"
|
|
222
|
-
alt="Avatar"
|
|
223
|
-
loading="lazy"
|
|
224
|
-
/>
|
|
225
|
-
</div>
|
|
226
|
-
</div>
|
|
227
|
-
</div>
|
|
228
|
-
</div>
|
|
229
|
-
</div>
|
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
<h3 class="mw-section-subtitle">Badges</h3>
|
|
2
|
-
|
|
3
|
-
<p class="mw-text-muted mw-text-measure">
|
|
4
|
-
A badge is not a tag. A tag names something and sits in a row of its own kind;
|
|
5
|
-
a badge carries a count or a status and usually sits <em>on</em> something -
|
|
6
|
-
the number on a bell, the dot on an avatar. That is why it fills its colour
|
|
7
|
-
instead of tinting it, and why it comes with an anchor.
|
|
8
|
-
</p>
|
|
9
|
-
|
|
10
|
-
<div class="mw-grid-2 mw-gap-6">
|
|
11
|
-
<div>
|
|
12
|
-
<h3 class="mw-card-title mw-mb-4">Counts</h3>
|
|
13
|
-
<div class="mw-card mw-card-simple mw-grid-1 mw-gap-6">
|
|
14
|
-
<div>
|
|
15
|
-
<h4 class="mw-text-medium mw-mb-2">Colors</h4>
|
|
16
|
-
<div class="mw-d-flex mw-items-center mw-gap-3 mw-flex-wrap">
|
|
17
|
-
<span class="mw-badge">3</span>
|
|
18
|
-
<span class="mw-badge mw-badge-secondary">8</span>
|
|
19
|
-
<span class="mw-badge mw-badge-success">1</span>
|
|
20
|
-
<span class="mw-badge mw-badge-warning">4</span>
|
|
21
|
-
<span class="mw-badge mw-badge-danger">99+</span>
|
|
22
|
-
<span class="mw-badge mw-badge-info">12</span>
|
|
23
|
-
<span class="mw-badge mw-badge-muted">0</span>
|
|
24
|
-
<span class="mw-badge mw-badge-outline">new</span>
|
|
25
|
-
</div>
|
|
26
|
-
</div>
|
|
27
|
-
<div>
|
|
28
|
-
<h4 class="mw-text-medium mw-mb-2">Sizes</h4>
|
|
29
|
-
<div class="mw-d-flex mw-items-center mw-gap-3">
|
|
30
|
-
<span class="mw-badge mw-badge-sm">7</span>
|
|
31
|
-
<span class="mw-badge">7</span>
|
|
32
|
-
<span class="mw-badge mw-badge-lg">7</span>
|
|
33
|
-
</div>
|
|
34
|
-
<p class="mw-text-muted mw-text-sm mw-mt-3 mw-mb-0">
|
|
35
|
-
Round on one character, a pill from two on - a
|
|
36
|
-
<code>min-width</code> the padding grows past, the same rule an OS
|
|
37
|
-
badge follows. The digits are tabular, so a counter ticking 9 to 10
|
|
38
|
-
does not shift what sits beside it.
|
|
39
|
-
</p>
|
|
40
|
-
</div>
|
|
41
|
-
<div>
|
|
42
|
-
<h4 class="mw-text-medium mw-mb-2">Anchored to something</h4>
|
|
43
|
-
<div class="mw-d-flex mw-items-center mw-gap-6">
|
|
44
|
-
<span class="mw-badge-anchor">
|
|
45
|
-
<button class="mw-btn mw-btn-outline">
|
|
46
|
-
<i class="fas fa-inbox"></i> Inbox
|
|
47
|
-
</button>
|
|
48
|
-
<span class="mw-badge mw-badge-danger mw-badge-float">5</span>
|
|
49
|
-
</span>
|
|
50
|
-
<span class="mw-badge-anchor">
|
|
51
|
-
<i class="fas fa-bell mw-text-xl"></i>
|
|
52
|
-
<span class="mw-badge mw-badge-primary mw-badge-float mw-badge-sm"
|
|
53
|
-
>2</span
|
|
54
|
-
>
|
|
55
|
-
</span>
|
|
56
|
-
</div>
|
|
57
|
-
<p class="mw-text-muted mw-text-sm mw-mt-3 mw-mb-0">
|
|
58
|
-
<code>mw-badge-anchor</code> on the thing being badged,
|
|
59
|
-
<code>mw-badge-float</code> on the badge. It hangs off the corner and
|
|
60
|
-
carries a ring in the surface colour, so it reads as a separate object
|
|
61
|
-
rather than a blob on the icon.
|
|
62
|
-
</p>
|
|
63
|
-
</div>
|
|
64
|
-
</div>
|
|
65
|
-
</div>
|
|
66
|
-
|
|
67
|
-
<div>
|
|
68
|
-
<h3 class="mw-card-title mw-mb-4">Status</h3>
|
|
69
|
-
<div class="mw-card mw-card-simple mw-grid-1 mw-gap-6">
|
|
70
|
-
<div>
|
|
71
|
-
<h4 class="mw-text-medium mw-mb-2">Dot with a label</h4>
|
|
72
|
-
<div class="mw-grid-1 mw-gap-3">
|
|
73
|
-
<span class="mw-badge-status mw-badge-status-success">
|
|
74
|
-
<span class="mw-badge-dot"></span> Online
|
|
75
|
-
</span>
|
|
76
|
-
<span class="mw-badge-status mw-badge-status-warning">
|
|
77
|
-
<span class="mw-badge-dot"></span> Degraded
|
|
78
|
-
</span>
|
|
79
|
-
<span class="mw-badge-status mw-badge-status-danger">
|
|
80
|
-
<span class="mw-badge-dot mw-badge-pulse"></span> Incident
|
|
81
|
-
</span>
|
|
82
|
-
<span class="mw-badge-status mw-badge-status-muted">
|
|
83
|
-
<span class="mw-badge-dot"></span> Archived
|
|
84
|
-
</span>
|
|
85
|
-
</div>
|
|
86
|
-
</div>
|
|
87
|
-
<div>
|
|
88
|
-
<h4 class="mw-text-medium mw-mb-2">Live</h4>
|
|
89
|
-
<p class="mw-text-muted mw-text-sm mw-mb-0">
|
|
90
|
-
<code>mw-badge-pulse</code> adds a ring that grows out and fades. The
|
|
91
|
-
dot underneath never moves, so a column of them in a table stays
|
|
92
|
-
readable. For something actually running - a job, an open connection -
|
|
93
|
-
not for decoration.
|
|
94
|
-
</p>
|
|
95
|
-
</div>
|
|
96
|
-
<div>
|
|
97
|
-
<h4 class="mw-text-medium mw-mb-2">In a row</h4>
|
|
98
|
-
<div class="mw-row-split mw-row-split-center">
|
|
99
|
-
<span>Deployment #4812</span>
|
|
100
|
-
<span class="mw-badge-status mw-badge-status-success">
|
|
101
|
-
<span class="mw-badge-dot"></span> Passed
|
|
102
|
-
</span>
|
|
103
|
-
</div>
|
|
104
|
-
<hr class="mw-divider" />
|
|
105
|
-
<div class="mw-row-split mw-row-split-center">
|
|
106
|
-
<span>Deployment #4811</span>
|
|
107
|
-
<span class="mw-badge-status mw-badge-status-danger">
|
|
108
|
-
<span class="mw-badge-dot"></span> Failed
|
|
109
|
-
</span>
|
|
110
|
-
</div>
|
|
111
|
-
</div>
|
|
112
|
-
</div>
|
|
113
|
-
</div>
|
|
114
|
-
</div>
|
|
@@ -1,158 +0,0 @@
|
|
|
1
|
-
<h3 class="mw-section-subtitle">Blog Posts</h3>
|
|
2
|
-
<p class="mw-text-muted mw-text-measure">
|
|
3
|
-
A long-form article rather than a card: title, meta line, body and the way
|
|
4
|
-
back out. The gradient rule down the left edge is what makes it read as a page
|
|
5
|
-
instead of a panel.
|
|
6
|
-
</p>
|
|
7
|
-
|
|
8
|
-
<div class="mw-blog-post">
|
|
9
|
-
<h2 class="mw-blog-post-title">
|
|
10
|
-
Just a dummy blog post (markdown generated)
|
|
11
|
-
</h2>
|
|
12
|
-
|
|
13
|
-
<div class="mw-blog-post-header">
|
|
14
|
-
<div class="mw-blog-post-header-icon">
|
|
15
|
-
<i class="fas fa-code"></i>
|
|
16
|
-
</div>
|
|
17
|
-
<div class="mw-blog-post-meta">
|
|
18
|
-
<div class="mw-blog-post-meta-item">
|
|
19
|
-
<i class="far fa-calendar"></i>
|
|
20
|
-
<span>April 10, 2025</span>
|
|
21
|
-
</div>
|
|
22
|
-
<div class="mw-blog-post-meta-item">
|
|
23
|
-
<i class="far fa-user"></i>
|
|
24
|
-
<span>By Nadia Kern</span>
|
|
25
|
-
</div>
|
|
26
|
-
<div class="mw-blog-post-meta-item">
|
|
27
|
-
<i class="far fa-clock"></i>
|
|
28
|
-
<span>8 min read</span>
|
|
29
|
-
</div>
|
|
30
|
-
</div>
|
|
31
|
-
</div>
|
|
32
|
-
|
|
33
|
-
<img
|
|
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
|
-
alt="UI/UX design"
|
|
36
|
-
class="mw-blog-post-featured-image"
|
|
37
|
-
loading="lazy"
|
|
38
|
-
/>
|
|
39
|
-
|
|
40
|
-
<div class="mw-blog-post-content-markdown">
|
|
41
|
-
<p>
|
|
42
|
-
The landscape of web development continues to evolve at a rapid pace. In
|
|
43
|
-
this article, we explore the latest frameworks, tools, and methodologies
|
|
44
|
-
that are shaping the industry in 2025.
|
|
45
|
-
</p>
|
|
46
|
-
|
|
47
|
-
<h3>The Rise of AI-Assisted Development</h3>
|
|
48
|
-
<p>
|
|
49
|
-
Artificial intelligence has transformed how we approach coding. Modern
|
|
50
|
-
IDEs now come equipped with sophisticated AI assistants that can generate
|
|
51
|
-
entire components, optimize performance, and even identify potential bugs
|
|
52
|
-
before they manifest.
|
|
53
|
-
</p>
|
|
54
|
-
|
|
55
|
-
<p>
|
|
56
|
-
The most significant advancement has been in the realm of natural language
|
|
57
|
-
programming, where developers can describe functionality in plain English
|
|
58
|
-
and have the AI generate the corresponding code.
|
|
59
|
-
</p>
|
|
60
|
-
|
|
61
|
-
<blockquote>
|
|
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
|
|
65
|
-
</blockquote>
|
|
66
|
-
|
|
67
|
-
<h3>Serverless Architecture: Beyond the Basics</h3>
|
|
68
|
-
<p>
|
|
69
|
-
Serverless has grown past single functions. Whole applications now run on
|
|
70
|
-
it, and the current generation of platforms offers:
|
|
71
|
-
</p>
|
|
72
|
-
|
|
73
|
-
<ul>
|
|
74
|
-
<li>Stateful serverless functions with built-in memory persistence</li>
|
|
75
|
-
<li>Edge-optimized execution for global performance</li>
|
|
76
|
-
<li>Integrated database connections with automatic scaling</li>
|
|
77
|
-
<li>Real-time monitoring and debugging capabilities</li>
|
|
78
|
-
</ul>
|
|
79
|
-
|
|
80
|
-
<h4>Code Example: Modern Serverless Function</h4>
|
|
81
|
-
<pre><code>// Modern serverless function with state management
|
|
82
|
-
export async function handler(event, context) {
|
|
83
|
-
// Access persistent state across invocations
|
|
84
|
-
const state = await context.getState();
|
|
85
|
-
|
|
86
|
-
// Process the incoming request
|
|
87
|
-
const result = processRequest(event, state);
|
|
88
|
-
|
|
89
|
-
// Update the state for future invocations
|
|
90
|
-
await context.setState({
|
|
91
|
-
lastProcessed: new Date(),
|
|
92
|
-
counter: (state.counter || 0) + 1,
|
|
93
|
-
recentRequests: [...(state.recentRequests || []), event.id].slice(-10)
|
|
94
|
-
});
|
|
95
|
-
|
|
96
|
-
return {
|
|
97
|
-
statusCode: 200,
|
|
98
|
-
body: JSON.stringify(result)
|
|
99
|
-
};
|
|
100
|
-
}</code></pre>
|
|
101
|
-
|
|
102
|
-
<h3>Web Components and Micro-Frontends</h3>
|
|
103
|
-
<p>
|
|
104
|
-
The component-based architecture has evolved into a more standardized
|
|
105
|
-
approach with Web Components becoming the foundation of modern frontend
|
|
106
|
-
development. This has enabled true interoperability between different
|
|
107
|
-
frameworks and libraries.
|
|
108
|
-
</p>
|
|
109
|
-
|
|
110
|
-
<p>
|
|
111
|
-
Micro-frontends have also gained widespread adoption, allowing teams to
|
|
112
|
-
develop, test, and deploy parts of a frontend independently, using
|
|
113
|
-
different technologies if necessary.
|
|
114
|
-
</p>
|
|
115
|
-
|
|
116
|
-
<ul>
|
|
117
|
-
<li>
|
|
118
|
-
DOP is not anti-OOP - it's a refinement for clearer thinking and
|
|
119
|
-
modeling.
|
|
120
|
-
</li>
|
|
121
|
-
<li>
|
|
122
|
-
With <code>record</code>, <code>sealed interface</code>, and Pattern
|
|
123
|
-
Matching, Java is finally ready for this style.
|
|
124
|
-
</li>
|
|
125
|
-
<li>
|
|
126
|
-
You’ll get:
|
|
127
|
-
<ul>
|
|
128
|
-
<li>Transparent and predictable models</li>
|
|
129
|
-
<li>Easier testing and logging</li>
|
|
130
|
-
<li>Less coupling and fewer side effects</li>
|
|
131
|
-
</ul>
|
|
132
|
-
</li>
|
|
133
|
-
<li>
|
|
134
|
-
This approach can make your domain models sharper and your codebase
|
|
135
|
-
easier to reason about.
|
|
136
|
-
</li>
|
|
137
|
-
</ul>
|
|
138
|
-
|
|
139
|
-
<h3>What this means for the next project</h3>
|
|
140
|
-
<p>
|
|
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.
|
|
144
|
-
</p>
|
|
145
|
-
</div>
|
|
146
|
-
|
|
147
|
-
<div class="mw-blog-post-footer">
|
|
148
|
-
<button type="button" class="mw-btn mw-blog-post-footer-button">
|
|
149
|
-
<i class="fas fa-arrow-left"></i>
|
|
150
|
-
<span>Previous Post</span>
|
|
151
|
-
</button>
|
|
152
|
-
<button type="button" class="mw-btn mw-btn-primary">Back to Blog</button>
|
|
153
|
-
<button type="button" class="mw-btn mw-blog-post-footer-button next">
|
|
154
|
-
<i class="fas fa-arrow-right"></i>
|
|
155
|
-
<span>Next Post</span>
|
|
156
|
-
</button>
|
|
157
|
-
</div>
|
|
158
|
-
</div>
|
|
@@ -1,126 +0,0 @@
|
|
|
1
|
-
<h3 class="mw-section-subtitle">Breadcrumbs</h3>
|
|
2
|
-
<p class="mw-text-muted mw-text-measure">
|
|
3
|
-
Modern skewed navigation breadcrumbs with overlapping design.
|
|
4
|
-
</p>
|
|
5
|
-
|
|
6
|
-
<div class="mw-grid-stack-stretch">
|
|
7
|
-
<div>
|
|
8
|
-
<h4 class="mw-mb-2">Basic Breadcrumbs</h4>
|
|
9
|
-
<nav class="mw-breadcrumbs" aria-label="Breadcrumb">
|
|
10
|
-
<ol class="mw-breadcrumbs-list">
|
|
11
|
-
<li class="mw-breadcrumbs-item">
|
|
12
|
-
<a href="#">
|
|
13
|
-
<span>Home</span>
|
|
14
|
-
</a>
|
|
15
|
-
</li>
|
|
16
|
-
<li class="mw-breadcrumbs-item">
|
|
17
|
-
<a href="#">
|
|
18
|
-
<span>Products</span>
|
|
19
|
-
</a>
|
|
20
|
-
</li>
|
|
21
|
-
<li class="mw-breadcrumbs-item">
|
|
22
|
-
<a href="#">
|
|
23
|
-
<span>Electronics</span>
|
|
24
|
-
</a>
|
|
25
|
-
</li>
|
|
26
|
-
<li class="mw-breadcrumbs-item mw-breadcrumbs-current">
|
|
27
|
-
<a href="#" class="mw-breadcrumbs-active">
|
|
28
|
-
<span>Phones</span>
|
|
29
|
-
</a>
|
|
30
|
-
</li>
|
|
31
|
-
</ol>
|
|
32
|
-
</nav>
|
|
33
|
-
</div>
|
|
34
|
-
|
|
35
|
-
<div>
|
|
36
|
-
<h4 class="mw-mb-2">With Home Icon</h4>
|
|
37
|
-
<nav class="mw-breadcrumbs" aria-label="Breadcrumb">
|
|
38
|
-
<ol class="mw-breadcrumbs-list">
|
|
39
|
-
<li class="mw-breadcrumbs-item">
|
|
40
|
-
<a href="#" aria-label="Home">
|
|
41
|
-
<i class="fas fa-home"></i>
|
|
42
|
-
</a>
|
|
43
|
-
</li>
|
|
44
|
-
<li class="mw-breadcrumbs-item">
|
|
45
|
-
<a href="#">
|
|
46
|
-
<span>Products</span>
|
|
47
|
-
</a>
|
|
48
|
-
</li>
|
|
49
|
-
<li class="mw-breadcrumbs-item">
|
|
50
|
-
<a href="#">
|
|
51
|
-
<span>Electronics</span>
|
|
52
|
-
</a>
|
|
53
|
-
</li>
|
|
54
|
-
<li class="mw-breadcrumbs-item mw-breadcrumbs-current">
|
|
55
|
-
<a href="#" class="mw-breadcrumbs-active">
|
|
56
|
-
<span>Phones</span>
|
|
57
|
-
</a>
|
|
58
|
-
</li>
|
|
59
|
-
</ol>
|
|
60
|
-
</nav>
|
|
61
|
-
</div>
|
|
62
|
-
|
|
63
|
-
<div>
|
|
64
|
-
<h4 class="mw-mb-2">Small Size Variant</h4>
|
|
65
|
-
<nav class="mw-breadcrumbs mw-breadcrumbs-sm" aria-label="Breadcrumb">
|
|
66
|
-
<ol class="mw-breadcrumbs-list">
|
|
67
|
-
<li class="mw-breadcrumbs-item">
|
|
68
|
-
<a href="#">
|
|
69
|
-
<span>Admin</span>
|
|
70
|
-
</a>
|
|
71
|
-
</li>
|
|
72
|
-
<li class="mw-breadcrumbs-item">
|
|
73
|
-
<a href="#">
|
|
74
|
-
<span>Users</span>
|
|
75
|
-
</a>
|
|
76
|
-
</li>
|
|
77
|
-
<li class="mw-breadcrumbs-item mw-breadcrumbs-current">
|
|
78
|
-
<a href="#" class="mw-breadcrumbs-active">
|
|
79
|
-
<span>Profile</span>
|
|
80
|
-
</a>
|
|
81
|
-
</li>
|
|
82
|
-
</ol>
|
|
83
|
-
</nav>
|
|
84
|
-
</div>
|
|
85
|
-
|
|
86
|
-
<div>
|
|
87
|
-
<h4 class="mw-mb-2">Long Path (Responsive Collapse)</h4>
|
|
88
|
-
<p class="mw-text-muted mw-text-sm mw-mt-1">
|
|
89
|
-
Middle items collapse on smaller screens.
|
|
90
|
-
</p>
|
|
91
|
-
<nav class="mw-breadcrumbs mw-breadcrumbs-collapse" aria-label="Breadcrumb">
|
|
92
|
-
<ol class="mw-breadcrumbs-list">
|
|
93
|
-
<li class="mw-breadcrumbs-item">
|
|
94
|
-
<a href="#">
|
|
95
|
-
<span>E-commerce</span>
|
|
96
|
-
</a>
|
|
97
|
-
</li>
|
|
98
|
-
<li class="mw-breadcrumbs-item">
|
|
99
|
-
<a href="#">
|
|
100
|
-
<span>Electronics</span>
|
|
101
|
-
</a>
|
|
102
|
-
</li>
|
|
103
|
-
<li class="mw-breadcrumbs-item">
|
|
104
|
-
<a href="#">
|
|
105
|
-
<span>Computers</span>
|
|
106
|
-
</a>
|
|
107
|
-
</li>
|
|
108
|
-
<li class="mw-breadcrumbs-item">
|
|
109
|
-
<a href="#">
|
|
110
|
-
<span>Laptops</span>
|
|
111
|
-
</a>
|
|
112
|
-
</li>
|
|
113
|
-
<li class="mw-breadcrumbs-item">
|
|
114
|
-
<a href="#">
|
|
115
|
-
<span>Gaming</span>
|
|
116
|
-
</a>
|
|
117
|
-
</li>
|
|
118
|
-
<li class="mw-breadcrumbs-item mw-breadcrumbs-current">
|
|
119
|
-
<a href="#" class="mw-breadcrumbs-active">
|
|
120
|
-
<span>RTX 4080</span>
|
|
121
|
-
</a>
|
|
122
|
-
</li>
|
|
123
|
-
</ol>
|
|
124
|
-
</nav>
|
|
125
|
-
</div>
|
|
126
|
-
</div>
|