Skip to main content

max / makenotwork

Hand the facet controls their flat rest look back makeover-webview 0.67.0 names the element-chrome reset, so a facet value now carries a base rule that withdraws the button's fill, stroke and bevel. The element rule in this file supplies all three and sits in a later layer, so the withdrawal only lands with a handoff, and makeover-build's drift gate refuses the build without one. Wider than the .button group by the border. That group keeps the app's stroke on purpose; here the flat rest look is the withdrawal of it. makeover-build 0.60.0 with it, which is the generator that emits the rule.
Co-Authored-By
Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session
https://claude.ai/code/session_01DwpiantpUgohzML4xr6KeQ
Author: Max Johnson <me@maxj.phd> · 2026-08-29 16:31 UTC
Signed with PGP, not checked
Commit: 23fcda8b925d1ac5bdcd9ba7e24b78383dd6afc4
Parent: b950aa0
3 files changed, +53 insertions, -18 deletions
M server/Cargo.lock +16 -16
@@ -5390,9 +5390,9 @@
5390 5390
5391 5391 [[package]]
5392 5392 name = "makeover-build"
5393 - version = "0.59.0"
5393 + version = "0.60.0"
5394 5394 source = "registry+https://github.com/rust-lang/crates.io-index"
5395 - checksum = "edbf5bb797029beb9a2fb82f6945a40f5699e5059bf820789fc4d306feced958"
5395 + checksum = "347bc87ae657975fb73638f028d7df91cfd8c6486f56f38682a73395011bf201"
5396 5396 dependencies = [
5397 5397 "makeover",
5398 5398 "makeover-geometry",
@@ -5433,9 +5433,9 @@
5433 5433
5434 5434 [[package]]
5435 5435 name = "makeover-webview"
5436 - version = "0.66.0"
5436 + version = "0.67.0"
5437 5437 source = "registry+https://github.com/rust-lang/crates.io-index"
5438 - checksum = "38d8db2ca46e821e19050b3d8bae17cf542b694f028210eb2ac9738faed127c2"
5438 + checksum = "87b1f05ef8adcc840f118da789b73ffb25d4111103113e597ee6e9d858d02183"
5439 5439 dependencies = [
5440 5440 "makeover-geometry",
5441 5441 "makeover-layout",
@@ -10759,18 +10759,6 @@
10759 10759 "pkg-config",
10760 10760 ]
10761 10761
10762 - [[patch.unused]]
10763 - name = "kberg"
10764 - version = "0.1.0"
10765 -
10766 - [[patch.unused]]
10767 - name = "ops-status"
10768 - version = "0.1.0"
10769 -
10770 - [[patch.unused]]
10771 - name = "painhours"
10772 - version = "0.1.0"
10773 -
10774 10762 [[patch.unused]]
10775 10763 name = "synckit-client"
10776 10764 version = "0.10.0"
@@ -10794,3 +10782,15 @@
10794 10782 [[patch.unused]]
10795 10783 name = "quasi-tauri"
10796 10784 version = "0.78.0"
10785 +
10786 + [[patch.unused]]
10787 + name = "kberg"
10788 + version = "0.1.0"
10789 +
10790 + [[patch.unused]]
10791 + name = "ops-status"
10792 + version = "0.1.0"
10793 +
10794 + [[patch.unused]]
10795 + name = "painhours"
10796 + version = "0.1.0"
@@ -175,7 +175,7 @@
175 175 # through quasi-webview for makeover-layout's reason: two `form::` paths from
176 176 # two resolutions are two crates, and the `data-format="markdown"` rules in
177 177 # `static/layout.css` are generated from this one.
178 - makeover-webview = "0.66.0"
178 + makeover-webview = "0.67.0"
179 179 # For the request head the per-viewer state factory reads. axum re-exports it,
180 180 # but the factory's signature is quasi-axum's and names `http::request::Parts`.
181 181 http = "1.3.1"
@@ -254,7 +254,7 @@
254 254 # Emits static/geometry.css (makeover-geometry) and static/layout.css
255 255 # (makeover-webview). The same generator GO and BB run; only the output paths
256 256 # differ, since the server serves its stylesheets rather than bundling them.
257 - makeover-build = "0.59.0"
257 + makeover-build = "0.60.0"
258 258 # Read directly for the embeds' own copy of the spacing layer, which they need
259 259 # because an iframe cannot link a stylesheet. makeover-build does not re-export
260 260 # it, so the pin lives here and has to track the one makeover-build resolves.
@@ -529,6 +529,41 @@
529 529 cursor: revert-layer;
530 530 }
531 531
532 + /* A described facet value, the third arm of the same handoff. makeover 0.67.0
533 + names the element-chrome reset, and a facet control withdraws the button's
534 + fill, stroke and bevel with it: a value reads flat until it is hovered,
535 + pressed or in force. The element rule above supplies all three, so without
536 + this a described facet renders as an ordinary raised button and
537 + `[aria-pressed="true"]` is its only correct state -- which is the whole of
538 + what the panel had to say and the one thing it could not.
539 +
540 + Wider than the `.button` group above by one property. That group keeps the
541 + app's border deliberately, because a described act is still a button. Here
542 + the flat rest look IS the withdrawal of the border, so it is handed back
543 + with the other two. */
544 + .facet-take,
545 + .facet-prune {
546 + /* respec-ok: a layer handoff, not a value. */
547 + background: revert-layer;
548 + border: revert-layer;
549 + box-shadow: revert-layer;
550 + }
551 +
552 + .facet-take:hover,
553 + .facet-prune:hover {
554 + /* respec-ok: a layer handoff, not a value. */
555 + background: revert-layer;
556 + }
557 +
558 + .facet-take:active,
559 + .facet-prune:active,
560 + .facet-take[aria-pressed="true"],
561 + .facet-prune[aria-pressed="true"] {
562 + /* respec-ok: a layer handoff, not a value. */
563 + background: revert-layer;
564 + box-shadow: revert-layer;
565 + }
566 +
532 567 /* A described field on a `select` or a `textarea`. The input rule further down
533 568 sets padding and font only, which is why the shipped `.field` precedents
534 569 survived; these two also set `background` and `box-shadow`, so a described