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.
Files changed (141) hide show
  1. package/.claude/commands/mw.md +580 -0
  2. package/.claude/settings.local.json +11 -0
  3. package/.idea/codeStyles/Project.xml +59 -0
  4. package/.idea/codeStyles/codeStyleConfig.xml +5 -0
  5. package/.idea/maverick-wave.iml +12 -0
  6. package/.idea/modules.xml +8 -0
  7. package/.idea/prettier.xml +6 -0
  8. package/.idea/vcs.xml +6 -0
  9. package/.prettierignore +6 -0
  10. package/.prettierrc.json +7 -0
  11. package/CHANGELOG.md +420 -0
  12. package/CLAUDE.md +53 -0
  13. package/LICENSE +21 -0
  14. package/README.md +191 -0
  15. package/gulpfile.js +158 -0
  16. package/index.html +472 -0
  17. package/maverick-wave.min.css +1 -0
  18. package/maverick-wave.min.js +1 -0
  19. package/package.json +52 -0
  20. package/release.sh +17 -0
  21. package/src/assets/favicon/android-chrome-192x192.png +0 -0
  22. package/src/assets/favicon/android-chrome-512x512.png +0 -0
  23. package/src/assets/favicon/apple-touch-icon.png +0 -0
  24. package/src/assets/favicon/favicon-16x16.png +0 -0
  25. package/src/assets/favicon/favicon-32x32.png +0 -0
  26. package/src/assets/favicon/site.webmanifest +1 -0
  27. package/src/assets/favicon.ico +0 -0
  28. package/src/assets/header-logo.svg +24 -0
  29. package/src/js/main.js +587 -0
  30. package/src/partials/accordions-container.html +163 -0
  31. package/src/partials/alerts-container.html +120 -0
  32. package/src/partials/avatars-container.html +84 -0
  33. package/src/partials/blog-posts-container.html +157 -0
  34. package/src/partials/breadcrumbs-container.html +126 -0
  35. package/src/partials/button-bar-container.html +168 -0
  36. package/src/partials/buttons-container.html +133 -0
  37. package/src/partials/cards-container.html +508 -0
  38. package/src/partials/code-container.html +194 -0
  39. package/src/partials/colors-container.html +125 -0
  40. package/src/partials/coming-soon-container.html +6 -0
  41. package/src/partials/content-slider-container.html +47 -0
  42. package/src/partials/divider-container.html +52 -0
  43. package/src/partials/documentation-container.html +161 -0
  44. package/src/partials/empty-state-container.html +74 -0
  45. package/src/partials/footer-container.html +113 -0
  46. package/src/partials/form-container.html +257 -0
  47. package/src/partials/form-elements-container.html +595 -0
  48. package/src/partials/form-field-container.html +141 -0
  49. package/src/partials/gallery-container.html +49 -0
  50. package/src/partials/get-started-container.html +294 -0
  51. package/src/partials/grid-container.html +171 -0
  52. package/src/partials/header-container.html +49 -0
  53. package/src/partials/header-utilities-container.html +80 -0
  54. package/src/partials/home-container.html +48 -0
  55. package/src/partials/html-lists-container.html +58 -0
  56. package/src/partials/info-container.html +87 -0
  57. package/src/partials/input-group-container.html +285 -0
  58. package/src/partials/item-lists-container.html +413 -0
  59. package/src/partials/login-container.html +61 -0
  60. package/src/partials/meta-info-container.html +16 -0
  61. package/src/partials/modals-container.html +136 -0
  62. package/src/partials/pagination-container.html +27 -0
  63. package/src/partials/panels-container.html +196 -0
  64. package/src/partials/progress-container.html +226 -0
  65. package/src/partials/ratings-container.html +104 -0
  66. package/src/partials/skeleton-container.html +82 -0
  67. package/src/partials/spinners-container.html +92 -0
  68. package/src/partials/stepper-container.html +107 -0
  69. package/src/partials/tables-container.html +120 -0
  70. package/src/partials/tabs-container.html +263 -0
  71. package/src/partials/tags-container.html +168 -0
  72. package/src/partials/techstack-bucket-container.html +174 -0
  73. package/src/partials/tiles-container.html +245 -0
  74. package/src/partials/timelines-container.html +196 -0
  75. package/src/partials/typography-container.html +66 -0
  76. package/src/partials/utilities-container.html +85 -0
  77. package/src/scss/abstracts/_functions.scss +37 -0
  78. package/src/scss/abstracts/_index.scss +3 -0
  79. package/src/scss/abstracts/_mixins.scss +45 -0
  80. package/src/scss/abstracts/_variables.scss +222 -0
  81. package/src/scss/base/_base.scss +165 -0
  82. package/src/scss/base/_index.scss +3 -0
  83. package/src/scss/base/_reset.scss +75 -0
  84. package/src/scss/base/_typography.scss +230 -0
  85. package/src/scss/components/_accordions.scss +91 -0
  86. package/src/scss/components/_alerts.scss +105 -0
  87. package/src/scss/components/_avatars.scss +123 -0
  88. package/src/scss/components/_blog-post.scss +268 -0
  89. package/src/scss/components/_breadcrumbs.scss +108 -0
  90. package/src/scss/components/_button-bar.scss +139 -0
  91. package/src/scss/components/_buttons.scss +164 -0
  92. package/src/scss/components/_cards.scss +316 -0
  93. package/src/scss/components/_code.scss +252 -0
  94. package/src/scss/components/_coming-soon.scss +92 -0
  95. package/src/scss/components/_content-slider.scss +119 -0
  96. package/src/scss/components/_divider.scss +70 -0
  97. package/src/scss/components/_empty-state.scss +73 -0
  98. package/src/scss/components/_gallery.scss +158 -0
  99. package/src/scss/components/_index.scss +33 -0
  100. package/src/scss/components/_info.scss +143 -0
  101. package/src/scss/components/_lists.scss +653 -0
  102. package/src/scss/components/_localhost-indicator.scss +29 -0
  103. package/src/scss/components/_meta-info.scss +34 -0
  104. package/src/scss/components/_modals.scss +118 -0
  105. package/src/scss/components/_pagination.scss +99 -0
  106. package/src/scss/components/_panels.scss +112 -0
  107. package/src/scss/components/_progress.scss +107 -0
  108. package/src/scss/components/_ratings.scss +47 -0
  109. package/src/scss/components/_skeleton.scss +90 -0
  110. package/src/scss/components/_spinners.scss +208 -0
  111. package/src/scss/components/_stepper.scss +145 -0
  112. package/src/scss/components/_tables.scss +127 -0
  113. package/src/scss/components/_tabs.scss +146 -0
  114. package/src/scss/components/_tags.scss +93 -0
  115. package/src/scss/components/_techstack-bucket.scss +145 -0
  116. package/src/scss/components/_theme-toggle.scss +50 -0
  117. package/src/scss/components/_tiles.scss +217 -0
  118. package/src/scss/components/_timelines.scss +339 -0
  119. package/src/scss/form-elements/_checkbox.scss +174 -0
  120. package/src/scss/form-elements/_form.scss +122 -0
  121. package/src/scss/form-elements/_index.scss +10 -0
  122. package/src/scss/form-elements/_input-group.scss +103 -0
  123. package/src/scss/form-elements/_input.scss +72 -0
  124. package/src/scss/form-elements/_login.scss +62 -0
  125. package/src/scss/form-elements/_radio.scss +144 -0
  126. package/src/scss/form-elements/_select.scss +56 -0
  127. package/src/scss/form-elements/_slider.scss +174 -0
  128. package/src/scss/form-elements/_textarea.scss +74 -0
  129. package/src/scss/form-elements/_toggle.scss +174 -0
  130. package/src/scss/layout/_footer.scss +214 -0
  131. package/src/scss/layout/_grid.scss +287 -0
  132. package/src/scss/layout/_header.scss +441 -0
  133. package/src/scss/layout/_home.scss +40 -0
  134. package/src/scss/layout/_index.scss +6 -0
  135. package/src/scss/layout/_main.scss +116 -0
  136. package/src/scss/layout/_section.scss +89 -0
  137. package/src/scss/main.scss +5 -0
  138. package/src/scss/utilities/_display.scss +35 -0
  139. package/src/scss/utilities/_flex.scss +66 -0
  140. package/src/scss/utilities/_index.scss +3 -0
  141. package/src/scss/utilities/_spacing.scss +78 -0
@@ -0,0 +1,6 @@
1
+ # node
2
+ node_modules
3
+ package-lock.json
4
+
5
+ # built output
6
+ dist
@@ -0,0 +1,7 @@
1
+ {
2
+ "singleQuote": true,
3
+ "printWidth": 80,
4
+ "tabWidth": 2,
5
+ "semi": true,
6
+ "trailingComma": "es5"
7
+ }
package/CHANGELOG.md ADDED
@@ -0,0 +1,420 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+ Patch releases are only for test purposes - here I only document major and minor releases.
5
+
6
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
7
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
8
+
9
+ ## [3.0.0] - 2026-04-04
10
+
11
+ ### Added
12
+
13
+ - started now with claude code integration
14
+ - some additional components and form elements
15
+
16
+ ### Fixed
17
+
18
+ - some minor fixes found by claude code
19
+
20
+ ## [2.36.0] - 2026-03-24
21
+
22
+ ### Fixed
23
+
24
+ - removed tooltip directive cursor
25
+
26
+ ## [2.35.0] - 2026-03-24
27
+
28
+ ### Added
29
+
30
+ - new mini info
31
+
32
+ ## [2.34.0] - 2026-03-23
33
+
34
+ ### Added
35
+
36
+ - new mini-buttons
37
+ - changed alert and tag "x" to new mini-button
38
+
39
+ ## [2.33.0] - 2026-02-24
40
+
41
+ ### Fixed
42
+
43
+ - timeline dates cursor
44
+
45
+ ## [2.32.0] - 2026-02-24
46
+
47
+ ### Changed
48
+
49
+ - some small updates
50
+
51
+ ## [2.31.0] - 2026-01-30
52
+
53
+ ### Changed
54
+
55
+ - use of global z-index function
56
+
57
+ ## [2.30.0] - 2026-01-29
58
+
59
+ ### Fixed
60
+
61
+ - status background colors
62
+ - alert backgrounds
63
+
64
+ ## [2.29.0] - 2026-01-29
65
+
66
+ ### Changed
67
+
68
+ - simple timeline date
69
+ - global spacing 7 and 8
70
+
71
+ ## [2.28.0] - 2026-01-28
72
+
73
+ ### Changed
74
+
75
+ - alerts rework
76
+
77
+ ## [2.27.0] - 2026-01-28
78
+
79
+ ### Added
80
+
81
+ - tags rework
82
+
83
+ ### Changed
84
+
85
+ - modal sizes
86
+ - checkbox inline group spacing
87
+
88
+ ## [2.26.0] - 2026-01-26
89
+
90
+ ### Added
91
+
92
+ - text in danger color
93
+
94
+ ## [2.25.0] - 2025-12-31
95
+
96
+ ### Fixed
97
+
98
+ - reverted status color background names
99
+
100
+ ## [2.24.0] - 2025-12-31
101
+
102
+ ### Fixed
103
+
104
+ - reverted status color background names
105
+
106
+ ## [2.23.0] - 2025-12-31
107
+
108
+ ### Changed
109
+
110
+ - gallery container with max-width
111
+
112
+ ## [2.22.0] - 2025-12-31
113
+
114
+ ### Changed
115
+
116
+ - container width
117
+ - status color background names
118
+
119
+ ### Added
120
+
121
+ - Techstack Buckets
122
+
123
+ ## [2.21.0] - 2025-12-26
124
+
125
+ ### Added
126
+
127
+ - Cards title divider
128
+
129
+ ## [2.20.0] - 2025-12-22
130
+
131
+ ### Added
132
+
133
+ - Events (certificates for example) for the big timeline
134
+
135
+ ## [2.19.0] - 2025-12-10
136
+
137
+ ### Added
138
+
139
+ - Tooltip
140
+
141
+ ## [2.18.0] - 2025-12-08
142
+
143
+ ### Added
144
+
145
+ - active marker for timelines
146
+ - function for font-weights
147
+
148
+ ## [2.17.0] - 2025-07-16
149
+
150
+ ### Added
151
+
152
+ - selectable item-list with checkboxes
153
+
154
+ ### Fixed
155
+
156
+ - sizing on gallery
157
+
158
+ ## [2.16.0] - 2025-07-07
159
+
160
+ ### Fixed
161
+
162
+ - some spacing
163
+ - icons
164
+
165
+ ## [2.15.0] - 2025-07-01
166
+
167
+ ### Fixed
168
+
169
+ - tiles spacing
170
+
171
+ ## [2.14.0] - 2025-07-01
172
+
173
+ ### Added
174
+
175
+ - breadcrumbs
176
+ - tiles
177
+
178
+ ### Fixed
179
+
180
+ - main centering
181
+
182
+ ## [2.13.0] - 2025-06-30
183
+
184
+ ### Fixed
185
+
186
+ - burger button without theme toggle
187
+
188
+ ## [2.12.0] - 2025-06-30
189
+
190
+ ### Fixed
191
+
192
+ - simple timeline content
193
+
194
+ ## [2.11.0] - 2025-06-30
195
+
196
+ ### Fixed
197
+
198
+ - home centering
199
+
200
+ ## [2.10.0] - 2025-06-30
201
+
202
+ ### Fixed
203
+
204
+ - login width
205
+ - main / home / content styles
206
+
207
+ ## [2.9.0] - 2025-06-30
208
+
209
+ ### Added
210
+
211
+ - login info text
212
+
213
+ ### Fixed
214
+
215
+ - login width
216
+ - content height
217
+
218
+ ## [2.8.0] - 2025-06-27
219
+
220
+ ### Fixed
221
+
222
+ - smooth scrolling offset
223
+
224
+ ## [2.7.0] - 2025-06-27
225
+
226
+ ### Added
227
+
228
+ - content slider (image slider)
229
+ - buttons active state
230
+
231
+ ## [2.6.0] - 2025-06-25
232
+
233
+ ### Added
234
+
235
+ - alternate section with css pattern
236
+
237
+ ## [2.5.0] - 2025-06-18
238
+
239
+ ### Added
240
+
241
+ - button bar
242
+
243
+ ## [2.4.0] - 2025-06-10
244
+
245
+ ### Fixed
246
+
247
+ - login button (click and disabled)
248
+
249
+ ## [2.3.0] - 2025-06-10
250
+
251
+ ### Fixed
252
+
253
+ - header navbar
254
+
255
+ ## [2.2.0] - 2025-06-10
256
+
257
+ ### Changed
258
+
259
+ - header navbar with login button
260
+
261
+ ## [2.1.0] - 2025-06-09
262
+
263
+ ### Fixed
264
+
265
+ - grid spacing
266
+
267
+ ## [2.0.0] - 2025-06-09
268
+
269
+ ### Added
270
+
271
+ - big update
272
+ - modals
273
+ - pagination
274
+ - item lists
275
+ - form and form-elements
276
+ - different flex grid ratios
277
+
278
+ ### Changes
279
+
280
+ - sizing sizing sizing
281
+ - complete grid rework
282
+ - progress bars update
283
+
284
+ ## [1.21.0] - 2025-05-23
285
+
286
+ ### Changed
287
+
288
+ - counters to info as badges or counters
289
+
290
+ ## [1.20.0] - 2025-05-23
291
+
292
+ ### Changed
293
+
294
+ - reworked allerts
295
+
296
+ ## [1.19.0] - 2025-05-22
297
+
298
+ ### Added
299
+
300
+ - badge for cards
301
+ - ribbon for cards
302
+
303
+ ### Changed
304
+
305
+ - text-secondary to text-muted
306
+ - Spacing within cards
307
+ - color variants in components as loop
308
+
309
+ ## [1.18.0] - 2025-05-22
310
+
311
+ ### Changed
312
+
313
+ - spacing in many components
314
+ - header logo as svg
315
+ - some stuff in new timeline components
316
+
317
+ ## [1.17.0] - 2025-05-21
318
+
319
+ ### Added
320
+
321
+ - timeline components
322
+
323
+ ## [1.16.0] - 2025-05-20
324
+
325
+ ### Changed
326
+
327
+ - sizes of the loading spinner
328
+
329
+ ## [1.15.0] - 2025-05-14
330
+
331
+ ### Fixed
332
+
333
+ - spacing of mw-content
334
+ - spacing and elements of mw-blog-post
335
+ - spacing of tags
336
+
337
+ ## [1.14.0] - 2025-05-14
338
+
339
+ ### Added
340
+
341
+ - rating component
342
+
343
+ ## [1.13.0] - 2025-05-13
344
+
345
+ ### Fixed
346
+
347
+ - login form width
348
+
349
+ ## [1.12.0] - 2025-05-13
350
+
351
+ ### Changed
352
+
353
+ - login form
354
+
355
+ ## [1.11.0] - 2025-05-13
356
+
357
+ ### Fixed
358
+
359
+ - removed text-align center from new mw-content
360
+
361
+ ## [1.10.0] - 2025-05-13
362
+
363
+ ### Changed
364
+
365
+ - main and home parts and added hero with full-size background image
366
+ - changed some little styles
367
+
368
+ ## [1.9.0] - 2025-05-05
369
+
370
+ ### Added
371
+
372
+ - card subtitle
373
+
374
+ ### Changed
375
+
376
+ - some color and size adjustments
377
+
378
+ ## [1.8.0] - 2025-05-03
379
+
380
+ ### Fixed
381
+
382
+ - too small font-size on blog-post
383
+
384
+ ## [1.7.0] - 2025-05-03
385
+
386
+ ### Changed
387
+
388
+ - home section
389
+ - all "@media" to "@include"
390
+
391
+ ## [1.6.0] - 2025-05-03
392
+
393
+ ### Fixed
394
+
395
+ - multiple font-family variables
396
+
397
+ ## [1.5.0] - 2025-05-02
398
+
399
+ ### Fixed
400
+
401
+ - wrong mapping of the text color on primary or secondary elements
402
+
403
+ ## [1.4.0] - 2025-05-02
404
+
405
+ ### Added
406
+
407
+ - new color variables for text on primary or secondary elements
408
+ - new color variables for the fixed header/navbar
409
+ - CHANGELOG.md
410
+
411
+ ### Changed
412
+
413
+ - updated complete header and navbar
414
+ - ol/ul-list margin in the blog-post
415
+
416
+ ## [1.3.0] - 2025-04-30
417
+
418
+ ### Added
419
+
420
+ - let's say "initial release"
package/CLAUDE.md ADDED
@@ -0,0 +1,53 @@
1
+ # CLAUDE.md
2
+
3
+ This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
4
+
5
+ ## Project Overview
6
+
7
+ MaverickWave is a lightweight, modern CSS framework providing a grid system, 25+ UI components, utility classes, and light/dark mode support. The repo also contains the showcase/documentation website bundled into the distribution.
8
+
9
+ ## Commands
10
+
11
+ ```bash
12
+ npm start # Build + watch for changes (development)
13
+ npm run build # Clean dist, then full build
14
+ npm run showcase # Serve built dist on http://localhost:8888
15
+ npm run clean # Remove dist/ and root maverick-wave.{css,js}
16
+ npm run format # Format all SCSS, JS, JSON, HTML, MD with Prettier
17
+ npm run release # Build non-minified maverick-wave.{css,js} in project root
18
+ ```
19
+
20
+ There are no test or lint scripts.
21
+
22
+ ## Architecture
23
+
24
+ **Build pipeline** — `gulpfile.js` orchestrates everything: SCSS compilation (autoprefixed, minified), JS minification via Terser, HTML templating via `gulp-file-include`, asset copying, and build-info injection (`{{VERSION}}`, `{{LAST_BUILD_DATE}}`, `{{LAST_BUILD_YEAR}}` placeholders replaced in HTML at build time).
25
+
26
+ **SCSS layers** (`src/scss/`) follow an ITCSS-inspired structure:
27
+
28
+ - `abstracts/` — CSS custom properties, mixins, SCSS functions (color variant generation)
29
+ - `base/` — Reset, element defaults, typography
30
+ - `components/` — Self-contained component styles (25+ files, one per component)
31
+ - `form-elements/` — Form input/select/checkbox-specific styles
32
+ - `layout/` — Grid, container, header/footer, section
33
+ - `utilities/` — Spacing, flex, display utility classes
34
+ - `main.scss` — Entry point using `@use`/`@forward` (not `@import`)
35
+
36
+ **JavaScript** (`src/js/main.js`) — Single file. All components auto-initialize on `DOMContentLoaded`. Includes: gallery slider, theme toggle (persisted to localStorage), accordion, mobile nav, progress bar (IntersectionObserver), scroll spy, tabs, alerts/toasts, modals, range inputs.
37
+
38
+ **HTML showcase** (`index.html` + `src/partials/`) — The top-level `index.html` uses `@@include()` syntax to pull in 40+ partials from `src/partials/`. These compile into `dist/index.html`.
39
+
40
+ ## Naming Conventions
41
+
42
+ - **CSS classes**: `mw-` prefix for all framework classes (`.mw-button`, `.mw-card`, `.mw-modal`)
43
+ - **State classes**: `.mw-active`, `.mw-selected`
44
+ - **CSS custom properties**: `--mw-` prefix (`--mw-primary-color`, `--mw-font-family-base`)
45
+ - **Theme control**: `--mw-internal-theme-mode` CSS var controls whether theme is switchable/fixed-light/fixed-dark; body class `mw-theme-light` toggles light mode
46
+
47
+ ## Code Formatting
48
+
49
+ Prettier is the single formatter. Config (`.prettierrc.json`): single quotes, 80-char print width, 2-space tabs, semicolons, trailing commas (ES5). Run `npm run format` before committing.
50
+
51
+ ## Commit Convention
52
+
53
+ Follows Conventional Commits: `feat:`, `fix:`, `release:`, etc.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Michael Wellner
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,191 @@
1
+ # MaverickWave
2
+
3
+ A lightweight, modern CSS framework for building responsive websites with elegance and speed. MaverickWave provides a clean foundation suitable for projects ranging from personal portfolios to corporate websites and e-commerce platforms.
4
+
5
+ While AI tools helped kickstart the development of some components and provided initial structure, approximately 80% of the codebase required manual refinement and customization. The framework has been meticulously crafted to ensure:
6
+
7
+ - Consistent implementation of custom variables throughout the system
8
+ - Proper integration between components and logical SCSS structure
9
+ - Optimized specificity and selector hierarchy
10
+ - Reliable responsive behavior across devices
11
+ - Built-in dark mode support and accessibility considerations
12
+
13
+ The result is a framework that balances utility with simplicity, offering developers a solid foundation that can be easily customized.
14
+
15
+ ➡️ [**View the Live Showcase & Documentation**](https://maverick-wave.m1well.com)
16
+
17
+ ## Features
18
+
19
+ - Responsive Grid System
20
+ - 30+ UI Components: Buttons, Cards, Panels, Tabs, Accordions, Modals, Tiles, Alerts, Spinners, Progress Bars, Avatars, Tags, Ratings, Stepper, Skeleton Loader, Empty State, Divider, and more
21
+ - Form Elements: Input, Select, Textarea, Checkbox, Radio, Toggle, Input Group, with `mw-field` wrapper pattern for Angular Reactive Forms
22
+ - Utility Classes for spacing, flex, display, and typography
23
+ - Easy Customization via CSS Custom Properties
24
+ - Built-in Light & Dark Mode with optional theme switching
25
+ - SCSS Source Files for advanced customization (Dart Sass, `@use`/`@forward`)
26
+ - Minimal JavaScript footprint (single vanilla JS file, no dependencies)
27
+
28
+ ## Installation & Usage
29
+
30
+ ### 1. CDN (jsDelivr — GitHub)
31
+
32
+ ```html
33
+ <!DOCTYPE html>
34
+ <html lang="en">
35
+ <head>
36
+ <meta charset="UTF-8" />
37
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
38
+ <title>My MaverickWave Project</title>
39
+ <link
40
+ rel="stylesheet"
41
+ href="https://cdn.jsdelivr.net/gh/m1well/maverick-wave@v2.36.1/maverick-wave.min.css"
42
+ />
43
+ </head>
44
+ <body>
45
+ <!-- Your content here -->
46
+
47
+ <script src="https://cdn.jsdelivr.net/gh/m1well/maverick-wave@v2.36.1/maverick-wave.min.js"></script>
48
+ </body>
49
+ </html>
50
+ ```
51
+
52
+ Always pin to a specific version tag (e.g., `@v2.36.1`) in production for stability.
53
+
54
+ ### 2. Direct Download
55
+
56
+ Download `maverick-wave.min.css` and `maverick-wave.min.js` from the [latest release](https://github.com/m1well/maverick-wave/releases) and include them manually:
57
+
58
+ ```html
59
+ <link rel="stylesheet" href="path/to/maverick-wave.min.css" />
60
+ <script src="path/to/maverick-wave.min.js"></script>
61
+ ```
62
+
63
+ ## Customization
64
+
65
+ ### CSS Custom Properties
66
+
67
+ Override framework variables in your own stylesheet (load it **after** `maverick-wave.min.css`):
68
+
69
+ ```css
70
+ :root {
71
+ --mw-primary-color: #your-brand-color;
72
+ --mw-secondary-color: #your-secondary-color;
73
+ --mw-dark-page-background: #1a1a2e;
74
+ --mw-dark-card-background: #2a2a4a;
75
+ --mw-font-family-base: 'Your Font Name', sans-serif;
76
+ }
77
+ ```
78
+
79
+ ### SCSS Source
80
+
81
+ For full control, clone the repository and integrate `src/scss/main.scss` into your Sass build (Dart Sass required). MaverickWave uses modern `@use`/`@forward` syntax. Set your variable overrides before the `@use` statement:
82
+
83
+ ```scss
84
+ // your styles.scss
85
+
86
+ // Optional: choose theme mode ('switchable' | 'dark' | 'light')
87
+ $mw-theme-mode: 'switchable';
88
+
89
+ // Override base colors
90
+ $primary-color: #e94560;
91
+ $secondary-color: #f39c12;
92
+ $dark-background: #1f1f2e;
93
+ $light-background: #f8f9fa;
94
+
95
+ // Import the framework
96
+ @use 'path/to/maverick-wave/src/scss/main';
97
+ ```
98
+
99
+ ### Angular Integration
100
+
101
+ Copy `maverick-wave.min.css` and `maverick-wave.min.js` into your Angular project (e.g. `src/assets/`) and reference them in `angular.json`:
102
+
103
+ ```json
104
+ "styles": ["src/assets/maverick-wave.min.css", "src/styles.scss"],
105
+ "scripts": ["src/assets/maverick-wave.min.js"]
106
+ ```
107
+
108
+ MaverickWave automatically styles Angular Reactive Forms state classes (`.ng-invalid.ng-touched`, `.ng-valid.ng-touched.ng-dirty`). Use the `mw-field` wrapper pattern:
109
+
110
+ ```html
111
+ <div
112
+ class="mw-field"
113
+ [class.mw-field-has-error]="email.invalid && email.touched"
114
+ >
115
+ <label class="mw-field-label mw-required" for="email">Email</label>
116
+ <input id="email" type="email" class="mw-input" formControlName="email" />
117
+ <span class="mw-field-error" *ngIf="email.invalid && email.touched">
118
+ <i class="fas fa-exclamation-circle"></i> Please enter a valid email
119
+ address.
120
+ </span>
121
+ </div>
122
+ ```
123
+
124
+ ## Development
125
+
126
+ ### Prerequisites
127
+
128
+ - Node.js v18 or newer
129
+ - npm
130
+ - Git
131
+
132
+ ### Setup
133
+
134
+ ```bash
135
+ git clone https://github.com/m1well/maverick-wave.git
136
+ cd maverick-wave
137
+ npm install
138
+ ```
139
+
140
+ ### Development Commands
141
+
142
+ ```bash
143
+ npm run start # Start Gulp watcher (recompiles on changes)
144
+ npm run showcase # Serve the built dist/ on http://localhost:8888
145
+ npm run build # Full clean build → dist/
146
+ npm run format # Format all source files with Prettier
147
+ npm run release # Build non-minified release files to project root
148
+ ```
149
+
150
+ ## Project Structure
151
+
152
+ ```
153
+ maverick-wave/
154
+ ├── dist/ # Compiled output (CSS, JS, HTML showcase)
155
+ ├── src/
156
+ │ ├── assets/ # Logos, favicons
157
+ │ ├── js/ # JavaScript source (single file)
158
+ │ ├── partials/ # HTML partials for the showcase
159
+ │ └── scss/
160
+ │ ├── abstracts/ # Variables, mixins, functions
161
+ │ ├── base/ # Reset, typography
162
+ │ ├── components/ # Component styles (one file per component)
163
+ │ ├── form-elements/ # Input, select, checkbox, toggle, etc.
164
+ │ ├── layout/ # Grid, container, header, footer
165
+ │ ├── utilities/ # Spacing, flex, display helpers
166
+ │ └── main.scss # SCSS entry point
167
+ ├── .claude/
168
+ │ └── commands/mw.md # Claude Code slash command for Angular projects
169
+ ├── .prettierrc.json # Prettier configuration
170
+ ├── gulpfile.js # Gulp tasks configuration
171
+ ├── index.html # Showcase entry point
172
+ └── package.json
173
+ ```
174
+
175
+ ## Contribution
176
+
177
+ Contributions are welcome!
178
+
179
+ 1. Fork the repository.
180
+ 2. Create a new branch for your feature or fix.
181
+ 3. Make your changes and run `npm run format`.
182
+ 4. Commit using Conventional Commits (e.g., `feat: add new component`).
183
+ 5. Push and open a Pull Request.
184
+
185
+ ## License
186
+
187
+ MIT License
188
+
189
+ ## Author
190
+
191
+ Created by [m1well](https://m1well.com)