mote.css 0.10.1 → 0.10.3

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,51 @@ 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.3] - 2026-10-25
9
+
10
+ ### Fixed
11
+
12
+ - **Definition lists keep grouped terms and descriptions aligned**: valid
13
+ grouped definition-list markup no longer turns each grouping wrapper into an
14
+ alternating grid cell. Terms and descriptions share aligned columns within
15
+ each list when direct children alternate one term and one description; grouped
16
+ wrappers support one term and one description per group; fixture-pinned.
17
+ - **Form fieldsets no longer force narrow pages sideways**: fieldsets may shrink
18
+ below their intrinsic content width, and file inputs stay within their
19
+ container; fixture-pinned.
20
+
21
+ ### Changed (docs — round-9 findings)
22
+
23
+ - Added responsive-composition guidance for grids, toolbars, and narrow header
24
+ navigation, including a page-owned toolbar recipe; wide reference tables now
25
+ use contained scroll regions instead of widening the page.
26
+ - Documented the choice between a contained scrolling table and a semantic
27
+ record layout for narrow screens.
28
+ - Added a dedicated print-and-paper section covering screen/paper helpers,
29
+ table expansion, disclosures, and page-break rules.
30
+ - Added a long-form reading recipe with a companion table of contents and
31
+ numbered references with backlinks.
32
+ - Documented direct and grouped definition-list structures.
33
+
34
+ ### Evaluation
35
+
36
+ - Ninth round: ten independent agents built ten new page types against
37
+ v0.10.2. All ten would use mote again, and every final page kept
38
+ page-level horizontal overflow at zero. The round exposed the grouped
39
+ definition-list defect and the documentation gaps fixed here. Narrow
40
+ documentation verification also exposed the fieldset/file-input overflow
41
+ fixed above.
42
+
43
+ ## [0.10.2] - 2026-10-24
44
+
45
+ ### Fixed
46
+
47
+ - **jsDelivr now minifies `mote.components.css`**: clean-css 5.3.3 could not
48
+ parse the Baseline 2024 `@starting-style` rules and `allow-discrete`
49
+ transition values, so the automatic `mote.components.min.css` URL served
50
+ the unminified source. Narrow ignore guards preserve those modern rules
51
+ verbatim while allowing jsDelivr's minifier to produce a compact stylesheet.
52
+
8
53
  ## [0.10.1] - 2026-10-24
9
54
 
10
55
  ### Fixed
@@ -655,6 +700,8 @@ Components:
655
700
  [0.8.0]: https://gitlab.com/abmach/mote/compare/v0.7.0...v0.8.0
656
701
  [0.9.0]: https://gitlab.com/abmach/mote/compare/v0.8.0...v0.9.0
657
702
  [0.9.1]: https://gitlab.com/abmach/mote/compare/v0.9.0...v0.9.1
703
+ [0.10.3]: https://gitlab.com/abmach/mote/compare/v0.10.2...v0.10.3
704
+ [0.10.2]: https://gitlab.com/abmach/mote/compare/v0.10.1...v0.10.2
658
705
  [0.10.1]: https://gitlab.com/abmach/mote/compare/v0.10.0...v0.10.1
659
706
  [0.10.0]: https://gitlab.com/abmach/mote/compare/v0.9.1...v0.10.0
660
707
  [0.7.0]: https://gitlab.com/abmach/mote/compare/v0.6.1...v0.7.0
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * mote.components.css — opt-in components for mote.css.
3
- * v0.10.1 · MIT
3
+ * v0.10.3 · 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).
@@ -523,11 +523,13 @@ menu[popover] :is(button, [role="menuitem"]):focus-visible {
523
523
  dialog {
524
524
  opacity: 0;
525
525
  transform: translateY(8px) scale(0.98);
526
+ /* clean-css ignore:start */
526
527
  transition:
527
528
  opacity 180ms ease,
528
529
  transform 180ms ease,
529
530
  display 180ms allow-discrete,
530
531
  overlay 180ms allow-discrete;
532
+ /* clean-css ignore:end */
531
533
  }
532
534
 
533
535
  [popover]:popover-open,
@@ -536,6 +538,7 @@ dialog[open] {
536
538
  transform: none;
537
539
  }
538
540
 
541
+ /* clean-css ignore:start */
539
542
  @starting-style {
540
543
  [popover]:popover-open,
541
544
  dialog[open] {
@@ -543,17 +546,22 @@ dialog[open] {
543
546
  transform: translateY(8px) scale(0.98);
544
547
  }
545
548
  }
549
+ /* clean-css ignore:end */
546
550
 
547
551
  dialog::backdrop {
548
552
  opacity: 1;
553
+ /* clean-css ignore:start */
549
554
  transition: opacity 180ms allow-discrete;
555
+ /* clean-css ignore:end */
550
556
  }
551
557
 
558
+ /* clean-css ignore:start */
552
559
  @starting-style {
553
560
  dialog::backdrop {
554
561
  opacity: 0;
555
562
  }
556
563
  }
564
+ /* clean-css ignore:end */
557
565
 
558
566
  /* ---------------------------------------------------------------------------
559
567
  * 10. Exclusive accordions — <details name="group">
@@ -617,10 +625,12 @@ details[name] > :not(summary):last-child {
617
625
  block-size: 0;
618
626
  overflow: clip;
619
627
  opacity: 0;
628
+ /* clean-css ignore:start */
620
629
  transition:
621
630
  block-size 260ms ease,
622
631
  opacity 260ms ease,
623
632
  content-visibility 260ms allow-discrete;
633
+ /* clean-css ignore:end */
624
634
  }
625
635
 
626
636
  details[open]::details-content {
@@ -628,12 +638,14 @@ details[name] > :not(summary):last-child {
628
638
  opacity: 1;
629
639
  }
630
640
 
641
+ /* clean-css ignore:start */
631
642
  @starting-style {
632
643
  details[open]::details-content {
633
644
  block-size: 0;
634
645
  opacity: 0;
635
646
  }
636
647
  }
648
+ /* clean-css ignore:end */
637
649
  }
638
650
 
639
651
  /* ---------------------------------------------------------------------------
package/mote.css CHANGED
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * mote.css — a mote of styling for plain HTML.
3
- * v0.10.1 · MIT
3
+ * v0.10.3 · 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:
@@ -285,10 +285,13 @@ li::marker {
285
285
 
286
286
  dl {
287
287
  display: grid;
288
- grid-template-columns: auto 1fr;
288
+ grid-template-columns: auto minmax(0, 1fr);
289
289
  gap: 0.4rem 1.5rem;
290
290
  }
291
291
 
292
+ /* Grouping wrappers are structural, not grid items. */
293
+ dl > div { display: contents; }
294
+
292
295
  dt { font-weight: 600; }
293
296
 
294
297
  dd {
@@ -418,7 +421,9 @@ label {
418
421
  cursor: pointer;
419
422
  }
420
423
 
424
+ /* Fieldsets default to min-content and can force a narrow page sideways. */
421
425
  fieldset {
426
+ min-inline-size: 0;
422
427
  padding: 1rem 1.2rem;
423
428
  border: var(--mote-border-width) solid var(--mote-border);
424
429
  border-radius: var(--mote-radius);
@@ -484,7 +489,9 @@ select[multiple] {
484
489
  height: 2.4rem;
485
490
  }
486
491
 
492
+ /* Native file controls have a wide intrinsic size; keep them inside their parent. */
487
493
  [type="file"] {
494
+ max-width: 100%;
488
495
  padding: var(--mote-control-pad, 0.5rem) var(--mote-control-pad-inline, 0.75rem);
489
496
  background: none;
490
497
  border-style: dashed;
package/package.json CHANGED
@@ -1,6 +1,9 @@
1
1
  {
2
2
  "name": "mote.css",
3
- "version": "0.10.1",
3
+ "version": "0.10.3",
4
+ "bugs": {
5
+ "url": "https://gitlab.com/abmach/mote/-/issues"
6
+ },
4
7
  "description": "A mote of styling for plain HTML \u2014 tiny, semantic, class-optional CSS with zero dependencies and no build step.",
5
8
  "style": "mote.css",
6
9
  "files": [