Skip to content

fix(app): tour scrim dim was a no-op — use the shared overlay scrim token - #271

Open
kateebonner wants to merge 1 commit into
local/amicodefrom
fix/tour-scrim-dim
Open

fix(app): tour scrim dim was a no-op — use the shared overlay scrim token#271
kateebonner wants to merge 1 commit into
local/amicodefrom
fix/tour-scrim-dim

Conversation

@kateebonner

Copy link
Copy Markdown
Contributor

Important

Problem: The onboarding walkthrough's scrim dims nothing. Its background mixes --v2-background-bg-basethe app ground itself — over the ground, which is a no-op at any alpha. All the visible separation has been coming from backdrop-filter: blur(3px) alone.

Approach: Use --v2-overlay-simple-overlay-scrim, the shared overlay scrim token the drawer overlay already pairs with a backdrop blur. Theme-aware, genuinely deeper than the ground, and compliant with the design system's "overlay scrims are 40–60% black, via a token" rule.

Scope: One declaration in design-polish.css. Blur is unchanged.

Why it was inert

background: color-mix(in srgb, var(--v2-background-bg-base) 22%, transparent);

--v2-background-bg-base resolves to --v2-grey-1000 (#242424) in dark and --v2-grey-50 in light — the page's own ground in both. Compositing a colour over itself returns that colour at any alpha, so the dim was arithmetically zero. Rendering the real CSS at 22% and at 45% produces identical output, which is what made this look like a tuning problem rather than a broken value.

This is not a regression — it has been inert since the walkthrough landed. It read as acceptable on the browser dev server, where the app is the whole window and the blur alone covers everything. In the extension the app is an iframe: the blur stops at its edge, VS Code's chrome stays sharp, and with no dim reinforcing the separation the spotlight reads as only partly applied. That's the report this fixes.

The fix

background: var(--v2-overlay-simple-overlay-scrim);

Theme-aware by definition — alpha-dark-40 / alpha-light-30 / alpha-dark-60 depending on theme block — and already the established pairing: drawer.tsx uses bg-v2-overlay-simple-overlay-scrim with backdrop-blur-[4px].

blur(3px) is deliberately unchanged; that value was tuned on purpose. Both clip-path holes — the stop's element and the walkthrough card — still read fully crisp against the now-dimmed ground, in both themes.

Verification

Rendered the real rule before/after in both themes against representative chrome: before, the ground is untouched in dark and light; after, it darkens clearly while both holes stay sharp.

  • bun run check:design — passes, "all styles resolve from the brand sheet"
  • bun run typecheck — 30/30 tasks
  • bun run lint — unchanged from base (1 error, pre-existing; the diff is CSS, which oxlint does not lint)

…oken

The onboarding walkthrough's scrim dimmed nothing. Its background was

    color-mix(in srgb, var(--v2-background-bg-base) 22%, transparent)

and --v2-background-bg-base IS the app ground (--v2-grey-1000 #242424 dark,
--v2-grey-50 light). Compositing a colour over itself yields that same colour
at ANY alpha, so the dim was arithmetically inert in both themes — raising the
percentage changed nothing, which is what made it look like a tuning problem.
The only visible separation came from backdrop-filter: blur(3px).

This never regressed; it has been inert since the walkthrough landed. It read
as acceptable on the browser dev server, where the app is the whole window and
the blur alone covers everything. In the extension the app is an iframe, the
blur stops at its edge, and with no dim doing any work the spotlight reads as
only partly applied.

Now uses --v2-overlay-simple-overlay-scrim, the shared overlay scrim token the
drawer overlay already pairs with a backdrop blur. It is theme-aware
(alpha-dark-40 / alpha-light-30 / alpha-dark-60 per theme) and genuinely deeper
than the ground, and it satisfies the design system's rule that overlay scrims
are 40-60% black via a token rather than a literal.

Blur stays at 3px — that value was tuned deliberately and is unchanged. Both
clip-path holes (the stop's element and the walkthrough card) still read fully
crisp against the dimmed ground.

Verified: check:design passes ("all styles resolve from the brand sheet"),
typecheck 30/30, oxlint unchanged from base (CSS is not linted).
@coderabbitai

coderabbitai Bot commented Aug 30, 2026

Copy link
Copy Markdown

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: c8a154b6-6486-4232-a022-719da71a5a1b


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

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