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/package.json
CHANGED
|
@@ -1,12 +1,18 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "maverick-wave",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.32.0",
|
|
4
4
|
"config": {
|
|
5
|
-
"version_short": "5.
|
|
5
|
+
"version_short": "5.32"
|
|
6
6
|
},
|
|
7
7
|
"description": "A lightweight, modern CSS framework for building responsive websites with elegance and speed.",
|
|
8
8
|
"main": "src/js/main.js",
|
|
9
9
|
"style": "src/scss/main.scss",
|
|
10
|
+
"files": [
|
|
11
|
+
"maverick-wave.min.css",
|
|
12
|
+
"maverick-wave.min.js",
|
|
13
|
+
"src/scss",
|
|
14
|
+
"src/js"
|
|
15
|
+
],
|
|
10
16
|
"scripts": {
|
|
11
17
|
"clean": "gulp clean",
|
|
12
18
|
"format": "prettier --check \"**/*.{scss,js,json,html,md}\"",
|
|
@@ -60,6 +60,8 @@ $hover-shift: 15% !default;
|
|
|
60
60
|
// light one - and 0.58 is as low as that end goes without moving three colors.
|
|
61
61
|
$ink-lightness-dark: 0.52 !default;
|
|
62
62
|
$ink-lightness-light: 0.58 !default;
|
|
63
|
+
// On the hero photo 0.52 measured 1.2-2.7:1, 0.72 clears 3:1 and keeps the hue
|
|
64
|
+
$hero-ink-lightness: 0.72 !default;
|
|
63
65
|
// How much primary the muted gray picks up, so it belongs to the palette. 0% is true gray.
|
|
64
66
|
$muted-tint: 23% !default;
|
|
65
67
|
|
|
@@ -174,13 +174,13 @@
|
|
|
174
174
|
display var(--mw-duration-base) allow-discrete;
|
|
175
175
|
|
|
176
176
|
&[open] {
|
|
177
|
-
//
|
|
178
|
-
//
|
|
179
|
-
//
|
|
180
|
-
//
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
177
|
+
// A block, not the flex column of the div version and not a grid: iOS
|
|
178
|
+
// WebKit takes the intrinsic height of a scrolling flex or grid item in a
|
|
179
|
+
// top-layer dialog as zero. A dialog shorter than its cap then shows its
|
|
180
|
+
// header and footer and nothing between - a grid only hides it until the
|
|
181
|
+
// content outgrows the cap. Desktop browsers and Playwright's WebKit do not
|
|
182
|
+
// show it, so only a real iPhone can confirm a change here.
|
|
183
|
+
display: block;
|
|
184
184
|
opacity: 1;
|
|
185
185
|
transform: scale(1) translateY(0);
|
|
186
186
|
|
|
@@ -192,12 +192,19 @@
|
|
|
192
192
|
}
|
|
193
193
|
}
|
|
194
194
|
|
|
195
|
-
//
|
|
196
|
-
// the
|
|
195
|
+
// With no row to scroll in, the body gets a cap of its own: the dialog's,
|
|
196
|
+
// less the room its header and footer take (61px each on a phone sheet)
|
|
197
197
|
.mw-modal-body {
|
|
198
|
+
max-height: calc(var(--mw-modal-max-height) - 8rem);
|
|
199
|
+
// Without it an absolute child - screen reader text, a tooltip - anchors to
|
|
200
|
+
// the dialog, escapes the body's scroll and makes the whole dialog scroll
|
|
198
201
|
position: relative;
|
|
199
202
|
}
|
|
200
203
|
|
|
204
|
+
&:not(:has(> .mw-modal-footer)) .mw-modal-body {
|
|
205
|
+
max-height: calc(var(--mw-modal-max-height) - 4rem);
|
|
206
|
+
}
|
|
207
|
+
|
|
201
208
|
&::backdrop {
|
|
202
209
|
background: var(--mw-overlay-background);
|
|
203
210
|
backdrop-filter: blur(3px);
|
|
@@ -244,6 +251,13 @@
|
|
|
244
251
|
}
|
|
245
252
|
}
|
|
246
253
|
|
|
254
|
+
// Neither shape locks the page scroll behind it - the <dialog> only makes the
|
|
255
|
+
// page inert, which still lets a finger or a wheel move it
|
|
256
|
+
:root:has(dialog.mw-modal[open], .mw-modal-overlay.mw-modal-open) {
|
|
257
|
+
overflow: hidden;
|
|
258
|
+
scrollbar-gutter: stable; // Or the page shifts by the hidden scrollbar
|
|
259
|
+
}
|
|
260
|
+
|
|
247
261
|
// Modal sections
|
|
248
262
|
.mw-modal-header {
|
|
249
263
|
padding: spacing('3') spacing('5');
|
|
@@ -24,6 +24,8 @@
|
|
|
24
24
|
// surface - inside it the quote keeps only the edge and the quotation marks
|
|
25
25
|
// as its sign.
|
|
26
26
|
blockquote {
|
|
27
|
+
// Grows with the card, or a short quote's tint stops halfway down it
|
|
28
|
+
flex-grow: 1;
|
|
27
29
|
background: color-mix(in srgb, var(--mw-secondary-color) 6%, transparent);
|
|
28
30
|
border-left-color: color-mix(
|
|
29
31
|
in srgb,
|
|
@@ -31,6 +31,15 @@
|
|
|
31
31
|
width: 85%;
|
|
32
32
|
position: relative;
|
|
33
33
|
margin: spacing('0') auto spacing('4');
|
|
34
|
+
|
|
35
|
+
// The hero is dark in both themes, the light theme's inks sink into it
|
|
36
|
+
@each $name, $value in $semantic-colors {
|
|
37
|
+
--mw-#{$name}-text-color: #{ink-on-dark(
|
|
38
|
+
'#{$name}-color',
|
|
39
|
+
$hero-ink-lightness
|
|
40
|
+
)};
|
|
41
|
+
}
|
|
42
|
+
|
|
34
43
|
@include media-up('sm') {
|
|
35
44
|
width: min(75%, 700px);
|
|
36
45
|
}
|
|
@@ -45,9 +54,46 @@
|
|
|
45
54
|
justify-items: start;
|
|
46
55
|
text-align: left;
|
|
47
56
|
|
|
57
|
+
// 85% of a phone leaves a ragged strip right of left-aligned text
|
|
48
58
|
.mw-home-text {
|
|
59
|
+
width: min(100%, 42rem);
|
|
49
60
|
margin-inline: 0;
|
|
50
61
|
}
|
|
62
|
+
|
|
63
|
+
.mw-home-actions {
|
|
64
|
+
margin-inline: 0;
|
|
65
|
+
|
|
66
|
+
@include media-up('sm') {
|
|
67
|
+
justify-content: flex-start;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
// Two buttons that wrap onto two lines at their own widths read as a
|
|
73
|
+
// staircase, so a phone stacks them at one width instead
|
|
74
|
+
.mw-home-actions {
|
|
75
|
+
display: flex;
|
|
76
|
+
flex-direction: column;
|
|
77
|
+
gap: spacing('4');
|
|
78
|
+
width: min(100%, 20rem);
|
|
79
|
+
margin-inline: auto;
|
|
80
|
+
|
|
81
|
+
@include media-up('sm') {
|
|
82
|
+
flex-direction: row;
|
|
83
|
+
flex-wrap: wrap;
|
|
84
|
+
justify-content: center;
|
|
85
|
+
gap: spacing('5');
|
|
86
|
+
width: auto;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
// The rem floor matters: a pure vh band gives the least on a flat screen
|
|
91
|
+
.mw-home-bottom {
|
|
92
|
+
padding-block: spacing('6') spacing('4');
|
|
93
|
+
|
|
94
|
+
@include media-up('md') {
|
|
95
|
+
padding-block: spacing('9') clamp(5.5rem, 12vh, 9rem);
|
|
96
|
+
}
|
|
51
97
|
}
|
|
52
98
|
|
|
53
99
|
@keyframes mw-home-fade {
|
|
@@ -66,6 +66,11 @@
|
|
|
66
66
|
z-index: z-index('card');
|
|
67
67
|
}
|
|
68
68
|
|
|
69
|
+
// .mw-home sizes itself in % of this flex item, which must not shrink
|
|
70
|
+
> .mw-hero {
|
|
71
|
+
width: 100%;
|
|
72
|
+
}
|
|
73
|
+
|
|
69
74
|
// Add `mw-parallax` here and a `.mw-parallax-media` child and the picture
|
|
70
75
|
// becomes its own layer, free to drift or to stay pinned. It reads the
|
|
71
76
|
// same token, so the image is still configured in one place - and a
|
|
@@ -159,6 +164,21 @@
|
|
|
159
164
|
);
|
|
160
165
|
}
|
|
161
166
|
}
|
|
167
|
+
|
|
168
|
+
// Bottom text shares the lower edge with the cue below lg, phones too
|
|
169
|
+
&:has(.mw-home-bottom) {
|
|
170
|
+
align-items: flex-end;
|
|
171
|
+
|
|
172
|
+
@include media-down('lg') {
|
|
173
|
+
&:has(> .mw-scroll-hint) {
|
|
174
|
+
--mw-scroll-hint-reserve: #{spacing('10')};
|
|
175
|
+
|
|
176
|
+
padding-bottom: calc(
|
|
177
|
+
var(--mw-scroll-hint-offset) + var(--mw-scroll-hint-reserve)
|
|
178
|
+
);
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
}
|
|
162
182
|
}
|
|
163
183
|
}
|
|
164
184
|
|
|
@@ -158,8 +158,8 @@
|
|
|
158
158
|
:is(.mw-parallax-sticky, .mw-parallax-slow) + *:not(.mw-parallax-sticky)
|
|
159
159
|
) {
|
|
160
160
|
box-shadow:
|
|
161
|
-
0 -
|
|
162
|
-
0 -
|
|
161
|
+
0 -8px 18px rgb(0 0 0 / 55%),
|
|
162
|
+
0 -28px 60px rgb(0 0 0 / 38%);
|
|
163
163
|
}
|
|
164
164
|
|
|
165
165
|
// Ink on a photograph, the same pair the hero uses: the picture goes down, the
|
package/src/scss/main-lean.scss
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
// The same framework without the
|
|
2
|
-
// grid, container, section, header, footer and every
|
|
3
|
-
// components the page actually uses next to it, each one its
|
|
1
|
+
// The same framework without the components, bar the two at the end: tokens,
|
|
2
|
+
// reset, typography, grid, container, section, header, footer and every
|
|
3
|
+
// utility. Add the components the page actually uses next to it, each one its
|
|
4
|
+
// own file:
|
|
4
5
|
//
|
|
5
6
|
// @use 'maverick-wave/src/scss/main-lean' with ($primary-color: #1b1b1d);
|
|
6
7
|
// @use 'maverick-wave/src/scss/components/buttons';
|
|
@@ -14,3 +15,7 @@
|
|
|
14
15
|
@use 'base';
|
|
15
16
|
@use 'layout';
|
|
16
17
|
@use 'utilities';
|
|
18
|
+
|
|
19
|
+
// The layout uses these two: data-tooltip in the footer, the badge in the hero
|
|
20
|
+
@use 'components/tooltip';
|
|
21
|
+
@use 'components/hero-badge';
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"permissions": {
|
|
3
|
-
"allow": [
|
|
4
|
-
"Bash(grep -rn '$_mw\\\\|$_size\\\\|$_border' src/scss '--include=*.scss')",
|
|
5
|
-
"Bash(npm run:*)",
|
|
6
|
-
"Bash(node:*)",
|
|
7
|
-
"Bash(git ls-tree:*)",
|
|
8
|
-
"Bash(git ls-remote:*)",
|
|
9
|
-
"Bash(npm outdated:*)",
|
|
10
|
-
"Bash(npm update:*)",
|
|
11
|
-
"Bash(npm audit:*)",
|
|
12
|
-
"Bash(npx prettier *)"
|
|
13
|
-
]
|
|
14
|
-
},
|
|
15
|
-
"hooks": {
|
|
16
|
-
"PostToolUse": [
|
|
17
|
-
{
|
|
18
|
-
"matcher": "Edit|Write",
|
|
19
|
-
"hooks": [
|
|
20
|
-
{
|
|
21
|
-
"type": "command",
|
|
22
|
-
"command": "[ ! -f '/Users/m1well/.claude/skills/impeccable/scripts/impeccable' ] || '/Users/m1well/.claude/skills/impeccable/scripts/impeccable' hook",
|
|
23
|
-
"timeout": 5,
|
|
24
|
-
"statusMessage": "Checking UI changes"
|
|
25
|
-
}
|
|
26
|
-
]
|
|
27
|
-
}
|
|
28
|
-
],
|
|
29
|
-
"Stop": [
|
|
30
|
-
{
|
|
31
|
-
"hooks": [
|
|
32
|
-
{
|
|
33
|
-
"type": "command",
|
|
34
|
-
"command": "[ ! -f '/Users/m1well/.claude/skills/impeccable/scripts/impeccable' ] || '/Users/m1well/.claude/skills/impeccable/scripts/impeccable' hook",
|
|
35
|
-
"timeout": 30,
|
|
36
|
-
"statusMessage": "Design deep pass"
|
|
37
|
-
}
|
|
38
|
-
]
|
|
39
|
-
}
|
|
40
|
-
]
|
|
41
|
-
},
|
|
42
|
-
"description": "Impeccable design detector: immediate-tier checks after Edit/Write on UI files, full-rule deep pass on Stop."
|
|
43
|
-
}
|