mote.css 0.10.9 → 0.12.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/CHANGELOG.md CHANGED
@@ -5,6 +5,69 @@ All notable changes to this project are documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [0.12.0] - 2026-10-29
9
+
10
+ ### Removed
11
+
12
+ - Removed the public `.mote-card-actions` and `.mote-row-status` micro-helpers. Card action rows
13
+ now use the page-owned `.card-actions` class with
14
+ `.mote-card > .card-actions { margin-block-start: auto; }`; status rows use
15
+ the page-owned `.status-row` class with
16
+ `tr.status-row:is(.mote-success, .mote-warning, .mote-error, .mote-info) > :is(td, th[scope="row"]) { background-color: var(--mote-status-soft); }`.
17
+ - This is a clean cutover: there are no aliases, shims, or replacement mote
18
+ classes. `.mote-row` continues to own content-row layout.
19
+
20
+ ### Tests
21
+
22
+ - The minification gate now enforces byte-exact minified budgets of 18,000
23
+ bytes for `mote.css` and 13,000 bytes for `mote.components.css`. A focused
24
+ regression proves that an over-budget result fails the gate.
25
+
26
+ ## [0.11.0] - 2026-10-29
27
+
28
+ ### Added (components — round-15 findings)
29
+
30
+ - `.mote-card-media` now sizes a direct inline SVG cover while preserving the
31
+ SVG's own `viewBox` ratio. Nested SVG icons remain unaffected.
32
+ - `.mote-card-actions` bottom-aligns a card action row without owning the
33
+ row's display, gap, or wrapping.
34
+ - `.mote-row-status` paints a status row's direct cells with
35
+ `background-color`, preserving semantic row headers and background-image
36
+ layers. Status classes remain token carriers without the helper.
37
+
38
+ ### Fixed (docs — round-15 findings)
39
+
40
+ - The phone-record recipe now requires a non-empty `data-label` on every
41
+ transformed data cell and warns that a missing label renders blank.
42
+ - The recipe states that its breakpoint is an example, that media-query
43
+ thresholds cannot be parameterized with CSS variables, and that the
44
+ transform and cap-release queries must use the same chosen threshold.
45
+ - Table documentation now distinguishes page and wrapper scrolling and
46
+ explains that the 60vh cap does not crop content.
47
+ - Print guidance now includes a practical paper checklist covering content,
48
+ tables, pagination, forms, and generated-PDF inspection.
49
+ - Card documentation now covers direct inline SVG covers and the
50
+ `.mote-card-actions` helper.
51
+
52
+ ### Tests
53
+
54
+ - The regression fixture asserts direct SVG cover sizing and ratio, nested SVG
55
+ isolation, card-action bottom alignment, status-row painting, background
56
+ image preservation, and gated badge behavior.
57
+ - Documentation source checks cover the new guidance, reject leaked live
58
+ tags in copy-ready samples, and pin both the encoded and live SVG card-cover
59
+ structures, including their wrapper, SVG, rectangle, and circle elements.
60
+ - The fixture's screen-only status and card probes stay off paper through a
61
+ fixture-local print rule, so the print-emulation PDF remains a focused
62
+ four-page regression artifact without repurposing `.mote-no-print`.
63
+
64
+ ### Evaluation
65
+
66
+ - Fifteenth round: ten independent agents built ten new page types against
67
+ v0.10.9. All ten would use mote again. The final pages had no confirmed
68
+ library failures; these changes address the recurring authoring friction
69
+ and documentation gaps surfaced by the round.
70
+
8
71
  ## [0.10.9] - 2026-10-29
9
72
 
10
73
  ### Fixed (components — round-14 findings)
@@ -885,7 +948,9 @@ Components:
885
948
  - Opt-in helpers: `.mote-container`, `.mote-muted`, `.mote-note` surfaces.
886
949
  - Element gallery demo page (`demo.html`).
887
950
 
888
- [Unreleased]: https://gitlab.com/abmach/mote/compare/v0.10.9...HEAD
951
+ [Unreleased]: https://gitlab.com/abmach/mote/compare/v0.12.0...HEAD
952
+ [0.12.0]: https://gitlab.com/abmach/mote/compare/v0.11.0...v0.12.0
953
+ [0.11.0]: https://gitlab.com/abmach/mote/compare/v0.10.9...v0.11.0
889
954
  [0.10.9]: https://gitlab.com/abmach/mote/compare/v0.10.8...v0.10.9
890
955
  [0.10.8]: https://gitlab.com/abmach/mote/compare/v0.10.7...v0.10.8
891
956
  [0.10.7]: https://gitlab.com/abmach/mote/compare/v0.10.6...v0.10.7
package/README.md CHANGED
@@ -157,7 +157,7 @@ mote is class-optional by design — elements are styled from tags alone; these
157
157
  | Solid button on any element | `.mote-btn` — the full solid recipe for anchors, spans; status classes gated |
158
158
  | Hero centering | `.mote-hero` — vertically centers content for error/login/empty-state pages |
159
159
  | CTA bands | `.mote-band` — full-bleed tinted section; opaque in both themes, reads `--mote-status` |
160
- | Card cover media | `.mote-card-media` — flush-top cover images with matched radius |
160
+ | Card cover media | `.mote-card-media` — flush-top cover images, video, or direct inline SVG with matched radius |
161
161
  | Brand/wordmark | `.mote-brand` — quiet non-nav link for site headers |
162
162
  | Media objects | `.mote-media` — avatar/icon beside body (flex, last child grows) |
163
163
  | Display text | `.mote-display` — opt-in hero/error-code scale via `--mote-display` |
@@ -193,7 +193,24 @@ mote is class-optional by design — elements are styled from tags alone; these
193
193
  | Exclusive accordions | `<details name="group">` — the browser closes siblings |
194
194
  | Dialog & popover entrance animations | automatic when the file is loaded |
195
195
 
196
- Full live documentation with copyable markup for everything above: **[docs/index.html](docs/index.html)**.
196
+ Full live documentation with copyable markup for the components and recipes: **[docs/index.html](docs/index.html)**.
197
+
198
+ ## Page-owned recipes
199
+
200
+ These compositions belong to the page, not mote. Copy the rules you need and name the classes in your markup.
201
+
202
+ ```css
203
+ /* Bottom-align actions in a card; .mote-row still owns the row layout. */
204
+ .mote-card > .card-actions {
205
+ margin-block-start: auto;
206
+ }
207
+
208
+ /* Paint a status row's direct cells while preserving background images. */
209
+ tr.status-row:is(.mote-success, .mote-warning, .mote-error, .mote-info)
210
+ > :is(td, th[scope="row"]) {
211
+ background-color: var(--mote-status-soft);
212
+ }
213
+ ```
197
214
 
198
215
  ## Browser support
199
216
 
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * mote.components.css — opt-in components for mote.css.
3
- * v0.10.9 · MIT
3
+ * v0.12.0 · MIT
4
4
  * https://gitlab.com/abmach/mote · mirror: https://github.com/abmach/mote
5
5
  *
6
6
  * Requires mote.css loaded first (provides the --mote-* tokens).
@@ -393,6 +393,17 @@ nav[aria-label="toc"] a:hover {
393
393
  border-radius: inherit;
394
394
  }
395
395
 
396
+ /* A direct inline SVG is a card cover too. Keep this direct-child only:
397
+ nested icons must keep their own dimensions. No fixed aspect ratio —
398
+ the SVG's viewBox determines the rendered height. */
399
+ .mote-card-media > svg {
400
+ display: block;
401
+ width: 100%;
402
+ height: auto;
403
+ max-width: none;
404
+ border-radius: inherit;
405
+ }
406
+
396
407
  /* Scrollable table wrapper: sticky thead, no page scroll, no margin jump */
397
408
  .mote-table-scroll {
398
409
  overflow-x: auto;
package/mote.css CHANGED
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * mote.css — a mote of styling for plain HTML.
3
- * v0.10.9 · MIT
3
+ * v0.12.0 · MIT
4
4
  * https://gitlab.com/abmach/mote · mirror: https://github.com/abmach/mote
5
5
  *
6
6
  * The smallest thing that can carry style:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mote.css",
3
- "version": "0.10.9",
3
+ "version": "0.12.0",
4
4
  "bugs": {
5
5
  "url": "https://gitlab.com/abmach/mote/-/issues"
6
6
  },