mote.css 0.9.0 → 0.10.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 +60 -0
- package/README.md +2 -0
- package/mote.components.css +15 -3
- package/mote.css +9 -1
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,64 @@ 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.0] - 2026-10-23
|
|
9
|
+
|
|
10
|
+
### Fixed
|
|
11
|
+
|
|
12
|
+
- **`.mote-doc > header` was missing `min-width: 0`** (the shell gives it
|
|
13
|
+
to main, nav, and aside but not the header): a header carrying long nav
|
|
14
|
+
content pushed the *page* sideways at narrow viewports. Found by the
|
|
15
|
+
round-7 course builder; fixture-pinned.
|
|
16
|
+
|
|
17
|
+
### Added
|
|
18
|
+
|
|
19
|
+
- `.mote-tabular`: tabular figures without the right-alignment — day
|
|
20
|
+
numbers, headline balances, meta lines. `.mote-num` keeps
|
|
21
|
+
alignment + figures for table columns (tables already render tabular
|
|
22
|
+
numerals on every cell, so alignment is the column class's real job).
|
|
23
|
+
Five round-7 builds hit the old coupling.
|
|
24
|
+
- `--mote-avatar-radius` (default 999px): square cover art and favicons
|
|
25
|
+
no longer fight the circular default — three round-7 builds overrode it
|
|
26
|
+
by hand.
|
|
27
|
+
|
|
28
|
+
### Changed
|
|
29
|
+
|
|
30
|
+
- Header nav pills never break mid-label (`white-space: nowrap`): the
|
|
31
|
+
pill row scrolls instead — three round-7 builds added this rule by
|
|
32
|
+
hand; deferred from round 6 as a recipe, three recurrences made it a
|
|
33
|
+
default.
|
|
34
|
+
|
|
35
|
+
### Fixed (docs — round-7 findings)
|
|
36
|
+
|
|
37
|
+
- Status classes are token carriers, not text colors — documented with
|
|
38
|
+
the tinted-text recipe (`color: var(--mote-success)`).
|
|
39
|
+
- `.mote-stack` on a `<fieldset>` flattens the legend notch — documented.
|
|
40
|
+
- Nav hints only exist while the pills overflow — documented.
|
|
41
|
+
- New recipes: small indicator dots (skeleton `min-height`), grouped
|
|
42
|
+
messages (`.mote-media` + `aria-hidden` spacer), weekend columns
|
|
43
|
+
(row-tint-safe column shading), quiet captions.
|
|
44
|
+
- `--mote-avatar-radius` and `.mote-tabular` in the token and class
|
|
45
|
+
tables.
|
|
46
|
+
|
|
47
|
+
### Evaluation
|
|
48
|
+
|
|
49
|
+
- Seventh round: ten agents built ten NEW page types (chat, job board,
|
|
50
|
+
calendar, recipe, transactions, lesson, search results, team, hotel,
|
|
51
|
+
podcast) against v0.9.1 on a faster builder model. 10/10
|
|
52
|
+
would-use-again, zero final-state rendering failures; every v0.9.x
|
|
53
|
+
feature verified in the wild by every agent that touched it.
|
|
54
|
+
|
|
55
|
+
## [0.9.1] - 2026-10-23
|
|
56
|
+
|
|
57
|
+
### Fixed
|
|
58
|
+
|
|
59
|
+
- The header hairline is now fully snippet-driven: it paints only
|
|
60
|
+
while the nav actually scrolls. With the snippet, an empty
|
|
61
|
+
`data-nav` (a single pill, nothing to scroll) leaves the line gone;
|
|
62
|
+
without the snippet there is no line at all — zero-JS headers keep
|
|
63
|
+
just the pills, and the cut pill is the overflow signal. Both states
|
|
64
|
+
fixture-pinned.
|
|
65
|
+
|
|
8
66
|
## [0.9.0] - 2026-10-22
|
|
9
67
|
|
|
10
68
|
### Added
|
|
@@ -560,6 +618,8 @@ Components:
|
|
|
560
618
|
[0.3.0]: https://gitlab.com/abmach/mote/compare/v0.2.1...v0.3.0
|
|
561
619
|
[0.8.0]: https://gitlab.com/abmach/mote/compare/v0.7.0...v0.8.0
|
|
562
620
|
[0.9.0]: https://gitlab.com/abmach/mote/compare/v0.8.0...v0.9.0
|
|
621
|
+
[0.9.1]: https://gitlab.com/abmach/mote/compare/v0.9.0...v0.9.1
|
|
622
|
+
[0.10.0]: https://gitlab.com/abmach/mote/compare/v0.9.1...v0.10.0
|
|
563
623
|
[0.7.0]: https://gitlab.com/abmach/mote/compare/v0.6.1...v0.7.0
|
|
564
624
|
[0.6.1]: https://gitlab.com/abmach/mote/compare/v0.6.0...v0.6.1
|
|
565
625
|
[0.6.0]: https://gitlab.com/abmach/mote/compare/v0.5.1...v0.6.0
|
package/README.md
CHANGED
|
@@ -100,6 +100,7 @@ The consequence: theming is a handful of variable overrides, and an inline tweak
|
|
|
100
100
|
| `--mote-display` | `clamp(2.75rem, 1.5rem + 4vw, 5rem)` | | Display text scale (opt-in) |
|
|
101
101
|
| `--mote-grid-min` | `16rem` | | Card grid minimum track width |
|
|
102
102
|
| `--mote-avatar` | `2.5rem` | | Avatar size |
|
|
103
|
+
| Avatar corners | `--mote-avatar-radius` (default 999px) — 0 for square covers and favicons |
|
|
103
104
|
| `--mote-control-pad` | `0.5rem` | | Button/control vertical padding |
|
|
104
105
|
| `--mote-cell-pad` | `0.6rem` | | Table cell vertical padding |
|
|
105
106
|
| `--mote-shadow` / `--mote-shadow-sm` | warm diffuse | | Elevation |
|
|
@@ -161,6 +162,7 @@ mote is class-optional by design — elements are styled from tags alone; these
|
|
|
161
162
|
| Stacks | `.mote-stack` — vertical rhythm with `--mote-stack-gap`; fields full width, checkboxes 1em, works on any content |
|
|
162
163
|
| Scrollable tables | `.mote-table-scroll` — sticky `thead`, no page scroll, no margin jump |
|
|
163
164
|
| Numeric columns | `.mote-num` — right-aligned tabular figures |
|
|
165
|
+
| Tabular figures | `.mote-tabular` — tabular numerals without the right-alignment (day numbers, meta lines) |
|
|
164
166
|
| Sparse grids | `.mote-grid-sparse` — standalone auto-fit variant, collapses empty tracks |
|
|
165
167
|
| Pagination | `nav[aria-label="pagination"]` — semantic, no class |
|
|
166
168
|
| Table of contents | `nav[aria-label="toc"]` — semantic, no class |
|
package/mote.components.css
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* mote.components.css — opt-in components for mote.css.
|
|
3
|
-
* v0.
|
|
3
|
+
* v0.10.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).
|
|
@@ -96,7 +96,9 @@ a:where(.mote-badge):hover {
|
|
|
96
96
|
.mote-avatar {
|
|
97
97
|
width: var(--mote-avatar, 2.5rem);
|
|
98
98
|
height: var(--mote-avatar, 2.5rem);
|
|
99
|
-
|
|
99
|
+
/* Round by default (people); square cover art and favicons set
|
|
100
|
+
--mote-avatar-radius: 0 (or any corner value). */
|
|
101
|
+
border-radius: var(--mote-avatar-radius, 999px);
|
|
100
102
|
object-fit: cover;
|
|
101
103
|
border: var(--mote-border-width) solid var(--mote-border);
|
|
102
104
|
box-shadow: var(--mote-shadow-sm);
|
|
@@ -187,6 +189,14 @@ a:where(.mote-badge):hover {
|
|
|
187
189
|
position: relative;
|
|
188
190
|
flex: 1 1 0%;
|
|
189
191
|
min-width: 0;
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
/* The hairline is snippet-driven: it paints only while the nav
|
|
195
|
+
actually scrolls. An empty data-nav means "nothing to scroll" —
|
|
196
|
+
no line under a single pill. No attribute at all means no snippet:
|
|
197
|
+
no line either; zero-JS headers keep just the pills, and the cut
|
|
198
|
+
pill is the overflow signal. */
|
|
199
|
+
:where(body > header nav[data-nav]:not([data-nav=""]), .mote-nav[data-nav]:not([data-nav=""])) {
|
|
190
200
|
background:
|
|
191
201
|
linear-gradient(var(--mote-border), var(--mote-border)) left bottom / 100% 2px no-repeat;
|
|
192
202
|
}
|
|
@@ -255,6 +265,8 @@ a:where(.mote-badge):hover {
|
|
|
255
265
|
display: inline-block;
|
|
256
266
|
padding: 0.35rem 0.8rem;
|
|
257
267
|
border-radius: 999px;
|
|
268
|
+
/* Pills never break mid-label; the row scrolls instead. */
|
|
269
|
+
white-space: nowrap;
|
|
258
270
|
color: var(--mote-fg);
|
|
259
271
|
text-decoration: none;
|
|
260
272
|
transition: background var(--mote-transition), color var(--mote-transition);
|
|
@@ -652,7 +664,7 @@ html:where(:has(body > header)) {
|
|
|
652
664
|
--mote-rail-top: 4.75rem;
|
|
653
665
|
}
|
|
654
666
|
|
|
655
|
-
.mote-doc > header { grid-row: 1; grid-column: 1 / -1; }
|
|
667
|
+
.mote-doc > header { grid-row: 1; grid-column: 1 / -1; min-width: 0; }
|
|
656
668
|
.mote-doc > footer { grid-row: 3; grid-column: 1 / -1; }
|
|
657
669
|
|
|
658
670
|
.mote-doc > main { grid-row: 2; grid-column: 1; min-width: 0; }
|
package/mote.css
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* mote.css — a mote of styling for plain HTML.
|
|
3
|
-
* v0.
|
|
3
|
+
* v0.10.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:
|
|
@@ -785,6 +785,14 @@ progress, meter {
|
|
|
785
785
|
font-variant-numeric: tabular-nums;
|
|
786
786
|
}
|
|
787
787
|
|
|
788
|
+
/* Tabular figures without the right-alignment — day numbers, headline
|
|
789
|
+
figures, meta lines. Tables already render tabular numerals on every
|
|
790
|
+
cell; this is for figures outside them (or cells that must not align
|
|
791
|
+
end). */
|
|
792
|
+
.mote-tabular {
|
|
793
|
+
font-variant-numeric: tabular-nums;
|
|
794
|
+
}
|
|
795
|
+
|
|
788
796
|
.mote-sr-only,
|
|
789
797
|
.mote-skip-link {
|
|
790
798
|
position: absolute;
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mote.css",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "A mote of styling for plain HTML
|
|
3
|
+
"version": "0.10.0",
|
|
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": [
|
|
7
7
|
"mote.css",
|