Skip to main content

max / balanced_breakfast

Read the bevel tones from makeover instead of deriving them makeover 2.2.0 emits bevel-light and bevel-dark as resolved intents, derived from the theme's raised surface in OKLab. The token names were chosen to match, so adoption is dropping the interim color-mix pair. The two tokens move up into the intent layer rather than disappearing: this stylesheet reads them, and every intent it reads needs a first-paint default. Values are what makeover resolves for flatwhite. Done alongside the same change in goingson so the two apps' light models cannot drift.
Co-Authored-By
Claude Opus 5 (1M context) <noreply@anthropic.com>
Author: Max Johnson <me@maxj.phd> · 2026-07-28 19:21 UTC
Signed with PGP, not checked
Commit: 2d9dfc2880b2c8012db60b4e79e60264fa00ab4d
Parent: d2edcd2
3 files changed, +5 insertions, -11 deletions
M Cargo.lock +2 -2
@@ -3105,9 +3105,9 @@
3105 3105
3106 3106 [[package]]
3107 3107 name = "makeover"
3108 - version = "2.1.0"
3108 + version = "2.2.0"
3109 3109 source = "registry+https://github.com/rust-lang/crates.io-index"
3110 - checksum = "a26aeb770bb59143a83a7bffa1150930064b785abbe6b7e99da59697cb592032"
3110 + checksum = "f3d7c2a566230afeed8b2b9d8decc2edfdc9b1f067e7791303df8301a73aeff1"
3111 3111 dependencies = [
3112 3112 "include_dir",
3113 3113 "serde",
M Cargo.toml +1 -1
@@ -53,7 +53,7 @@
53 53 # Utilities
54 54 chrono = { version = "0.4.43", features = ["serde"] }
55 55 uuid = { version = "1.20.0", features = ["v4", "serde"] }
56 - makeover = "2.1.0"
56 + makeover = "2.2.0"
57 57 # The invariant half of the design system: relational spacing. makeover
58 58 # resolves colour, which a theme may override; this carries what no theme may.
59 59 makeover-geometry = "0.1.0"
@@ -137,6 +137,8 @@
137 137 --surface-raised: #f7f3ee; /* themed */
138 138 --surface-sunken: #dcd3c6; /* themed */
139 139 --surface-overlay: #e4ddd2; /* themed */
140 + --bevel-light: #fffef9; /* themed: derived by makeover from surface-raised */
141 + --bevel-dark: #bcb8b4; /* themed: derived by makeover from surface-raised */
140 142 --content: #605a52; /* themed */
141 143 --content-secondary: #786d5e; /* themed */
142 144 --content-muted: #9a8b78; /* themed */
@@ -173,14 +175,6 @@
173 175 --shadow-color: color-mix(in oklch, var(--content-muted) 88%, black); /* composition */
174 176 --border-width: 1px; /* invariant */
175 177
176 - /* Bevel tones, named for the intents makeover emits. Until BB picks up a
177 - makeover that ships them, color-mix derives the same two colors from
178 - whatever surface the active theme resolved; adopting the crate version
179 - is deleting these two lines, because every consumer already reads the
180 - right name. */
181 - --bevel-light: color-mix(in oklab, var(--surface-raised) 48%, #FFFFFF); /* composition */
182 - --bevel-dark: color-mix(in oklab, var(--surface-raised) 58%, #000000); /* composition */
183 -
184 178 /* The two-tone bevel. Raised is lit from the top left; inset is the same
185 179 bevel inverted, which is also the pressed state for anything raised.
186 180 One token swap per component, which is what makes the idiom cheap. */