mote.css 0.10.0 → 0.10.2

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,52 @@ 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.2] - 2026-10-24
9
+
10
+ ### Fixed
11
+
12
+ - **jsDelivr now minifies `mote.components.css`**: clean-css 5.3.3 could not
13
+ parse the Baseline 2024 `@starting-style` rules and `allow-discrete`
14
+ transition values, so the automatic `mote.components.min.css` URL served
15
+ the unminified source. Narrow ignore guards preserve those modern rules
16
+ verbatim while allowing jsDelivr's minifier to produce a compact stylesheet.
17
+
18
+ ## [0.10.1] - 2026-10-24
19
+
20
+ ### Fixed
21
+
22
+ - **Narrow `.mote-doc` layouts keep landmark order**: the collapsed shell no
23
+ longer places the footer before `main` when guide and context rails are
24
+ present.
25
+ - **`.mote-table-scroll` expands on paper**: the optional components file
26
+ now owns its print override, so loading it can no longer undo the core
27
+ print behavior.
28
+ - **`.mote-skip-link` reveals on any focus**: programmatic focus now gets
29
+ the same fixed skip-link pill as keyboard focus, removing a focus-modality
30
+ dependency from the accessibility helper and regression fixture.
31
+
32
+ ### Changed (tests — round-8 findings)
33
+
34
+ - The regression fixture now selects an active screen or print-specific
35
+ assertion suite, rebuilds its results on media changes, and self-checks both
36
+ paper helpers and printable table expansion.
37
+
38
+ ### Changed (docs — round-8 findings)
39
+
40
+ - Document-layout guidance now states that the collapsed shell preserves
41
+ source order, distinguishes `main` overflow from table-wrapper overflow,
42
+ and calls out the body-level gutter.
43
+ - Header guidance now includes a narrow-screen recipe that gives the nav its
44
+ own row when the brand and pushed controls leave too little room.
45
+ - The helper map now includes print helpers and a right-rail TOC recipe.
46
+
47
+ ### Evaluation
48
+
49
+ - Eighth round: ten independent agents built ten new page types against
50
+ v0.10.0. All ten would use mote again and kept page-level horizontal
51
+ overflow at zero; the round exposed the collapsed document-order and
52
+ cross-file print defects fixed in this release.
53
+
8
54
  ## [0.10.0] - 2026-10-23
9
55
 
10
56
  ### Fixed
@@ -619,6 +665,8 @@ Components:
619
665
  [0.8.0]: https://gitlab.com/abmach/mote/compare/v0.7.0...v0.8.0
620
666
  [0.9.0]: https://gitlab.com/abmach/mote/compare/v0.8.0...v0.9.0
621
667
  [0.9.1]: https://gitlab.com/abmach/mote/compare/v0.9.0...v0.9.1
668
+ [0.10.2]: https://gitlab.com/abmach/mote/compare/v0.10.1...v0.10.2
669
+ [0.10.1]: https://gitlab.com/abmach/mote/compare/v0.10.0...v0.10.1
622
670
  [0.10.0]: https://gitlab.com/abmach/mote/compare/v0.9.1...v0.10.0
623
671
  [0.7.0]: https://gitlab.com/abmach/mote/compare/v0.6.1...v0.7.0
624
672
  [0.6.1]: https://gitlab.com/abmach/mote/compare/v0.6.0...v0.6.1
package/README.md CHANGED
@@ -160,7 +160,7 @@ mote is class-optional by design — elements are styled from tags alone; these
160
160
  | Display text | `.mote-display` — opt-in hero/error-code scale via `--mote-display` |
161
161
  | Content rows | `.mote-row` + `.mote-push` — flex row, right-align helper |
162
162
  | Stacks | `.mote-stack` — vertical rhythm with `--mote-stack-gap`; fields full width, checkboxes 1em, works on any content |
163
- | Scrollable tables | `.mote-table-scroll` — sticky `thead`, no page scroll, no margin jump |
163
+ | Scrollable tables | `.mote-table-scroll` — sticky `thead`, no page scroll, no margin jump; expands on paper |
164
164
  | Numeric columns | `.mote-num` — right-aligned tabular figures |
165
165
  | Tabular figures | `.mote-tabular` — tabular numerals without the right-alignment (day numbers, meta lines) |
166
166
  | Sparse grids | `.mote-grid-sparse` — standalone auto-fit variant, collapses empty tracks |
@@ -169,7 +169,7 @@ mote is class-optional by design — elements are styled from tags alone; these
169
169
  | Current table row | `tr[aria-current]` — accent-tinted row, reads over zebra |
170
170
  | Footer baseline | `body > footer` — semantic top-border + padding; its `nav` renders as a quiet wrapped row |
171
171
  | Screen-reader helper | `.mote-sr-only` — pure hiding, never appears |
172
- | Skip link | `.mote-skip-link` — sr-only until keyboard focus, then a fixed pill |
172
+ | Skip link | `.mote-skip-link` — sr-only until focused, then a fixed pill |
173
173
  | Print helpers | `.mote-no-print` / `.mote-print-only` |
174
174
  | Theme-switch guard | `.mote-theme-switch` — prevents Chromium stale-color bug on `data-theme` flips |
175
175
  | Status inheritance control | `.mote-default` (force accent) · `.mote-reset` (clear inherited status) |
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * mote.components.css — opt-in components for mote.css.
3
- * v0.10.0 · MIT
3
+ * v0.10.2 · 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).
@@ -390,6 +390,13 @@ nav[aria-label="toc"] a:hover {
390
390
  overflow-y: auto;
391
391
  }
392
392
 
393
+ /* The components file owns this component's print behavior. Keep the
394
+ override after the screen rule so loading the optional file cannot
395
+ undo the core print promise. */
396
+ @media print {
397
+ .mote-table-scroll { max-height: none; overflow: visible; }
398
+ }
399
+
393
400
  /* Chromium paints collapsed borders at the original flow position,
394
401
  not with the sticky cell — separate borders belong to the cell. */
395
402
  .mote-table-scroll table {
@@ -516,11 +523,13 @@ menu[popover] :is(button, [role="menuitem"]):focus-visible {
516
523
  dialog {
517
524
  opacity: 0;
518
525
  transform: translateY(8px) scale(0.98);
526
+ /* clean-css ignore:start */
519
527
  transition:
520
528
  opacity 180ms ease,
521
529
  transform 180ms ease,
522
530
  display 180ms allow-discrete,
523
531
  overlay 180ms allow-discrete;
532
+ /* clean-css ignore:end */
524
533
  }
525
534
 
526
535
  [popover]:popover-open,
@@ -529,6 +538,7 @@ dialog[open] {
529
538
  transform: none;
530
539
  }
531
540
 
541
+ /* clean-css ignore:start */
532
542
  @starting-style {
533
543
  [popover]:popover-open,
534
544
  dialog[open] {
@@ -536,17 +546,22 @@ dialog[open] {
536
546
  transform: translateY(8px) scale(0.98);
537
547
  }
538
548
  }
549
+ /* clean-css ignore:end */
539
550
 
540
551
  dialog::backdrop {
541
552
  opacity: 1;
553
+ /* clean-css ignore:start */
542
554
  transition: opacity 180ms allow-discrete;
555
+ /* clean-css ignore:end */
543
556
  }
544
557
 
558
+ /* clean-css ignore:start */
545
559
  @starting-style {
546
560
  dialog::backdrop {
547
561
  opacity: 0;
548
562
  }
549
563
  }
564
+ /* clean-css ignore:end */
550
565
 
551
566
  /* ---------------------------------------------------------------------------
552
567
  * 10. Exclusive accordions — <details name="group">
@@ -610,10 +625,12 @@ details[name] > :not(summary):last-child {
610
625
  block-size: 0;
611
626
  overflow: clip;
612
627
  opacity: 0;
628
+ /* clean-css ignore:start */
613
629
  transition:
614
630
  block-size 260ms ease,
615
631
  opacity 260ms ease,
616
632
  content-visibility 260ms allow-discrete;
633
+ /* clean-css ignore:end */
617
634
  }
618
635
 
619
636
  details[open]::details-content {
@@ -621,12 +638,14 @@ details[name] > :not(summary):last-child {
621
638
  opacity: 1;
622
639
  }
623
640
 
641
+ /* clean-css ignore:start */
624
642
  @starting-style {
625
643
  details[open]::details-content {
626
644
  block-size: 0;
627
645
  opacity: 0;
628
646
  }
629
647
  }
648
+ /* clean-css ignore:end */
630
649
  }
631
650
 
632
651
  /* ---------------------------------------------------------------------------
@@ -765,15 +784,13 @@ nav[aria-label="toc"] :is(h2, h3) {
765
784
  }
766
785
 
767
786
  @media (width < 50rem) {
768
- .mote-doc:where(:has(> nav)),
769
- .mote-doc:where(:has(> aside)),
770
- .mote-doc:where(:has(> nav)):where(:has(> aside)) {
771
- grid-template-columns: 1fr;
787
+ .mote-doc {
788
+ display: flex;
789
+ flex-direction: column;
772
790
  }
773
791
 
774
- .mote-doc > :is(nav, aside, main) {
775
- grid-column: 1 / -1;
776
- grid-row: auto;
792
+ .mote-doc > main {
793
+ flex: 1 0 auto;
777
794
  }
778
795
 
779
796
  .mote-doc > aside {
package/mote.css CHANGED
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * mote.css — a mote of styling for plain HTML.
3
- * v0.10.0 · MIT
3
+ * v0.10.2 · 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:
@@ -810,7 +810,7 @@ progress, meter {
810
810
  Use .mote-skip-link for the accessibility skip link;
811
811
  use plain .mote-sr-only to hide things that must never
812
812
  appear (radios driving CSS toggles, visually hidden labels). */
813
- .mote-skip-link:focus-visible {
813
+ .mote-skip-link:focus {
814
814
  position: fixed;
815
815
  top: 1rem;
816
816
  left: 1rem;
@@ -936,7 +936,6 @@ progress, meter {
936
936
  /* Opt-in print helpers */
937
937
  .mote-no-print { display: none !important; }
938
938
  .mote-print-only { display: block; }
939
- .mote-table-scroll { max-height: none; overflow: visible; }
940
939
  }
941
940
 
942
941
  @media not print {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mote.css",
3
- "version": "0.10.0",
3
+ "version": "0.10.2",
4
4
  "description": "A mote of styling for plain HTML \u2014 tiny, semantic, class-optional CSS with zero dependencies and no build step.",
5
5
  "style": "mote.css",
6
6
  "files": [