Skip to main content

max / makeover

2.5.2: give tokyonight a raised surface Its page and raised were the identical hex, #1a1b26, so the theme had no ramp at all rather than a shallow one and nothing in it could lift off anything. It was the one entry in CANNOT_LIFT_OFF_THE_PAGE that was an omission rather than a judgment about someone else's palette. Raised becomes #292e42, which is upstream Tokyo Night's own bg_highlight rather than a colour picked here. That puts 0.079 oklab L between page and raised, above nord's 0.055 and well clear of the 0.05 line. The derived well and bevel pair still pass their own degeneracy tests, so the deeper face costs nothing downstream. The other nineteen entries stay. They are shallow ramps in published palettes, which is a different claim from a missing one, and re-ramping them waits on every app being migrated and eyeballed.
Co-Authored-By
Claude Opus 5 (1M context) <noreply@anthropic.com>
Author: Max Johnson <me@maxj.phd> · 2026-08-15 21:10 UTC
Signed with PGP, not checked
Commit: 2e03a85ad835eeaf45e35e909a7797e9084fdd3a
Parent: b4775a7
3 files changed, +10 insertions, -3 deletions
M Cargo.toml +1 -1
@@ -1,6 +1,6 @@
1 1 [package]
2 2 name = "makeover"
3 - version = "2.5.1"
3 + version = "2.5.2"
4 4 edition = "2024"
5 5 description = "Shared theme loading for the make-family apps: TOML theme files parsed into intent-based color tokens, with perceptual derivations and WCAG contrast."
6 6 license = "MIT"
M src/lib.rs +8 -1
@@ -1974,6 +1974,14 @@
1974 1974 // highlighting and owe our depth model nothing. Failing here says a theme
1975 1975 // cannot hold a bevel, not that it is wrong. Shrinking the list is the fix;
1976 1976 // growing it is a regression in the theme, not in this derivation.
1977 + //
1978 + // tokyonight left the list on 2026-08-15, and it is the only entry that could
1979 + // leave without a judgment call about someone else's palette. Its page and
1980 + // raised were the identical hex, so it had no ramp at all rather than a
1981 + // shallow one, and the fix is upstream's own `bg_highlight` (#292e42, 0.079
1982 + // above the page) rather than a color we picked. The other nineteen are
1983 + // shallow ramps in published palettes, which is a different claim, and they
1984 + // stay deferred until every app is migrated and eyeballed.
1977 1985 #[test]
1978 1986 fn raised_is_distinct_from_page() {
1979 1987 // Below this, a raised surface and the page under it are one surface to
@@ -1999,7 +2007,6 @@
1999 2007 "rosepine",
2000 2008 "rosepine-dawn",
2001 2009 "solarized-dark",
2002 - "tokyonight",
2003 2010 ];
2004 2011
2005 2012 let mut flat: Vec<String> = Vec::new();
@@ -11,7 +11,7 @@
11 11
12 12 [surface]
13 13 page = "#1a1b26"
14 - raised = "#1a1b26"
14 + raised = "#292e42"
15 15 sunken = "#283457"
16 16 overlay = "#16161e"
17 17