diff --git a/src/renderer/src/assets/main.css b/src/renderer/src/assets/main.css index 664cc32606e..cdd6eb0f9e3 100644 --- a/src/renderer/src/assets/main.css +++ b/src/renderer/src/assets/main.css @@ -345,8 +345,9 @@ /* Keep the sidebar gutter reserved; only the thumb fades in on hover. */ .worktree-sidebar-scrollbar { - /* Why: the scrollbar itself owns the gutter; avoid adding a second visual gap beside cards. */ - padding-right: 0; + /* Why: the scrollbar gutter is paint-only in Chromium; this keeps card + surfaces clear of Orca's resize handle and right-edge sidebar chrome. */ + padding-right: 4px; scrollbar-gutter: stable; scrollbar-color: transparent transparent; } diff --git a/src/renderer/src/components/sidebar/sidebar-resize-handle.test.ts b/src/renderer/src/components/sidebar/sidebar-resize-handle.test.ts index 5679781802b..ef72cba89bd 100644 --- a/src/renderer/src/components/sidebar/sidebar-resize-handle.test.ts +++ b/src/renderer/src/components/sidebar/sidebar-resize-handle.test.ts @@ -1,10 +1,26 @@ +import { readFileSync } from 'node:fs' +import { dirname, resolve } from 'node:path' +import { fileURLToPath } from 'node:url' import { describe, expect, it } from 'vitest' import { WORKTREE_SIDEBAR_RESIZE_HANDLE_CLASS_NAME } from './index' +function getWorktreeSidebarScrollbarPaddingRight(): number { + const testDir = dirname(fileURLToPath(import.meta.url)) + const css = readFileSync(resolve(testDir, '../../assets/main.css'), 'utf8') + const block = css.match(/\.worktree-sidebar-scrollbar\s*\{(?
[^}]*)\}/)?.groups?.body ?? '' + const value = block.match(/padding-right:\s*(?