maverick-wave 3.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.
- package/.claude/commands/mw.md +580 -0
- package/.claude/settings.local.json +11 -0
- package/.idea/codeStyles/Project.xml +59 -0
- package/.idea/codeStyles/codeStyleConfig.xml +5 -0
- package/.idea/maverick-wave.iml +12 -0
- package/.idea/modules.xml +8 -0
- package/.idea/prettier.xml +6 -0
- package/.idea/vcs.xml +6 -0
- package/.prettierignore +6 -0
- package/.prettierrc.json +7 -0
- package/CHANGELOG.md +420 -0
- package/CLAUDE.md +53 -0
- package/LICENSE +21 -0
- package/README.md +191 -0
- package/gulpfile.js +158 -0
- package/index.html +472 -0
- package/maverick-wave.min.css +1 -0
- package/maverick-wave.min.js +1 -0
- package/package.json +52 -0
- package/release.sh +17 -0
- package/src/assets/favicon/android-chrome-192x192.png +0 -0
- package/src/assets/favicon/android-chrome-512x512.png +0 -0
- package/src/assets/favicon/apple-touch-icon.png +0 -0
- package/src/assets/favicon/favicon-16x16.png +0 -0
- package/src/assets/favicon/favicon-32x32.png +0 -0
- package/src/assets/favicon/site.webmanifest +1 -0
- package/src/assets/favicon.ico +0 -0
- package/src/assets/header-logo.svg +24 -0
- package/src/js/main.js +587 -0
- package/src/partials/accordions-container.html +163 -0
- package/src/partials/alerts-container.html +120 -0
- package/src/partials/avatars-container.html +84 -0
- package/src/partials/blog-posts-container.html +157 -0
- package/src/partials/breadcrumbs-container.html +126 -0
- package/src/partials/button-bar-container.html +168 -0
- package/src/partials/buttons-container.html +133 -0
- package/src/partials/cards-container.html +508 -0
- package/src/partials/code-container.html +194 -0
- package/src/partials/colors-container.html +125 -0
- package/src/partials/coming-soon-container.html +6 -0
- package/src/partials/content-slider-container.html +47 -0
- package/src/partials/divider-container.html +52 -0
- package/src/partials/documentation-container.html +161 -0
- package/src/partials/empty-state-container.html +74 -0
- package/src/partials/footer-container.html +113 -0
- package/src/partials/form-container.html +257 -0
- package/src/partials/form-elements-container.html +595 -0
- package/src/partials/form-field-container.html +141 -0
- package/src/partials/gallery-container.html +49 -0
- package/src/partials/get-started-container.html +294 -0
- package/src/partials/grid-container.html +171 -0
- package/src/partials/header-container.html +49 -0
- package/src/partials/header-utilities-container.html +80 -0
- package/src/partials/home-container.html +48 -0
- package/src/partials/html-lists-container.html +58 -0
- package/src/partials/info-container.html +87 -0
- package/src/partials/input-group-container.html +285 -0
- package/src/partials/item-lists-container.html +413 -0
- package/src/partials/login-container.html +61 -0
- package/src/partials/meta-info-container.html +16 -0
- package/src/partials/modals-container.html +136 -0
- package/src/partials/pagination-container.html +27 -0
- package/src/partials/panels-container.html +196 -0
- package/src/partials/progress-container.html +226 -0
- package/src/partials/ratings-container.html +104 -0
- package/src/partials/skeleton-container.html +82 -0
- package/src/partials/spinners-container.html +92 -0
- package/src/partials/stepper-container.html +107 -0
- package/src/partials/tables-container.html +120 -0
- package/src/partials/tabs-container.html +263 -0
- package/src/partials/tags-container.html +168 -0
- package/src/partials/techstack-bucket-container.html +174 -0
- package/src/partials/tiles-container.html +245 -0
- package/src/partials/timelines-container.html +196 -0
- package/src/partials/typography-container.html +66 -0
- package/src/partials/utilities-container.html +85 -0
- package/src/scss/abstracts/_functions.scss +37 -0
- package/src/scss/abstracts/_index.scss +3 -0
- package/src/scss/abstracts/_mixins.scss +45 -0
- package/src/scss/abstracts/_variables.scss +222 -0
- package/src/scss/base/_base.scss +165 -0
- package/src/scss/base/_index.scss +3 -0
- package/src/scss/base/_reset.scss +75 -0
- package/src/scss/base/_typography.scss +230 -0
- package/src/scss/components/_accordions.scss +91 -0
- package/src/scss/components/_alerts.scss +105 -0
- package/src/scss/components/_avatars.scss +123 -0
- package/src/scss/components/_blog-post.scss +268 -0
- package/src/scss/components/_breadcrumbs.scss +108 -0
- package/src/scss/components/_button-bar.scss +139 -0
- package/src/scss/components/_buttons.scss +164 -0
- package/src/scss/components/_cards.scss +316 -0
- package/src/scss/components/_code.scss +252 -0
- package/src/scss/components/_coming-soon.scss +92 -0
- package/src/scss/components/_content-slider.scss +119 -0
- package/src/scss/components/_divider.scss +70 -0
- package/src/scss/components/_empty-state.scss +73 -0
- package/src/scss/components/_gallery.scss +158 -0
- package/src/scss/components/_index.scss +33 -0
- package/src/scss/components/_info.scss +143 -0
- package/src/scss/components/_lists.scss +653 -0
- package/src/scss/components/_localhost-indicator.scss +29 -0
- package/src/scss/components/_meta-info.scss +34 -0
- package/src/scss/components/_modals.scss +118 -0
- package/src/scss/components/_pagination.scss +99 -0
- package/src/scss/components/_panels.scss +112 -0
- package/src/scss/components/_progress.scss +107 -0
- package/src/scss/components/_ratings.scss +47 -0
- package/src/scss/components/_skeleton.scss +90 -0
- package/src/scss/components/_spinners.scss +208 -0
- package/src/scss/components/_stepper.scss +145 -0
- package/src/scss/components/_tables.scss +127 -0
- package/src/scss/components/_tabs.scss +146 -0
- package/src/scss/components/_tags.scss +93 -0
- package/src/scss/components/_techstack-bucket.scss +145 -0
- package/src/scss/components/_theme-toggle.scss +50 -0
- package/src/scss/components/_tiles.scss +217 -0
- package/src/scss/components/_timelines.scss +339 -0
- package/src/scss/form-elements/_checkbox.scss +174 -0
- package/src/scss/form-elements/_form.scss +122 -0
- package/src/scss/form-elements/_index.scss +10 -0
- package/src/scss/form-elements/_input-group.scss +103 -0
- package/src/scss/form-elements/_input.scss +72 -0
- package/src/scss/form-elements/_login.scss +62 -0
- package/src/scss/form-elements/_radio.scss +144 -0
- package/src/scss/form-elements/_select.scss +56 -0
- package/src/scss/form-elements/_slider.scss +174 -0
- package/src/scss/form-elements/_textarea.scss +74 -0
- package/src/scss/form-elements/_toggle.scss +174 -0
- package/src/scss/layout/_footer.scss +214 -0
- package/src/scss/layout/_grid.scss +287 -0
- package/src/scss/layout/_header.scss +441 -0
- package/src/scss/layout/_home.scss +40 -0
- package/src/scss/layout/_index.scss +6 -0
- package/src/scss/layout/_main.scss +116 -0
- package/src/scss/layout/_section.scss +89 -0
- package/src/scss/main.scss +5 -0
- package/src/scss/utilities/_display.scss +35 -0
- package/src/scss/utilities/_flex.scss +66 -0
- package/src/scss/utilities/_index.scss +3 -0
- package/src/scss/utilities/_spacing.scss +78 -0
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
<h3 class="mw-section-subtitle">Accordions</h3>
|
|
2
|
+
|
|
3
|
+
<div class="mw-accordion">
|
|
4
|
+
<div class="mw-accordion-item">
|
|
5
|
+
<div class="mw-accordion-header active">
|
|
6
|
+
<h3>What is MaverickWave?</h3>
|
|
7
|
+
<i class="fas fa-chevron-down mw-accordion-icon"></i>
|
|
8
|
+
</div>
|
|
9
|
+
<div class="mw-accordion-content active">
|
|
10
|
+
<div class="mw-accordion-content-inner">
|
|
11
|
+
<p>
|
|
12
|
+
MaverickWave is a lightweight, responsive CSS framework designed for
|
|
13
|
+
modern web development. It provides a clean foundation with
|
|
14
|
+
customizable components and utility classes to help you build
|
|
15
|
+
beautiful, responsive websites quickly.
|
|
16
|
+
</p>
|
|
17
|
+
</div>
|
|
18
|
+
</div>
|
|
19
|
+
</div>
|
|
20
|
+
|
|
21
|
+
<div class="mw-accordion-item">
|
|
22
|
+
<div class="mw-accordion-header">
|
|
23
|
+
<h3>How do I customize MaverickWave?</h3>
|
|
24
|
+
<i class="fas fa-chevron-down mw-accordion-icon"></i>
|
|
25
|
+
</div>
|
|
26
|
+
<div class="mw-accordion-content">
|
|
27
|
+
<div class="mw-accordion-content-inner">
|
|
28
|
+
<p>
|
|
29
|
+
MaverickWave offers two main ways to customize its appearance to match
|
|
30
|
+
your project's needs:
|
|
31
|
+
</p>
|
|
32
|
+
|
|
33
|
+
<h5 class="mw-mt-4 mw-mb-2">
|
|
34
|
+
1. Using CSS Variables (Recommended for CDN/CSS Users)
|
|
35
|
+
</h5>
|
|
36
|
+
<p>
|
|
37
|
+
If you're using the pre-compiled CSS file (via CDN or download), you
|
|
38
|
+
can override MaverickWave's default styles by redefining its CSS
|
|
39
|
+
variables in your own stylesheet (loaded *after* MaverickWave's CSS).
|
|
40
|
+
</p>
|
|
41
|
+
<pre class="mw-code-block"><code>/* Your custom-styles.css */
|
|
42
|
+
:root {
|
|
43
|
+
/* Override base colors */
|
|
44
|
+
--mw-primary-color: #e94560;
|
|
45
|
+
--mw-secondary-color: #f39c12;
|
|
46
|
+
|
|
47
|
+
/* Override specific theme colors */
|
|
48
|
+
--mw-dark-page-background: #1a1a2e;
|
|
49
|
+
--mw-light-card-background: #f0f0f5;
|
|
50
|
+
|
|
51
|
+
/* Override component variables */
|
|
52
|
+
--mw-alert-primary-bg: rgba(233, 69, 96, 0.15);
|
|
53
|
+
|
|
54
|
+
/* Override font */
|
|
55
|
+
--mw-font-family-base: 'Your Custom Font', sans-serif;
|
|
56
|
+
}</code></pre>
|
|
57
|
+
<p>This method is flexible and doesn't require a Sass build process.</p>
|
|
58
|
+
|
|
59
|
+
<h5 class="mw-mt-4 mw-mb-2">
|
|
60
|
+
2. Using SCSS Variables (Requires Sass Build Process)
|
|
61
|
+
</h5>
|
|
62
|
+
<p>
|
|
63
|
+
If you integrate MaverickWave's SCSS source files into your project,
|
|
64
|
+
you can override the framework's default Sass variables
|
|
65
|
+
<em>before</em> importing it. This gives you deeper control and allows
|
|
66
|
+
derived colors (calculated using Sass functions like
|
|
67
|
+
<code>rgba()</code> or <code>color.adjust()</code> within the
|
|
68
|
+
framework) to automatically use your custom base colors.
|
|
69
|
+
</p>
|
|
70
|
+
<pre class="mw-code-block"><code>// Your main.scss
|
|
71
|
+
|
|
72
|
+
// Override Sass variables BEFORE importing
|
|
73
|
+
$primary-color: #e94560;
|
|
74
|
+
$font-family: 'Your Custom Font', sans-serif;
|
|
75
|
+
$mw-theme-mode: 'dark'; // Optionally set theme mode
|
|
76
|
+
|
|
77
|
+
// Import MaverickWave
|
|
78
|
+
@import 'path/to/maverick-wave/scss/maverick-wave';</code></pre>
|
|
79
|
+
<p>
|
|
80
|
+
This method requires you to have a Sass compiler set up in your
|
|
81
|
+
project.
|
|
82
|
+
</p>
|
|
83
|
+
<p class="mw-mt-4">
|
|
84
|
+
<button
|
|
85
|
+
type="button"
|
|
86
|
+
onclick="location.href = '#get-started'"
|
|
87
|
+
class="mw-btn mw-btn-link mw-p-0"
|
|
88
|
+
>
|
|
89
|
+
See the "Get Started" section
|
|
90
|
+
</button>
|
|
91
|
+
for more detailed integration examples for both methods.
|
|
92
|
+
</p>
|
|
93
|
+
</div>
|
|
94
|
+
</div>
|
|
95
|
+
</div>
|
|
96
|
+
|
|
97
|
+
<div class="mw-accordion-item">
|
|
98
|
+
<div class="mw-accordion-header">
|
|
99
|
+
<h3>Is MaverickWave responsive?</h3>
|
|
100
|
+
<i class="fas fa-chevron-down mw-accordion-icon"></i>
|
|
101
|
+
</div>
|
|
102
|
+
<div class="mw-accordion-content">
|
|
103
|
+
<div class="mw-accordion-content-inner">
|
|
104
|
+
<p>
|
|
105
|
+
Yes, MaverickWave CSS framework is fully responsive and works on all
|
|
106
|
+
devices. It uses a mobile-first approach with responsive breakpoints
|
|
107
|
+
for different screen sizes, ensuring your website looks great on
|
|
108
|
+
phones, tablets, laptops, and desktops.
|
|
109
|
+
</p>
|
|
110
|
+
</div>
|
|
111
|
+
</div>
|
|
112
|
+
</div>
|
|
113
|
+
|
|
114
|
+
<div class="mw-accordion-item">
|
|
115
|
+
<div class="mw-accordion-header">
|
|
116
|
+
<h3>Scrollable Content Example</h3>
|
|
117
|
+
<i class="fas fa-chevron-down mw-accordion-icon"></i>
|
|
118
|
+
</div>
|
|
119
|
+
<div class="mw-accordion-content">
|
|
120
|
+
<div class="mw-accordion-content-inner">
|
|
121
|
+
<p>
|
|
122
|
+
This accordion panel demonstrates scrollable content when the content
|
|
123
|
+
exceeds the available space. This is useful for displaying large
|
|
124
|
+
amounts of information in a compact format.
|
|
125
|
+
</p>
|
|
126
|
+
<p>
|
|
127
|
+
Accordions are excellent UI components for FAQs, product details, or
|
|
128
|
+
any content that benefits from progressive disclosure. They help
|
|
129
|
+
reduce cognitive load by showing only the most relevant information at
|
|
130
|
+
first.
|
|
131
|
+
</p>
|
|
132
|
+
<p>When designing with accordions, consider these best practices:</p>
|
|
133
|
+
<ul>
|
|
134
|
+
<li>
|
|
135
|
+
Use clear, descriptive headers that indicate the content inside
|
|
136
|
+
</li>
|
|
137
|
+
<li>Keep content concise and focused on a single topic per panel</li>
|
|
138
|
+
<li>
|
|
139
|
+
Consider whether users need to compare information across panels
|
|
140
|
+
</li>
|
|
141
|
+
<li>Ensure keyboard accessibility for navigation</li>
|
|
142
|
+
<li>Provide visual feedback for interactive elements</li>
|
|
143
|
+
</ul>
|
|
144
|
+
<p>
|
|
145
|
+
MaverickWave accordions are designed with accessibility in mind,
|
|
146
|
+
ensuring they work well with screen readers and keyboard navigation.
|
|
147
|
+
The smooth animations provide visual feedback without being
|
|
148
|
+
distracting.
|
|
149
|
+
</p>
|
|
150
|
+
<p>
|
|
151
|
+
You can customize the appearance of accordions using CSS variables to
|
|
152
|
+
match your brand colors and design language. The component is built
|
|
153
|
+
with flexibility in mind.
|
|
154
|
+
</p>
|
|
155
|
+
<p>
|
|
156
|
+
For more complex use cases, you can nest accordions or combine them
|
|
157
|
+
with other components like tabs or cards to create rich, interactive
|
|
158
|
+
interfaces that guide users through complex information hierarchies.
|
|
159
|
+
</p>
|
|
160
|
+
</div>
|
|
161
|
+
</div>
|
|
162
|
+
</div>
|
|
163
|
+
</div>
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
<h3 class="mw-section-subtitle">Alerts System</h3>
|
|
2
|
+
|
|
3
|
+
<div class="mw-grid-2 mw-gap-4">
|
|
4
|
+
<!-- Primary: System Notifications -->
|
|
5
|
+
<div class="mw-alert mw-alert-primary">
|
|
6
|
+
<div class="mw-alert-icon">
|
|
7
|
+
<i class="fas fa-info-circle"></i>
|
|
8
|
+
</div>
|
|
9
|
+
<div class="mw-alert-content">
|
|
10
|
+
<span class="mw-alert-title">System Update</span>
|
|
11
|
+
<p>Please note that maintenance is scheduled for tonight at 02:00 AM.</p>
|
|
12
|
+
</div>
|
|
13
|
+
<button
|
|
14
|
+
type="button"
|
|
15
|
+
class="mw-btn-mini mw-btn-mini-danger mw-alert-close"
|
|
16
|
+
onclick="this.closest('.mw-alert').remove()"
|
|
17
|
+
>
|
|
18
|
+
<i class="fas fa-times"></i>
|
|
19
|
+
</button>
|
|
20
|
+
</div>
|
|
21
|
+
|
|
22
|
+
<!-- Secondary: Generic Info -->
|
|
23
|
+
<div class="mw-alert mw-alert-secondary">
|
|
24
|
+
<div class="mw-alert-icon">
|
|
25
|
+
<i class="fas fa-bell"></i>
|
|
26
|
+
</div>
|
|
27
|
+
<div class="mw-alert-content">
|
|
28
|
+
<span class="mw-alert-title">Notification</span>
|
|
29
|
+
<p>You have unread messages in your inbox.</p>
|
|
30
|
+
</div>
|
|
31
|
+
<button
|
|
32
|
+
type="button"
|
|
33
|
+
class="mw-btn-mini mw-btn-mini-danger mw-alert-close"
|
|
34
|
+
onclick="this.closest('.mw-alert').remove()"
|
|
35
|
+
>
|
|
36
|
+
<i class="fas fa-times"></i>
|
|
37
|
+
</button>
|
|
38
|
+
</div>
|
|
39
|
+
|
|
40
|
+
<!-- Success: Actions -->
|
|
41
|
+
<div class="mw-alert mw-alert-success">
|
|
42
|
+
<div class="mw-alert-icon">
|
|
43
|
+
<i class="fas fa-check-circle"></i>
|
|
44
|
+
</div>
|
|
45
|
+
<div class="mw-alert-content">
|
|
46
|
+
<span class="mw-alert-title">Profile Updated</span>
|
|
47
|
+
<p>Your settings have been saved successfully.</p>
|
|
48
|
+
</div>
|
|
49
|
+
<button
|
|
50
|
+
type="button"
|
|
51
|
+
class="mw-btn-mini mw-btn-mini-danger mw-alert-close"
|
|
52
|
+
onclick="this.closest('.mw-alert').remove()"
|
|
53
|
+
>
|
|
54
|
+
<i class="fas fa-times"></i>
|
|
55
|
+
</button>
|
|
56
|
+
</div>
|
|
57
|
+
|
|
58
|
+
<!-- Warning: Caution needed -->
|
|
59
|
+
<div class="mw-alert mw-alert-warning">
|
|
60
|
+
<div class="mw-alert-icon">
|
|
61
|
+
<i class="fas fa-exclamation-triangle"></i>
|
|
62
|
+
</div>
|
|
63
|
+
<div class="mw-alert-content">
|
|
64
|
+
<span class="mw-alert-title">Storage Low</span>
|
|
65
|
+
<p>
|
|
66
|
+
You are running out of storage space (95% used). Consider upgrading your
|
|
67
|
+
plan.
|
|
68
|
+
</p>
|
|
69
|
+
</div>
|
|
70
|
+
<button
|
|
71
|
+
type="button"
|
|
72
|
+
class="mw-btn-mini mw-btn-mini-danger mw-alert-close"
|
|
73
|
+
onclick="this.closest('.mw-alert').remove()"
|
|
74
|
+
>
|
|
75
|
+
<i class="fas fa-times"></i>
|
|
76
|
+
</button>
|
|
77
|
+
</div>
|
|
78
|
+
|
|
79
|
+
<!-- Danger: Critical Errors -->
|
|
80
|
+
<div class="mw-alert mw-alert-danger">
|
|
81
|
+
<div class="mw-alert-icon">
|
|
82
|
+
<i class="fas fa-times-circle"></i>
|
|
83
|
+
</div>
|
|
84
|
+
<div class="mw-alert-content">
|
|
85
|
+
<span class="mw-alert-title">Connection Failed</span>
|
|
86
|
+
<p>
|
|
87
|
+
Could not connect to database. Please check your credentials and try
|
|
88
|
+
again.
|
|
89
|
+
</p>
|
|
90
|
+
</div>
|
|
91
|
+
<button
|
|
92
|
+
type="button"
|
|
93
|
+
class="mw-btn-mini mw-btn-mini-danger mw-alert-close"
|
|
94
|
+
onclick="this.closest('.mw-alert').remove()"
|
|
95
|
+
>
|
|
96
|
+
<i class="fas fa-times"></i>
|
|
97
|
+
</button>
|
|
98
|
+
</div>
|
|
99
|
+
|
|
100
|
+
<!-- Info: Context / Tips -->
|
|
101
|
+
<div class="mw-alert mw-alert-info">
|
|
102
|
+
<div class="mw-alert-icon">
|
|
103
|
+
<i class="fas fa-lightbulb"></i>
|
|
104
|
+
</div>
|
|
105
|
+
<div class="mw-alert-content">
|
|
106
|
+
<span class="mw-alert-title">Did you know?</span>
|
|
107
|
+
<p>
|
|
108
|
+
You can use keyboard shortcuts to navigate faster. Press
|
|
109
|
+
<strong>?</strong> to see help.
|
|
110
|
+
</p>
|
|
111
|
+
</div>
|
|
112
|
+
<button
|
|
113
|
+
type="button"
|
|
114
|
+
class="mw-btn-mini mw-btn-mini-danger mw-alert-close"
|
|
115
|
+
onclick="this.closest('.mw-alert').remove()"
|
|
116
|
+
>
|
|
117
|
+
<i class="fas fa-times"></i>
|
|
118
|
+
</button>
|
|
119
|
+
</div>
|
|
120
|
+
</div>
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
<h3 class="mw-section-subtitle">Avatars</h3>
|
|
2
|
+
|
|
3
|
+
<div class="mw-grid-2">
|
|
4
|
+
<div>
|
|
5
|
+
<h3 class="mw-mb-4">Avatar Sizes</h3>
|
|
6
|
+
<div class="mw-card mw-card-simple">
|
|
7
|
+
<div class="mw-grid-stack-center">
|
|
8
|
+
<div class="mw-avatar mw-avatar-xs">
|
|
9
|
+
<img src="https://i.pravatar.cc/150?img=1" alt="Avatar" />
|
|
10
|
+
</div>
|
|
11
|
+
<div class="mw-avatar mw-avatar-sm">
|
|
12
|
+
<img src="https://i.pravatar.cc/150?img=2" alt="Avatar" />
|
|
13
|
+
</div>
|
|
14
|
+
<div class="mw-avatar">
|
|
15
|
+
<img src="https://i.pravatar.cc/150?img=3" alt="Avatar" />
|
|
16
|
+
</div>
|
|
17
|
+
<div class="mw-avatar mw-avatar-lg">
|
|
18
|
+
<img src="https://i.pravatar.cc/150?img=4" alt="Avatar" />
|
|
19
|
+
</div>
|
|
20
|
+
<div class="mw-avatar mw-avatar-xl">
|
|
21
|
+
<img src="https://i.pravatar.cc/150?img=5" alt="Avatar" />
|
|
22
|
+
</div>
|
|
23
|
+
</div>
|
|
24
|
+
</div>
|
|
25
|
+
</div>
|
|
26
|
+
|
|
27
|
+
<div>
|
|
28
|
+
<h3 class="mw-mb-4">Avatar Shapes & Colors & Group</h3>
|
|
29
|
+
<div class="mw-card mw-card-simple">
|
|
30
|
+
<h4 class="mw-mb-2">Avatar Shapes</h4>
|
|
31
|
+
<div>
|
|
32
|
+
<div class="mw-avatar">
|
|
33
|
+
<img src="https://i.pravatar.cc/150?img=6" alt="Avatar" />
|
|
34
|
+
</div>
|
|
35
|
+
<div class="mw-avatar mw-avatar-square">
|
|
36
|
+
<img src="https://i.pravatar.cc/150?img=7" alt="Avatar" />
|
|
37
|
+
</div>
|
|
38
|
+
</div>
|
|
39
|
+
|
|
40
|
+
<h4 class="mw-mb-2 mw-mt-4">Avatar Colors</h4>
|
|
41
|
+
<div>
|
|
42
|
+
<div class="mw-avatar mw-avatar-primary">
|
|
43
|
+
<img src="https://i.pravatar.cc/150?img=9" alt="Avatar" />
|
|
44
|
+
</div>
|
|
45
|
+
<div class="mw-avatar mw-avatar-secondary">
|
|
46
|
+
<img src="https://i.pravatar.cc/150?img=10" alt="Avatar" />
|
|
47
|
+
</div>
|
|
48
|
+
</div>
|
|
49
|
+
<div>
|
|
50
|
+
<div class="mw-avatar mw-avatar-success">
|
|
51
|
+
<img src="https://i.pravatar.cc/150?img=11" alt="Avatar" />
|
|
52
|
+
</div>
|
|
53
|
+
|
|
54
|
+
<div class="mw-avatar mw-avatar-warning">
|
|
55
|
+
<img src="https://i.pravatar.cc/150?img=12" alt="Avatar" />
|
|
56
|
+
</div>
|
|
57
|
+
|
|
58
|
+
<div class="mw-avatar mw-avatar-danger">
|
|
59
|
+
<img src="https://i.pravatar.cc/150?img=13" alt="Avatar" />
|
|
60
|
+
</div>
|
|
61
|
+
|
|
62
|
+
<div class="mw-avatar">
|
|
63
|
+
<img src="https://i.pravatar.cc/150?img=14" alt="Avatar" />
|
|
64
|
+
</div>
|
|
65
|
+
</div>
|
|
66
|
+
|
|
67
|
+
<h4 class="mw-mb-2 mw-mt-4">Avatar Group</h4>
|
|
68
|
+
<div class="mw-avatar-group mw-mt-3 mw-mb-5">
|
|
69
|
+
<div class="mw-avatar mw-avatar-sm">
|
|
70
|
+
<img src="https://i.pravatar.cc/150?img=19" alt="Avatar" />
|
|
71
|
+
</div>
|
|
72
|
+
<div class="mw-avatar mw-avatar-sm">
|
|
73
|
+
<img src="https://i.pravatar.cc/150?img=20" alt="Avatar" />
|
|
74
|
+
</div>
|
|
75
|
+
<div class="mw-avatar mw-avatar-sm">
|
|
76
|
+
<img src="https://i.pravatar.cc/150?img=21" alt="Avatar" />
|
|
77
|
+
</div>
|
|
78
|
+
<div class="mw-avatar mw-avatar-sm">
|
|
79
|
+
<img src="https://i.pravatar.cc/150?img=22" alt="Avatar" />
|
|
80
|
+
</div>
|
|
81
|
+
</div>
|
|
82
|
+
</div>
|
|
83
|
+
</div>
|
|
84
|
+
</div>
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
<h3 class="mw-section-subtitle">Blog Posts</h3>
|
|
2
|
+
|
|
3
|
+
<div class="mw-blog-post mw-mt-9">
|
|
4
|
+
<h2 class="mw-blog-post-title">Just a dummy blog post</h2>
|
|
5
|
+
|
|
6
|
+
<div class="mw-blog-post-header">
|
|
7
|
+
<div class="mw-blog-post-header-icon">
|
|
8
|
+
<i class="fas fa-code"></i>
|
|
9
|
+
</div>
|
|
10
|
+
<div class="mw-blog-post-meta">
|
|
11
|
+
<div class="mw-blog-post-meta-item">
|
|
12
|
+
<i class="far fa-calendar"></i>
|
|
13
|
+
<span>April 10, 2025</span>
|
|
14
|
+
</div>
|
|
15
|
+
<div class="mw-blog-post-meta-item">
|
|
16
|
+
<i class="far fa-user"></i>
|
|
17
|
+
<span>By Sarah Johnson</span>
|
|
18
|
+
</div>
|
|
19
|
+
<div class="mw-blog-post-meta-item">
|
|
20
|
+
<i class="far fa-clock"></i>
|
|
21
|
+
<span>8 min read</span>
|
|
22
|
+
</div>
|
|
23
|
+
</div>
|
|
24
|
+
</div>
|
|
25
|
+
|
|
26
|
+
<img
|
|
27
|
+
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"
|
|
28
|
+
alt="UI/UX design"
|
|
29
|
+
class="mw-blog-post-featured-image"
|
|
30
|
+
/>
|
|
31
|
+
|
|
32
|
+
<div class="mw-blog-post-content-markdown">
|
|
33
|
+
<p>
|
|
34
|
+
The landscape of web development continues to evolve at a rapid pace. In
|
|
35
|
+
this article, we explore the latest frameworks, tools, and methodologies
|
|
36
|
+
that are shaping the industry in 2025.
|
|
37
|
+
</p>
|
|
38
|
+
|
|
39
|
+
<h3>The Rise of AI-Assisted Development</h3>
|
|
40
|
+
<p>
|
|
41
|
+
Artificial intelligence has transformed how we approach coding. Modern
|
|
42
|
+
IDEs now come equipped with sophisticated AI assistants that can generate
|
|
43
|
+
entire components, optimize performance, and even identify potential bugs
|
|
44
|
+
before they manifest.
|
|
45
|
+
</p>
|
|
46
|
+
<p>
|
|
47
|
+
<button type="button" class="mw-btn mw-btn-primary">
|
|
48
|
+
Just s simple button
|
|
49
|
+
</button>
|
|
50
|
+
</p>
|
|
51
|
+
|
|
52
|
+
<p>
|
|
53
|
+
The most significant advancement has been in the realm of natural language
|
|
54
|
+
programming, where developers can describe functionality in plain English
|
|
55
|
+
and have the AI generate the corresponding code.
|
|
56
|
+
</p>
|
|
57
|
+
|
|
58
|
+
<blockquote>
|
|
59
|
+
"AI hasn't replaced developers; it has elevated them. We now spend more
|
|
60
|
+
time on architecture and problem-solving rather than writing boilerplate
|
|
61
|
+
code." — Elena Vega, Lead Developer at TechFront
|
|
62
|
+
</blockquote>
|
|
63
|
+
|
|
64
|
+
<h3>Serverless Architecture: Beyond the Basics</h3>
|
|
65
|
+
<p>
|
|
66
|
+
Serverless computing has matured significantly, moving beyond simple
|
|
67
|
+
function execution to comprehensive application architectures. The new
|
|
68
|
+
generation of serverless platforms offers:
|
|
69
|
+
</p>
|
|
70
|
+
|
|
71
|
+
<ul class="mw-list-dot">
|
|
72
|
+
<li>Stateful serverless functions with built-in memory persistence</li>
|
|
73
|
+
<li>Edge-optimized execution for global performance</li>
|
|
74
|
+
<li>Integrated database connections with automatic scaling</li>
|
|
75
|
+
<li>Real-time monitoring and debugging capabilities</li>
|
|
76
|
+
</ul>
|
|
77
|
+
|
|
78
|
+
<h4>Code Example: Modern Serverless Function</h4>
|
|
79
|
+
<pre><code>// Modern serverless function with state management
|
|
80
|
+
export async function handler(event, context) {
|
|
81
|
+
// Access persistent state across invocations
|
|
82
|
+
const state = await context.getState();
|
|
83
|
+
|
|
84
|
+
// Process the incoming request
|
|
85
|
+
const result = processRequest(event, state);
|
|
86
|
+
|
|
87
|
+
// Update the state for future invocations
|
|
88
|
+
await context.setState({
|
|
89
|
+
lastProcessed: new Date(),
|
|
90
|
+
counter: (state.counter || 0) + 1,
|
|
91
|
+
recentRequests: [...(state.recentRequests || []), event.id].slice(-10)
|
|
92
|
+
});
|
|
93
|
+
|
|
94
|
+
return {
|
|
95
|
+
statusCode: 200,
|
|
96
|
+
body: JSON.stringify(result)
|
|
97
|
+
};
|
|
98
|
+
}</code></pre>
|
|
99
|
+
|
|
100
|
+
<h3>Web Components and Micro-Frontends</h3>
|
|
101
|
+
<p>
|
|
102
|
+
The component-based architecture has evolved into a more standardized
|
|
103
|
+
approach with Web Components becoming the foundation of modern frontend
|
|
104
|
+
development. This has enabled true interoperability between different
|
|
105
|
+
frameworks and libraries.
|
|
106
|
+
</p>
|
|
107
|
+
|
|
108
|
+
<p>
|
|
109
|
+
Micro-frontends have also gained widespread adoption, allowing teams to
|
|
110
|
+
develop, test, and deploy parts of a frontend independently, using
|
|
111
|
+
different technologies if necessary.
|
|
112
|
+
</p>
|
|
113
|
+
|
|
114
|
+
<ul>
|
|
115
|
+
<li>
|
|
116
|
+
DOP is not anti-OOP - it's a refinement for clearer thinking and
|
|
117
|
+
modeling.
|
|
118
|
+
</li>
|
|
119
|
+
<li>
|
|
120
|
+
With <code>record</code>, <code>sealed interface</code>, and Pattern
|
|
121
|
+
Matching, Java is finally ready for this style.
|
|
122
|
+
</li>
|
|
123
|
+
<li>
|
|
124
|
+
You’ll get:
|
|
125
|
+
<ul>
|
|
126
|
+
<li>Transparent and predictable models</li>
|
|
127
|
+
<li>Easier testing and logging</li>
|
|
128
|
+
<li>Less coupling and fewer side effects</li>
|
|
129
|
+
</ul>
|
|
130
|
+
</li>
|
|
131
|
+
<li>
|
|
132
|
+
This approach can make your domain models sharper and your codebase
|
|
133
|
+
easier to reason about.
|
|
134
|
+
</li>
|
|
135
|
+
</ul>
|
|
136
|
+
|
|
137
|
+
<h3>Conclusion</h3>
|
|
138
|
+
<p>
|
|
139
|
+
As we move further into 2025, the web development landscape continues to
|
|
140
|
+
prioritize developer experience, performance, and scalability. By
|
|
141
|
+
embracing these modern techniques, developers can create more robust,
|
|
142
|
+
efficient, and maintainable applications.
|
|
143
|
+
</p>
|
|
144
|
+
</div>
|
|
145
|
+
|
|
146
|
+
<div class="mw-blog-post-footer">
|
|
147
|
+
<button type="button" class="mw-btn mw-blog-post-footer-button">
|
|
148
|
+
<i class="fas fa-arrow-left"></i>
|
|
149
|
+
<span>Previous Post</span>
|
|
150
|
+
</button>
|
|
151
|
+
<button type="button" class="mw-btn mw-btn-primary">Back to Blog</button>
|
|
152
|
+
<button type="button" class="mw-btn mw-blog-post-footer-button next">
|
|
153
|
+
<i class="fas fa-arrow-right"></i>
|
|
154
|
+
<span>Next Post</span>
|
|
155
|
+
</button>
|
|
156
|
+
</div>
|
|
157
|
+
</div>
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
<h3 class="mw-section-subtitle">Breadcrumbs</h3>
|
|
2
|
+
<p class="mw-text-muted">
|
|
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>
|