mote.css 0.11.0 → 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,24 @@ 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
+
8
26
  ## [0.11.0] - 2026-10-29
9
27
 
10
28
  ### Added (components — round-15 findings)
@@ -930,7 +948,8 @@ Components:
930
948
  - Opt-in helpers: `.mote-container`, `.mote-muted`, `.mote-note` surfaces.
931
949
  - Element gallery demo page (`demo.html`).
932
950
 
933
- [Unreleased]: https://gitlab.com/abmach/mote/compare/v0.11.0...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
934
953
  [0.11.0]: https://gitlab.com/abmach/mote/compare/v0.10.9...v0.11.0
935
954
  [0.10.9]: https://gitlab.com/abmach/mote/compare/v0.10.8...v0.10.9
936
955
  [0.10.8]: https://gitlab.com/abmach/mote/compare/v0.10.7...v0.10.8
package/README.md CHANGED
@@ -170,7 +170,6 @@ mote is class-optional by design — elements are styled from tags alone; these
170
170
  | Pagination | `nav[aria-label="pagination"]` — semantic, no class |
171
171
  | Table of contents | `nav[aria-label="toc"]` — semantic, no class |
172
172
  | Current table row | `tr[aria-current]` — accent-tinted row, reads over zebra |
173
- | Status table row | `.mote-row-status` + a status class — paints direct cells while preserving background-image layers |
174
173
  | Footer baseline | `body > footer` — semantic top-border + padding; its `nav` renders as a quiet wrapped row |
175
174
  | Screen-reader helper | `.mote-sr-only` — pure hiding, never appears |
176
175
  | Skip link | `.mote-skip-link` — sr-only until focused, then a fixed pill |
@@ -185,7 +184,6 @@ mote is class-optional by design — elements are styled from tags alone; these
185
184
  | Breadcrumbs | `nav[aria-label="breadcrumb"]` — semantic, no class |
186
185
  | Card grids | `.mote-grid` — auto-fill columns from the container, no breakpoints |
187
186
  | Cards | `.mote-card` — normalizes content: alignment reads start even inside centered regions |
188
- | Card actions | `.mote-card-actions` — bottom-aligns an action row inside a card without owning the row layout |
189
187
  | Badges | `.mote-badge` — gated: status from the badge's own class, never inherited; scales with surrounding text but never enlarges with headings |
190
188
  | Avatars | `.mote-avatar` |
191
189
  | Skeleton / spinner | `.mote-skeleton`, `.mote-spinner` |
@@ -195,7 +193,24 @@ mote is class-optional by design — elements are styled from tags alone; these
195
193
  | Exclusive accordions | `<details name="group">` — the browser closes siblings |
196
194
  | Dialog & popover entrance animations | automatic when the file is loaded |
197
195
 
198
- 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
+ ```
199
214
 
200
215
  ## Browser support
201
216
 
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * mote.components.css — opt-in components for mote.css.
3
- * v0.11.0 · 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).
@@ -36,13 +36,6 @@
36
36
  margin-block-end: 0;
37
37
  }
38
38
 
39
- /* Bottom-align a card's action row without owning the row's layout.
40
- .mote-card is a vertical flex column, so the auto margin consumes the
41
- space above the actions. Pair with .mote-row for the row itself. */
42
- .mote-card-actions {
43
- margin-block-start: auto;
44
- }
45
-
46
39
  /* Band: a full-bleed tinted section — CTA bands, section dividers,
47
40
  announcement strips. An opaque mix (unlike --mote-accent-soft, which is
48
41
  transparent and can vanish over dark backgrounds), so it reads as a
@@ -411,14 +404,6 @@ nav[aria-label="toc"] a:hover {
411
404
  border-radius: inherit;
412
405
  }
413
406
 
414
- /* Paint a status row's direct cells when the row opts in. Status classes
415
- remain token carriers; this helper is the visual step. background-color
416
- deliberately preserves any existing background-image layer. */
417
- tr.mote-row-status:is(.mote-success, .mote-warning, .mote-error, .mote-info)
418
- > :is(td, th[scope="row"]) {
419
- background-color: var(--mote-status-soft);
420
- }
421
-
422
407
  /* Scrollable table wrapper: sticky thead, no page scroll, no margin jump */
423
408
  .mote-table-scroll {
424
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.11.0 · 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.11.0",
3
+ "version": "0.12.0",
4
4
  "bugs": {
5
5
  "url": "https://gitlab.com/abmach/mote/-/issues"
6
6
  },