Skip to content

Colours the light theme missed - #606

Merged
WaylandYang merged 8 commits into
devfrom
fix/colours-the-light-theme-missed
Sep 11, 2026
Merged

WaylandYang merged 8 commits into
devfrom
fix/colours-the-light-theme-missed

Conversation

@WaylandYang

Copy link
Copy Markdown
Contributor

Five things the light theme was still getting wrong, and the rule that should have
caught the first one.

A wordmark is not white. The top-bar wordmark, the login page's, and three selected
rows in the menus were text-white. On dark ground that is the same pixel as text-ink,
so nothing looked wrong until the ground flipped and the name went invisible on paper.
All five become text-ink.

The guard had a hole the size of white. alpha-white only matched text-white/10,
the form with an alpha; bare text-white fell through, and white was also listed among
the legitimate text-* utilities next to text-left and text-nowrap. The rule is now
raw-white and matches both forms across every colour prefix. white and black stay in
the utilities list on purpose, so a bare one is reported once, by this rule, and not twice.

A bar is not a button. The 14-day chart in the review overview filled its bars with
--u-accent, which on paper is #262626. A chart of what got decided last week was the
heaviest thing on the page. Bars get their own token, --u-bar, at half ink in both
themes, and a width cap: the card is a thousand pixels wide and fourteen full-width bars
are slabs, not bars.

Fills on paper are heavier than the same fills on ink. Black at α over white reads
darker than white at the same α over near-black, so the light theme cannot simply reuse
dark's alphas. The resting panel drops from 0.03 to 0.015, hover from 0.05 to 0.03, and
the selected row from 0.09 to 0.055. The selected row's fill also becomes a token
(--u-active) instead of a number written into .u-nav-active, which is what made it
untunable per theme. The ratio between hover and selected stays where it was in dark, so
"pointing at" and "chosen" remain a step apart.

mix() was quietly returning grey. It parsed both ends with hexToRgb, which only
knows #rrggbb and falls back to 128,128,128. Since 0038 INK is read from a token and
arrives as rgb(23,23,23), so every mix(typeColour, INK, t) — the ring around a hovered
or a selected node, in both themes — mixed toward grey instead of toward the ink. It now
parses with parseRgba, which takes both. Tests cover both ends.

Two smaller ones in passing: the tick in the chat scope menu was an svg inside children,
which Row wraps in one truncating span, so preflight's display:block dropped it onto a
second line and made the row taller. It moves to the trailing slot, where the knowledge
base switcher already had it. And a graph search hit whose name shares space with a
disambiguator was being truncated to two characters; the disambiguator now shrinks four
times faster, is capped at 40%, and is hidden when it only repeats the type already shown
at the right of the row.

WaylandYang and others added 8 commits September 11, 2026 11:48
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Signed-off-by: WaylandYang <wayland0916@gmail.com>
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Signed-off-by: WaylandYang <wayland0916@gmail.com>
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Signed-off-by: WaylandYang <wayland0916@gmail.com>
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Signed-off-by: WaylandYang <wayland0916@gmail.com>
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Signed-off-by: WaylandYang <wayland0916@gmail.com>
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Signed-off-by: WaylandYang <wayland0916@gmail.com>
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Signed-off-by: WaylandYang <wayland0916@gmail.com>
@WaylandYang
WaylandYang merged commit cb32356 into dev Sep 11, 2026
4 checks passed
@WaylandYang
WaylandYang deleted the fix/colours-the-light-theme-missed branch September 11, 2026 06:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant