Skip to content

fix #291582: themes: add scrollbar shadow to 2026 themes - #307480

Open
João Pinheiro (joaopmpinheiro) wants to merge 1 commit into
microsoft:mainfrom
joaopmpinheiro:fix/291582
Open

fix #291582: themes: add scrollbar shadow to 2026 themes#307480
João Pinheiro (joaopmpinheiro) wants to merge 1 commit into
microsoft:mainfrom
joaopmpinheiro:fix/291582

Conversation

@joaopmpinheiro

Copy link
Copy Markdown

Fixes #291582

Description of proposed changes:
Updates the scrollbar.shadow color in both 2026-dark.json and 2026-light.json with more opaque hex values that match the existing color palette of each theme while ensuring proper visibility.

Includes an automated test to ensure the scrollbar.shadow alpha in the 2026 themes remains below a threshold of 0.85.

Screenshots:
Screenshot LightTheme
Screenshot DarkTheme

How to test:

  1. Fill the chatbox with enough lines to trigger the scrollbar and scroll down to observe the new top shadow.
  2. Run the test suite to verify the newly added alpha threshold test passes.

Copilot AI review requested due to automatic review settings April 2, 2026 18:10
@joaopmpinheiro

Copy link
Copy Markdown
Author

@microsoft-github-policy-service agree

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR addresses #291582 by making the scrollbar.shadow color non-transparent in the 2026 light/dark themes so the “top shadow” is visible in overflowing scrollable UI (e.g. chat input). It also introduces a regression test intended to constrain the opacity of that color.

Changes:

  • Update scrollbar.shadow in 2026-light.json to a more opaque value (from fully transparent).
  • Update scrollbar.shadow in 2026-dark.json to a more opaque value.
  • Add a node test that asserts the 2026 themes’ scrollbar.shadow alpha stays under 0.85.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.

File Description
src/vs/workbench/contrib/themes/test/node/themeTransparency.test.ts Adds a test that extracts scrollbar.shadow alpha from the 2026 theme JSON files and checks it’s below a threshold.
extensions/theme-defaults/themes/2026-light.json Sets scrollbar.shadow to a non-transparent RGBA hex to restore visible top shadow.
extensions/theme-defaults/themes/2026-dark.json Adjusts scrollbar.shadow to a more opaque RGBA hex to improve visibility.

Comment on lines +30 to +41
test('scrollbar.shadow alpha should be below 0.85', async () => {
const lightAlpha = await getScrollbarShadowAlpha('2026-light.json');
const darkAlpha = await getScrollbarShadowAlpha('2026-dark.json');

const threshold = 0.85; // Threshold for transparency value

if (lightAlpha !== undefined) {
// Checks Light Theme
assert.ok(lightAlpha < threshold, `Light theme scrollbar.shadow alpha (${lightAlpha}) should be below ${threshold}`);
} else {
assert.fail('Light theme scrollbar.shadow not found');
}

Copilot AI Apr 2, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The new test only asserts alpha < 0.85, which would still pass for a fully transparent value like #00000000 (the original light-theme regression) and therefore doesn’t actually prevent the “no top shadow” issue from coming back. Consider adding a lower-bound assertion (e.g. alpha > 0 or a small minimum) in addition to the upper threshold so the test enforces visibility as well as avoiding over-opaqueness.

Copilot uses AI. Check for mistakes.
Updates the scrollbar.shadow color in both 2026-dark.json
and 2026-light.json with more opaque hex values that match the
existing color palette of each theme while ensuring visibility.

Includes a test to ensure scrollbar.shadow alpha in 2026 themes is
below a threshold of 0.85.
@joaopmpinheiro

Copy link
Copy Markdown
Author

Lee Murray (@mrleemurray) Would you mind taking a look at my PR, I'm more than willing to change anything that might be required!

@mrleemurray Lee Murray (mrleemurray) left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks good - Martin Aeschlimann (@aeschli) can you also review when you have a moment?

@joaopmpinheiro

Copy link
Copy Markdown
Author

Hey! Just checking in on this PR, are there any more changes needed in order for this to be merged?

@joaopmpinheiro

Copy link
Copy Markdown
Author

@dmitrivMS

Copy link
Copy Markdown
Collaborator

João Pinheiro (@joaopmpinheiro) Apologies for the delay, could you please resolve the conflicts?

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.

2026 themes: no top shadow in overflowing chat input

6 participants