fix(style): make the active surface actually visible

SurfaceActive was Lerp(Surface, Primary, 0.1f), picked when no production code
drew the token. Against the real sidebar it is barely distinguishable from
SurfaceBase, so the active row was identifiable only by its 2px accent bar --
which is not what "the active tab is unmistakable" was supposed to mean.

0.25 keeps it clearly a surface rather than a coloured block, and stays
distinct from SurfaceHover, which is its own theme slot rather than a
derivation.

Worth a look across all themes during the smoke test: the lerp target is
Primary, so themes with a very light primary will move further than the dark
ones.
This commit is contained in:
2026-08-18 00:05:53 +02:00
parent bfc61909cf
commit 891f8ac0ec
+4 -1
View File
@@ -109,7 +109,10 @@ internal sealed class TokenResolver
[Token.SurfaceBase] = c => c.Surface,
[Token.SurfaceRaised] = c => Lerp(c.Surface, White, 0.06f),
[Token.SurfaceHover] = c => c.SurfaceHover,
[Token.SurfaceActive] = c => Lerp(c.Surface, c.Primary, 0.1f),
// 0.1 was chosen when nothing drew this token; against the real sidebar
// it is barely distinguishable from SurfaceBase, which left the active
// row identifiable only by its accent bar.
[Token.SurfaceActive] = c => Lerp(c.Surface, c.Primary, 0.25f),
[Token.TextMuted] = c => c.TextMuted,
[Token.TextFaint] = c => c.TextDim,
};