max / makeover-build
- Co-Authored-By
- Claude Opus 5 (1M context) <noreply@anthropic.com>
- Claude-Session
- https://claude.ai/code/session_01MptwXZ8k65v19rFmdGAyki
3 files changed,
+10 insertions,
-24 deletions
| @@ -2,11 +2,8 @@ | |||
| 2 | 2 | ||
| 3 | 3 | Build-script support for the make-family design system. | |
| 4 | 4 | ||
| 5 | - | Every consumer materialises the same generated files from a `build.rs`, and | |
| 6 | - | until now every consumer wrote that code itself. GoingsOn and Balanced Breakfast | |
| 7 | - | grew byte-identical copies of the theme materialiser during the makeover-geometry | |
| 8 | - | adoption, and the layout stylesheet would have been the third and fourth copies. | |
| 9 | - | This is that code, once. | |
| 5 | + | Every consumer materialises the same generated files from a `build.rs`. This is | |
| 6 | + | that code, once, so no consumer keeps its own copy. | |
| 10 | 7 | ||
| 11 | 8 | ```rust | |
| 12 | 9 | // build.rs | |
| @@ -40,9 +37,8 @@ | |||
| 40 | 37 | drifts. Every path written here is expected to be gitignored. | |
| 41 | 38 | ||
| 42 | 39 | `themes` clears stale `.toml` files before writing, so a theme removed or | |
| 43 | - | renamed upstream does not linger in the bundle from an earlier build. That is | |
| 44 | - | the detail that makes this worth sharing rather than retyping: it is easy to | |
| 45 | - | omit, and its absence shows up as a theme that will not go away. | |
| 40 | + | renamed upstream does not linger in the bundle from a previous build. Omitting | |
| 41 | + | that step shows up as a theme that will not go away. | |
| 46 | 42 | ||
| 47 | 43 | ## Status | |
| 48 | 44 |
| @@ -409,9 +409,7 @@ | |||
| 409 | 409 | /// specificity, either by being unlayered or by sitting in a layer the app's | |
| 410 | 410 | /// order statement puts after `makeover`, so an app declaration for a property | |
| 411 | 411 | /// makeover already sets does not merge with it: it wins, silently, and the | |
| 412 | - | /// design system's version of that component stops applying. Both sort-caret | |
| 413 | - | /// defects found on 2026-08-11 were this, and both were live for months because | |
| 414 | - | /// nothing looked. | |
| 412 | + | /// design system's version of that component stops applying, and nothing looks. | |
| 415 | 413 | /// | |
| 416 | 414 | /// # Two passes, because a rule can carry no class | |
| 417 | 415 | /// | |
| @@ -460,13 +458,8 @@ | |||
| 460 | 458 | /// that guesses wrong about specificity fails correct builds -- so the app | |
| 461 | 459 | /// declares it instead, the same shape as quasi-webview's `RENDERER_OWN`. | |
| 462 | 460 | /// | |
| 463 | - | /// The example this section used to give was the sort caret: `content` on | |
| 464 | - | /// `.table-heading`'s unsorted arm reserved the gap, `content` on the sorted arm | |
| 465 | - | /// was the generated glyph, and the two were a pairing rather than a collision. | |
| 466 | - | /// makeover-webview 0.31.0 emits both arms itself, so that pair is now an app | |
| 467 | - | /// overriding the caret and the check is right to fail it. A reviewed pairing is | |
| 468 | - | /// a claim about who owns a property, and it expires when the design system | |
| 469 | - | /// takes the property back. | |
| 461 | + | /// A reviewed pairing is a claim about who owns a property, and it expires when | |
| 462 | + | /// the design system takes the property back. | |
| 470 | 463 | /// | |
| 471 | 464 | /// `allowed_elements` is the same thing one pass down: `(element, class, | |
| 472 | 465 | /// property)` triples where a bare element rule reaching a generated class has |
| @@ -71,9 +71,8 @@ | |||
| 71 | 71 | /// Write the themes `makeover` ships into `dir`, as `<id>.toml`. | |
| 72 | 72 | /// | |
| 73 | 73 | /// Clears stale `.toml` files first, so a theme removed or renamed upstream | |
| 74 | - | /// does not linger in the bundle from an earlier build. That detail is the | |
| 75 | - | /// reason this is worth sharing rather than retyping: it is easy to omit and | |
| 76 | - | /// its absence shows up as a theme that will not go away. | |
| 74 | + | /// does not linger in the bundle from a previous build. Omitting that step | |
| 75 | + | /// shows up as a theme that will not go away. | |
| 77 | 76 | /// | |
| 78 | 77 | /// # Panics | |
| 79 | 78 | /// | |
| @@ -123,9 +122,7 @@ | |||
| 123 | 122 | /// [`makeover_geometry::size_class_css`] follows the density block because it | |
| 124 | 123 | /// is the narrower claim: density says what is pointing at the screen, size | |
| 125 | 124 | /// class says how much screen there is, and on a compact window the two shells | |
| 126 | - | /// tighten regardless of which density selected them. Shipped in | |
| 127 | - | /// makeover-geometry 0.7.0 and emitted by nobody until 2026-08-10, which meant | |
| 128 | - | /// the axis existed in the crate and reached no stylesheet. | |
| 125 | + | /// tighten regardless of which density selected them. | |
| 129 | 126 | /// | |
| 130 | 127 | /// # Panics | |
| 131 | 128 | /// |