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
package/CLAUDE.md
DELETED
|
@@ -1,60 +0,0 @@
|
|
|
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, 59 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/ (never touches the root release files)
|
|
16
|
-
npm run format # Check formatting of SCSS, JS, JSON, HTML, MD (used by CI)
|
|
17
|
-
npm run format:fix # Format all files with Prettier
|
|
18
|
-
npm run verify # Consistency checks between built CSS, markup and docs
|
|
19
|
-
npm run prepack # Build minified maverick-wave.min.{css,js} in project root
|
|
20
|
-
# (runs automatically before npm pack / npm publish)
|
|
21
|
-
```
|
|
22
|
-
|
|
23
|
-
There are no test or lint scripts.
|
|
24
|
-
|
|
25
|
-
## Architecture
|
|
26
|
-
|
|
27
|
-
**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).
|
|
28
|
-
|
|
29
|
-
**SCSS layers** (`src/scss/`) follow an ITCSS-inspired structure:
|
|
30
|
-
|
|
31
|
-
- `abstracts/` - CSS custom properties, mixins, SCSS functions (color variant generation)
|
|
32
|
-
- `base/` - Reset, element defaults, typography
|
|
33
|
-
- `components/` - Self-contained component styles (59 files, one per component)
|
|
34
|
-
- `form-elements/` - Form input/select/checkbox-specific styles
|
|
35
|
-
- `layout/` - Grid, container, header/footer, section
|
|
36
|
-
- `utilities/` - Spacing, flex, display utility classes
|
|
37
|
-
- `main.scss` - Entry point using `@use`/`@forward` (not `@import`)
|
|
38
|
-
|
|
39
|
-
**Mobile-first** - The unprefixed block is the phone layout; `media-up($bp)` adds
|
|
40
|
-
to it. `media-down($bp)` only for rules that set what the base never sets, or
|
|
41
|
-
where the narrow layout costs more properties than the wide one.
|
|
42
|
-
|
|
43
|
-
**JavaScript** (`src/js/main.js`) - Single file. All components auto-initialize on `DOMContentLoaded`. Includes: gallery and image sliders, theme toggle (persisted to localStorage, transitions suppressed during the flip), accordion, mobile nav, progress bar (IntersectionObserver), scroll spy, tabs (which also get their ARIA and arrow-key handling here), alerts/toasts, modals, range inputs, dropdowns, language switcher, checkbox lists, kanban board, calendar, portrait gallery, mosaic, lightbox, story reels.
|
|
44
|
-
|
|
45
|
-
**HTML showcase** (`index.html` + `src/partials/`) - The top-level `index.html` uses `@@include()` syntax to pull in 72 partials from `src/partials/`. These compile into `dist/index.html`.
|
|
46
|
-
|
|
47
|
-
## Naming Conventions
|
|
48
|
-
|
|
49
|
-
- **CSS classes**: `mw-` prefix for all framework classes (`.mw-btn`, `.mw-card`, `.mw-modal`)
|
|
50
|
-
- **State classes**: `.mw-active`, `.mw-selected`
|
|
51
|
-
- **CSS custom properties**: `--mw-` prefix (`--mw-primary-color`, `--mw-font-family-base`)
|
|
52
|
-
- **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
|
|
53
|
-
|
|
54
|
-
## Code Formatting
|
|
55
|
-
|
|
56
|
-
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:fix` before committing.
|
|
57
|
-
|
|
58
|
-
## Commit Convention
|
|
59
|
-
|
|
60
|
-
Follows Conventional Commits: `feat:`, `fix:`, `release:`, etc.
|
package/gulpfile.js
DELETED
|
@@ -1,167 +0,0 @@
|
|
|
1
|
-
const gulp = require('gulp');
|
|
2
|
-
const fileinclude = require('gulp-file-include');
|
|
3
|
-
const sass = require('gulp-sass')(require('sass'));
|
|
4
|
-
const postcss = require('gulp-postcss');
|
|
5
|
-
const autoprefixer = require('autoprefixer');
|
|
6
|
-
// clean-css 4 is the last release gulp-clean-css pins, and it predates
|
|
7
|
-
// @container, @layer and @starting-style: it drops those blocks or eats their
|
|
8
|
-
// selectors without an error. cssnano runs in the postcss pass that is already
|
|
9
|
-
// here and understands them.
|
|
10
|
-
const cssnano = require('cssnano');
|
|
11
|
-
// postcss-calc cannot lex relative color syntax - `calc(l * 0.85)` inside
|
|
12
|
-
// `oklch(from ...)` makes it log a parse error per declaration. It leaves the
|
|
13
|
-
// value alone, so the output was always correct, but the noise buried real
|
|
14
|
-
// build errors. Switching it off leaves ten calc() terms unfolded
|
|
15
|
-
// (`calc(500px - 1.5rem - 2px)` stays as written), worth about 100 bytes across
|
|
16
|
-
// the whole file - cheaper than a build log nobody reads.
|
|
17
|
-
const cssnanoPreset = ['default', { calc: false }];
|
|
18
|
-
const terser = require('gulp-terser');
|
|
19
|
-
const fs = require('fs');
|
|
20
|
-
const path = require('path');
|
|
21
|
-
const rename = require('gulp-rename');
|
|
22
|
-
const through = require('through2');
|
|
23
|
-
const { deleteAsync } = require('del');
|
|
24
|
-
|
|
25
|
-
// Paths
|
|
26
|
-
const paths = {
|
|
27
|
-
root: '.',
|
|
28
|
-
src: 'src',
|
|
29
|
-
dist: 'dist',
|
|
30
|
-
scss: 'src/scss/**/*.scss',
|
|
31
|
-
html: '*.html',
|
|
32
|
-
js: 'src/js/*.js',
|
|
33
|
-
assets: 'src/assets/**/*',
|
|
34
|
-
};
|
|
35
|
-
|
|
36
|
-
function convertDateFormat(dateStr) {
|
|
37
|
-
// Use regex to match day, month, and year
|
|
38
|
-
const regex = /(\d{2})\/(\d{2})\/(\d{4})/;
|
|
39
|
-
// Replace with year-month-day format
|
|
40
|
-
return dateStr.replace(regex, '$3-$2-$1');
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
// Process HTML files
|
|
44
|
-
gulp.task('html', function () {
|
|
45
|
-
return gulp
|
|
46
|
-
.src(paths.html)
|
|
47
|
-
.pipe(
|
|
48
|
-
fileinclude({
|
|
49
|
-
prefix: '@@',
|
|
50
|
-
basepath: '@file',
|
|
51
|
-
})
|
|
52
|
-
)
|
|
53
|
-
.pipe(gulp.dest(paths.dist));
|
|
54
|
-
});
|
|
55
|
-
|
|
56
|
-
// Process SCSS files
|
|
57
|
-
gulp.task('scss-build', function () {
|
|
58
|
-
return gulp
|
|
59
|
-
.src(paths.scss)
|
|
60
|
-
.pipe(sass().on('error', sass.logError))
|
|
61
|
-
.pipe(postcss([autoprefixer(), cssnano({ preset: cssnanoPreset })]))
|
|
62
|
-
.pipe(rename('maverick-wave.min.css'))
|
|
63
|
-
.pipe(gulp.dest(path.join(paths.dist)));
|
|
64
|
-
});
|
|
65
|
-
gulp.task('scss-release', function () {
|
|
66
|
-
return gulp
|
|
67
|
-
.src(paths.scss)
|
|
68
|
-
.pipe(sass().on('error', sass.logError))
|
|
69
|
-
.pipe(postcss([autoprefixer(), cssnano({ preset: cssnanoPreset })]))
|
|
70
|
-
.pipe(rename('maverick-wave.min.css'))
|
|
71
|
-
.pipe(gulp.dest(path.join(paths.root)));
|
|
72
|
-
});
|
|
73
|
-
|
|
74
|
-
// Copy JavaScript files
|
|
75
|
-
gulp.task('js-build', function () {
|
|
76
|
-
return gulp
|
|
77
|
-
.src(paths.js)
|
|
78
|
-
.pipe(terser())
|
|
79
|
-
.pipe(rename('maverick-wave.min.js'))
|
|
80
|
-
.pipe(gulp.dest(path.join(paths.dist)));
|
|
81
|
-
});
|
|
82
|
-
gulp.task('js-release', function () {
|
|
83
|
-
return gulp
|
|
84
|
-
.src(paths.js)
|
|
85
|
-
.pipe(terser())
|
|
86
|
-
.pipe(rename('maverick-wave.min.js'))
|
|
87
|
-
.pipe(gulp.dest(path.join(paths.root)));
|
|
88
|
-
});
|
|
89
|
-
|
|
90
|
-
// Copy assets
|
|
91
|
-
gulp.task('assets', function () {
|
|
92
|
-
return gulp
|
|
93
|
-
.src(paths.assets, { encoding: false })
|
|
94
|
-
.pipe(gulp.dest(path.join(paths.dist)));
|
|
95
|
-
});
|
|
96
|
-
|
|
97
|
-
// Inject build info into HTML
|
|
98
|
-
gulp.task('inject-build-info', function () {
|
|
99
|
-
// Get package.json data
|
|
100
|
-
const packageJson = JSON.parse(fs.readFileSync('./package.json', 'utf8'));
|
|
101
|
-
|
|
102
|
-
// Create build info object
|
|
103
|
-
const buildInfo = {
|
|
104
|
-
name: packageJson.name,
|
|
105
|
-
version: packageJson.version,
|
|
106
|
-
buildDate: convertDateFormat(new Date().toLocaleDateString('en-DE')),
|
|
107
|
-
};
|
|
108
|
-
|
|
109
|
-
// Create a custom transform stream to inject build info
|
|
110
|
-
const injectBuildInfo = through.obj(function (file, enc, cb) {
|
|
111
|
-
if (file.isBuffer()) {
|
|
112
|
-
let contents = file.contents.toString();
|
|
113
|
-
|
|
114
|
-
// Replace placeholders with actual values
|
|
115
|
-
contents = contents.replace(/\{\{VERSION\}\}/g, buildInfo.version);
|
|
116
|
-
contents = contents.replace(
|
|
117
|
-
/\{\{LAST_BUILD_DATE\}\}/g,
|
|
118
|
-
buildInfo.buildDate
|
|
119
|
-
);
|
|
120
|
-
contents = contents.replace(
|
|
121
|
-
/\{\{LAST_BUILD_YEAR\}\}/g,
|
|
122
|
-
buildInfo.buildDate.slice(0, 4)
|
|
123
|
-
);
|
|
124
|
-
|
|
125
|
-
file.contents = Buffer.from(contents);
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
this.push(file);
|
|
129
|
-
cb();
|
|
130
|
-
});
|
|
131
|
-
|
|
132
|
-
return gulp
|
|
133
|
-
.src(path.join(paths.dist, '*.html'))
|
|
134
|
-
.pipe(injectBuildInfo)
|
|
135
|
-
.pipe(gulp.dest(paths.dist));
|
|
136
|
-
});
|
|
137
|
-
|
|
138
|
-
// clean - remove dist only. The root maverick-wave.min.* files are committed
|
|
139
|
-
// release artifacts - deleting them here once shipped a broken npm package
|
|
140
|
-
// (4.22.0) because a plain build before publish wiped them.
|
|
141
|
-
gulp.task('clean', async function () {
|
|
142
|
-
await deleteAsync(['dist'], { force: true });
|
|
143
|
-
});
|
|
144
|
-
|
|
145
|
-
// Watch for changes
|
|
146
|
-
gulp.task('watch', function () {
|
|
147
|
-
gulp.watch(paths.scss, gulp.series('scss-build'));
|
|
148
|
-
gulp.watch('*.html', gulp.series('html', 'inject-build-info'));
|
|
149
|
-
gulp.watch('src/partials/*.html', gulp.series('html', 'inject-build-info'));
|
|
150
|
-
gulp.watch(paths.js, gulp.series('js-build'));
|
|
151
|
-
gulp.watch(paths.assets, gulp.series('assets'));
|
|
152
|
-
});
|
|
153
|
-
|
|
154
|
-
// Build task
|
|
155
|
-
gulp.task(
|
|
156
|
-
'build',
|
|
157
|
-
gulp.series(
|
|
158
|
-
gulp.parallel('scss-build', 'js-build', 'assets', 'html'),
|
|
159
|
-
'inject-build-info'
|
|
160
|
-
)
|
|
161
|
-
);
|
|
162
|
-
|
|
163
|
-
// Release task
|
|
164
|
-
gulp.task('release', gulp.series(gulp.parallel('scss-release', 'js-release')));
|
|
165
|
-
|
|
166
|
-
// Default task
|
|
167
|
-
gulp.task('default', gulp.series('build', 'watch'));
|