maverick-wave 5.26.0 → 5.28.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 (35) hide show
  1. package/.claude/skills/mw-maverick-wave/SKILL.md +9 -1
  2. package/.claude/skills/mw-maverick-wave/references/components.md +13 -6
  3. package/.claude/skills/mw-maverick-wave/references/layout.md +2 -2
  4. package/.claude/skills/mw-maverick-wave/references/theming.md +2 -1
  5. package/CHANGELOG.md +13 -0
  6. package/README.md +2 -2
  7. package/maverick-wave.min.css +7 -7
  8. package/maverick-wave.min.js +1 -1
  9. package/package.json +2 -2
  10. package/scripts/verify.js +10 -1
  11. package/src/js/main.js +8 -8
  12. package/src/partials/tiles-container.html +38 -38
  13. package/src/scss/abstracts/_variables.scss +6 -0
  14. package/src/scss/base/_base.scss +17 -7
  15. package/src/scss/base/_reset.scss +7 -1
  16. package/src/scss/components/_announcement.scss +1 -3
  17. package/src/scss/components/_blog-post.scss +5 -4
  18. package/src/scss/components/_cards.scss +2 -2
  19. package/src/scss/components/_contact.scss +5 -3
  20. package/src/scss/components/_hero-badge.scss +48 -0
  21. package/src/scss/components/_index.scss +2 -0
  22. package/src/scss/components/_leader-row.scss +24 -18
  23. package/src/scss/components/_localhost-indicator.scss +2 -2
  24. package/src/scss/components/_panels.scss +18 -52
  25. package/src/scss/components/_tabs.scss +2 -2
  26. package/src/scss/components/_tiles.scss +43 -49
  27. package/src/scss/components/_tooltip.scss +193 -0
  28. package/src/scss/layout/_footer.scss +46 -84
  29. package/src/scss/layout/_grid.scss +67 -42
  30. package/src/scss/layout/_header-reveal.scss +1 -1
  31. package/src/scss/layout/_header.scss +49 -77
  32. package/src/scss/layout/_home.scss +7 -4
  33. package/src/scss/layout/_main.scss +100 -337
  34. package/src/scss/layout/_parallax.scss +1 -1
  35. package/src/scss/layout/_section.scss +37 -21
@@ -116,6 +116,9 @@ system monospace stack behind it. Load a font yourself and either set the three
116
116
 
117
117
  - Classes: `mw-` prefix, kebab-case: `.mw-button-bar`, `.mw-item-list-compact`
118
118
  - Tokens: `--mw-` prefix: `--mw-primary-color`, `--mw-border-accent`
119
+ - Keyframes: `mw-` prefix too (`mw-toast-in`, `mw-home-fade`). `@keyframes` is
120
+ global, so an unprefixed name in your app and one in the framework are the
121
+ same animation - the loser disappears without an error
119
122
  - Variants are suffixes on the base class: `mw-btn` + `mw-btn-primary`,
120
123
  `mw-alert` + `mw-alert-danger`
121
124
  - Colour variant names are the same everywhere: `primary`, `secondary`,
@@ -379,7 +382,8 @@ feature frame) ·
379
382
  11. **Touch targets grow on their own.** On `pointer: coarse` or below 768px,
380
383
  `mw-btn` gets a 2.75rem minimum height, `mw-btn-sm`, `mw-input-sm`,
381
384
  `mw-select-sm` and `mw-textarea-sm` 2.5rem, a tab 2.75rem, a calendar day
382
- 44px, and list rows / menu items / pager pages / accordion headers 2.75rem.
385
+ 44px, `mw-section-btn` 2.75rem, and list rows / menu items / pager pages /
386
+ accordion headers 2.75rem.
383
387
  `mw-btn-mini` keeps its 18px circle - it sits in tag rows and table cells
384
388
  where a bigger one would shift the layout - and grows its _hit area_ to 28px
385
389
  via a pseudo-element, and `mw-kanban-action` does the same - its 32px box
@@ -475,6 +479,10 @@ feature frame) ·
475
479
  with it, so `<button type="button" class="mw-tabs-nav-item" data-tab="...">`
476
480
  is the whole markup. The burger is the worst of the five to get wrong:
477
481
  below the collapse breakpoint it is the only route to the navigation.
482
+ `mw-tile` is the same rule from the other side: the class paints a surface
483
+ on anything, but the hand cursor, the focus ring and the tap handling only
484
+ come with `<a class="mw-tile">` or `<button class="mw-tile">`. On a `<div>`
485
+ you get the look and nothing a keyboard can reach.
478
486
  If you build your own clickable thing: the element decides whether anyone
479
487
  without a mouse can use it, the class only decides how it looks.
480
488
  28. **A link in running text is `mw-link`, not `mw-btn mw-btn-link`.** Since
@@ -492,29 +492,36 @@ A bordered box with a header rule - the "titled section" of an application.
492
492
  ```
493
493
 
494
494
  - Header colour: `mw-panel-primary`, `mw-panel-secondary`; without them the
495
- header is neutral.
495
+ header is neutral. Title and action sit at opposite ends and wrap to two rows
496
+ when the panel gets too narrow for both.
496
497
  - Height: `mw-panel-scrollable` (500px), `mw-panel-max-height-sm` (300px),
497
498
  `-md` (500px), `-lg` (700px) - the body scrolls, header and footer stay.
498
- - `mw-panel` has `min-height: 100%`, so panels in a grid row end up equally tall.
499
+ - Panels in a grid row end up equally tall on their own - a grid item stretches.
500
+ A height variant opts out with `align-self: start`.
499
501
 
500
502
  ## Tiles
501
503
 
502
- Compact, clickable info blocks in a fixed 3-column grid.
504
+ Compact info blocks. The look is on the class, the click is on the element: put
505
+ `mw-tile` on an `<a>` or a `<button>` and it gets the hand cursor, the focus ring
506
+ and the tap handling. On a `<div>` it stays a plain surface - no cursor, no ring,
507
+ because there would be nothing to reach by keyboard.
503
508
 
504
509
  ```html
505
510
  <div class="mw-tiles mw-tiles-2col">
506
- <div class="mw-tile">
511
+ <a href="/billing" class="mw-tile">
507
512
  <div class="mw-tile-img"><img src="icon.png" alt="" /></div>
508
513
  <h3 class="mw-tile-header">Billing</h3>
509
514
  <div class="mw-tile-body">
510
515
  <p>Invoices and payments</p>
511
516
  </div>
512
517
  <div class="mw-tile-footer">Updated 2026-01-02</div>
513
- </div>
518
+ </a>
514
519
  </div>
515
520
  ```
516
521
 
517
- Container: `mw-tiles` (3 columns), `mw-tiles-2col`, `mw-tiles-4col`.
522
+ Container: `mw-tiles` (1 / 2 at `sm` / 3 at `md`), `mw-tiles-2col` (1 / 2 at
523
+ `sm`), `mw-tiles-4col` (1 / 2 at `sm` / 4 at `lg`) - the same ramps `mw-grid-3`,
524
+ `-2` and `-4` use, and the full container width like any other grid.
518
525
  Tile sizes: `mw-tile-sm`, `mw-tile-lg`.
519
526
 
520
527
  ## Accordion
@@ -289,8 +289,8 @@ with no `mw-section-head-intro` takes a smaller gap: the gap sized to follow a
289
289
  paragraph reads as a hole under a rule and one line of type.
290
290
 
291
291
  The strip sticks at `--mw-header-height` and is `--mw-section-nav-height` tall
292
- (3.7rem). Anything it can cover on a jump needs the sum as `scroll-margin-top`;
293
- a block wrapping a `mw-section-subtitle` gets that from the framework already.
292
+ (3.75rem). A page carrying one adds that height to `scroll-padding-top` on its
293
+ own, so anchors and tab stops both clear it - nothing to add per target.
294
294
 
295
295
  ## Page header
296
296
 
@@ -85,7 +85,8 @@ Safari 16.4+, Firefox 128+. The same range is declared as `browserslist` in
85
85
  | `--mw-section-padding-fluid` | The fluid alternative to the value above - 1.75rem on a phone up to 5.5rem at `xl`. Not applied by itself: set `--mw-section-padding-block: var(--mw-section-padding-fluid)` |
86
86
  | `--mw-section-padding-compact`, `--mw-section-padding-airy` | The two presets, as tokens so the phone steps reach them - point `--mw-section-padding-block` at one |
87
87
  | `--mw-section-head-step` | One step of the head rhythm, derived from `--mw-section-padding-block`. Every measure in a head and around a subtitle is a multiple of it, so a spacing preset moves them all |
88
- | `--mw-section-nav-height` | Height the sticky `mw-section-nav` reserves (3.7rem). Add it to `--mw-header-height` for the `scroll-margin-top` of anything the strip can cover |
88
+ | `--mw-section-nav-height` | Height the sticky `mw-section-nav` reserves (3.75rem). A page carrying a strip adds it to `scroll-padding-top` itself, through the offset token below |
89
+ | `--mw-announcement-offset`, `--mw-section-nav-offset` | What each layer of sticky chrome below the header adds to `scroll-padding-top`. `0px` until the component switches it on, so a page with both a ribbon and a strip reserves for both. For a sticky bar of your own, override `scroll-padding-top` on `html` - the calc names these two |
89
90
  | `--mw-root-font-size` | Percentage the whole rem scale is built on (`100%`). Type, spacing and control heights move with it; px breakpoints do not |
90
91
  | `--mw-calendar-dot` | Colour of a single calendar dot - set it per dot or per cell; the `mw-calendar-dot-*` classes are presets for it |
91
92
  | `--mw-scroll-hint-cover` | Colour the scroll hint on a tab bar fades into. Preset to the page, re-pointed to the card background inside `mw-card`, `mw-panel`, `mw-modal`, `mw-tile`, `mw-calendar` |
package/CHANGELOG.md CHANGED
@@ -6,6 +6,19 @@ Patch releases are only for test purposes - here I only document major and minor
6
6
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
7
7
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
8
8
 
9
+ ## [5.28.0] - 2026-09-21
10
+
11
+ ### Changed
12
+
13
+ - Grid update
14
+ - splitted main file
15
+
16
+ ## [5.27.0] - 2026-09-21
17
+
18
+ ### Changed
19
+
20
+ - Spacing and small refactorings in css code
21
+
9
22
  ## [5.26.0] - 2026-09-20
10
23
 
11
24
  ### Changed
package/README.md CHANGED
@@ -45,12 +45,12 @@ The result is a framework that balances utility with simplicity, offering develo
45
45
  <title>My MaverickWave Project</title>
46
46
  <link
47
47
  rel="stylesheet"
48
- href="https://cdn.jsdelivr.net/npm/maverick-wave@5.26.0/maverick-wave.min.css"
48
+ href="https://cdn.jsdelivr.net/npm/maverick-wave@5.28.0/maverick-wave.min.css"
49
49
  />
50
50
  </head>
51
51
  <body>
52
52
  <!-- Your content here -->
53
- <script src="https://cdn.jsdelivr.net/npm/maverick-wave@5.26.0/maverick-wave.min.js"></script>
53
+ <script src="https://cdn.jsdelivr.net/npm/maverick-wave@5.28.0/maverick-wave.min.js"></script>
54
54
  </body>
55
55
  </html>
56
56
  ```