Point the last computed colors at real tokens so nothing is derived by
blending anymore:
- barbar inactive labels take the new 600 tier, which reads dimmer than
the 500 accent and, unlike 700, still brightens under the vivid style
- notify borders take the 900 tier, and the debug border takes base02
- black was a blend of the background toward pure black, a value that
appeared nowhere in the palette; it is base04, so replace it outright
- border was aliased to black, leaving it invisible against the
background in the dark style; it is now base02, matching WinSeparator
With no callers left, darken and blend go, and with them the mutable
util.bg they relied on -- a shared global whose value depended on which
style had been resolved last.
Every highlight group is unchanged by the black removal. The barbar and
notify groups do shift slightly, since a token can never reproduce a
blend toward the background exactly; they were chosen to read correctly
rather than to match the old values.
Light gains from this: black resolved to a muddy #cac4b5 that measured
1.85:1 on statusline mode chips, and base04 lifts that to 3.21:1. The
same change makes terminal color0 white in the light style, completing
an inversion that already had color7 resolving to a dark value.
Fill in the four stops each accent ramp was missing, transcribed from the
Solarized Osaka design tokens so every hue now carries the full 50-950
scale. The light palette mirrors them around 500 like the existing tiers,
and 800 joins 700/900/950 as a background tier so the vivid style leaves
it alone.
The 600 tier in particular gives group definitions a dimmed accent that
previously had to be computed, since it sits between the 500 accent and
the much darker 700.
All 88 accent stops now match the design tokens exactly. The generated
lua and helix extras pick up the new entries; no existing value changed.
The light style is a hand-written palette rather than an inversion of the
dark one, so the invert helpers lost their last caller. They only ever
called each other, and the same is true of syntax and highlight. lighten
had no callers at all.
Removing highlight orphans treesitter.lua, whose only consumer was the
ts.get call inside it, so the module goes too. day_brightness fed nothing
but invert_color and was already a no-op, so drop the option and its docs.
Also fix the vimdoc palette example, which called the now-removed
util.lighten with colors.bg_dark and colors.red1 -- tokyonight names that
have never existed in this fork.
All 2822 highlight groups across the dark, light and vivid styles are
byte-for-byte identical before and after, and the extras rebuild clean.
Delta now paints diff lines with the 900/950 background tiers and keeps
the 500 tier for line numbers, so added and removed lines read as tinted
backgrounds rather than saturated blocks of color.
Also stop appending a bare separator when an extra declares no extension.
Ghostty is the only one, so every build wrote solarized_osaka_dark. next
to the correct solarized_osaka_dark with identical content.
HSLuv preserves *relative* saturation, but the sRGB gamut narrows toward
white, so holding S constant while raising lightness silently drained real
chroma: red lost 29.8%, violet 26.6% and magenta 18.2%.
Work in LCh instead and never let chroma fall below where it started,
capped at what the gamut can hold at the new lightness. Colors already on
the boundary keep riding it up, so the hues that were not losing chroma
are untouched and near-gray tokens stay neutral.
red500 #f37574 -> #ff6c6a (+19.7% chroma)
magenta500 #ef73a6 -> #fe67a8 (+22.1%)
violet500 #989ad7 -> #9498ea (+35.6%)
Contrast is unchanged, with the lowest still at 6.21:1.
Add `vivid`, a dark variant whose text colors are pushed toward white in
HSLuv space so hue and saturation stay put and only brightness moves.
Comments go from 3.45:1 to 6.21:1 against the background and syntax colors
land between 6.8:1 and 8.8:1, which keeps the theme readable outdoors
without switching every tool over to a light theme.
Background tokens are left alone since brightening those would reduce
contrast rather than add it. The boost is proportional to the remaining
headroom, so already bright colors barely move and the palette keeps its
internal ordering.
Also rename the day colorscheme to solarized-osaka-light to match the
style name it loads.
The colors were defaulting to use hl-groups of `gitsigns` and if you do not have that plugin
installed the colors for the git were all wrong so added those.
Did test it on `main` and that has the same result.