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

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 freeto 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

@kateebonner
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
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

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 freeto 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

@kateebonner
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
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

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 freeto 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

@kateebonner
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
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

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 freeto 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

@kateebonner
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
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

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 freeto 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

@kateebonner
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
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

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 freeto 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

@kateebonner
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
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

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 freeto 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

@kateebonner
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
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

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 freeto 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

@kateebonner