mote.css 0.10.8 → 0.10.9

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,48 @@ 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.10.9] - 2026-10-29
9
+
10
+ ### Fixed (components — round-14 findings)
11
+
12
+ - Scrollable-table header cells now become static on paper. The print
13
+ override follows the sticky-cell rule, so Chromium can repeat the semantic
14
+ `<thead>` at the top of continuation pages instead of painting it after the
15
+ rows.
16
+
17
+ ### Fixed (docs — round-14 findings)
18
+
19
+ - The phone-record recipe now start-aligns numeric values in its label/value
20
+ branch, removes generated labels during narrow-viewport print emulation,
21
+ and resets sticky header cells while restoring the table.
22
+ - The row-status recipe now includes semantic row headers
23
+ (`th[scope="row"]`) and uses `background-color`, preserving background
24
+ image layers such as the documented weekend-column shading.
25
+ - The narrow-header recipe now states that it applies to mote's canonical
26
+ composition, where `.mote-row` owns the header row. Custom flex headers
27
+ need page-owned rules for their own structure.
28
+ - Print guidance no longer implies that restoring `position: sticky`
29
+ guarantees a repeated running head; repetition depends on the browser's
30
+ paged-media implementation and the generated PDF must be inspected.
31
+ - Clarified card flex behavior and bottom-aligned actions, inline SVG media
32
+ sizing, prose-heavy card-grid density, and badge scaling.
33
+
34
+ ### Tests
35
+
36
+ - The regression fixture asserts that scrollable-table header cells are
37
+ static on paper.
38
+ - Docs-source checks pin the phone-record print and numeric-alignment rules,
39
+ the row-header and background-color contract, and the canonical narrow
40
+ header row owner.
41
+
42
+ ### Evaluation
43
+
44
+ - Fourteenth round: ten independent agents built ten new page types against
45
+ v0.10.8. All ten would use mote again. The builders' final pages had no
46
+ confirmed failures; remediation confirmed one library-facing print defect in
47
+ the scrollable-table header, fixed here alongside the documentation gaps
48
+ surfaced by the round.
49
+
8
50
  ## [0.10.8] - 2026-10-28
9
51
 
10
52
  ### Fixed (components — round-13 findings)
@@ -843,7 +885,8 @@ Components:
843
885
  - Opt-in helpers: `.mote-container`, `.mote-muted`, `.mote-note` surfaces.
844
886
  - Element gallery demo page (`demo.html`).
845
887
 
846
- [Unreleased]: https://gitlab.com/abmach/mote/compare/v0.10.8...HEAD
888
+ [Unreleased]: https://gitlab.com/abmach/mote/compare/v0.10.9...HEAD
889
+ [0.10.9]: https://gitlab.com/abmach/mote/compare/v0.10.8...v0.10.9
847
890
  [0.10.8]: https://gitlab.com/abmach/mote/compare/v0.10.7...v0.10.8
848
891
  [0.10.7]: https://gitlab.com/abmach/mote/compare/v0.10.6...v0.10.7
849
892
  [0.10.6]: https://gitlab.com/abmach/mote/compare/v0.10.5...v0.10.6
package/README.md CHANGED
@@ -184,7 +184,7 @@ mote is class-optional by design — elements are styled from tags alone; these
184
184
  | Breadcrumbs | `nav[aria-label="breadcrumb"]` — semantic, no class |
185
185
  | Card grids | `.mote-grid` — auto-fill columns from the container, no breakpoints |
186
186
  | Cards | `.mote-card` — normalizes content: alignment reads start even inside centered regions |
187
- | Badges | `.mote-badge` — gated: status from the badge's own class, never inherited; never grows past body scale |
187
+ | Badges | `.mote-badge` — gated: status from the badge's own class, never inherited; scales with surrounding text but never enlarges with headings |
188
188
  | Avatars | `.mote-avatar` |
189
189
  | Skeleton / spinner | `.mote-skeleton`, `.mote-spinner` |
190
190
  | Tooltips | `[popover].mote-tooltip` + `popovertarget` button |
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * mote.components.css — opt-in components for mote.css.
3
- * v0.10.8 · MIT
3
+ * v0.10.9 · 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).
@@ -66,8 +66,8 @@
66
66
  display: inline-block;
67
67
  padding: 0.1rem 0.6rem;
68
68
  border-radius: 999px;
69
- /* Never past body scale: 0.8em inside a heading balloons,
70
- so clamp it — small contexts still scale down. */
69
+ /* Scale with the surrounding text, but never enlarge with headings:
70
+ 0.8em balloons inside a heading, so cap it at 0.8rem. */
71
71
  font-size: min(0.8em, 0.8rem);
72
72
  font-weight: 500;
73
73
  line-height: 1.4;
@@ -169,8 +169,9 @@ a:where(.mote-badge):hover {
169
169
  }
170
170
 
171
171
  /* On paper the bar must not repeat over every sheet: a sticky header is
172
- screen chrome, and the browser paints it on each page it can. Pages that
173
- want a running head re-apply position: sticky in their own print CSS. */
172
+ screen chrome. A print-specific layout may restore sticky positioning,
173
+ but repeated running heads depend on the browser's paged-media behavior
174
+ and are not guaranteed by this library. */
174
175
  @media print {
175
176
  :where(body > header, .mote-header) {
176
177
  position: static;
@@ -399,13 +400,6 @@ nav[aria-label="toc"] a:hover {
399
400
  overflow-y: auto;
400
401
  }
401
402
 
402
- /* The components file owns this component's print behavior. Keep the
403
- override after the screen rule so loading the optional file cannot
404
- undo the core print promise. */
405
- @media print {
406
- .mote-table-scroll { max-height: none; overflow: visible; }
407
- }
408
-
409
403
  /* Chromium paints collapsed borders at the original flow position,
410
404
  not with the sticky cell — separate borders belong to the cell. */
411
405
  .mote-table-scroll table {
@@ -420,6 +414,20 @@ nav[aria-label="toc"] a:hover {
420
414
  background: var(--mote-bg);
421
415
  }
422
416
 
417
+ /* The components file owns this component's print behavior. Keep the
418
+ override after the sticky-cell rule so paper restores a normal table:
419
+ Chromium can repeat the semantic thead without sticky positioning. */
420
+ @media print {
421
+ .mote-table-scroll {
422
+ max-height: none;
423
+ overflow: visible;
424
+ }
425
+
426
+ .mote-table-scroll thead th {
427
+ position: static;
428
+ }
429
+ }
430
+
423
431
  /* Page footer: the quiet sibling of the site header */
424
432
  :where(body > footer, .mote-footer) {
425
433
  margin-block-start: 3rem;
package/mote.css CHANGED
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * mote.css — a mote of styling for plain HTML.
3
- * v0.10.8 · MIT
3
+ * v0.10.9 · 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.8",
3
+ "version": "0.10.9",
4
4
  "bugs": {
5
5
  "url": "https://gitlab.com/abmach/mote/-/issues"
6
6
  },