Repository navigation
feat: thin hover-revealed scrollbars with stable pane gutters - #130
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
tokens.css,style.css,review.css) owns light-DOM scrollbars. Every scroller gets a thin 10px track with a 6px rounded thumb that appears while its pane is hovered or holds focus and darkens on hover/drag, matching Pierre's in-file tracks. Diff viewport, file tree, comments and Reviews column setscrollbar-gutter: stable, so content, tree rows and toolbar actions no longer shift when overflow toggles. Alsouse-file-navigation.ts: the hide-reviewed hand-off now pins the next file, the same way explicit navigation does.itemMetrics.paddingBottomand in-file horizontal measurement unchanged.scrollbar-coloris set only for Firefox (@supports not selector(::-webkit-scrollbar)), because it inherits into Pierre's shadow roots and would disable Pierre's Chromium::-webkit-scrollbarstyling.--diff-viewport-insetis now constant at the track size. The hand-off pin fixes a race from feat: Alt+M toggles reviewed on selected file #127: when hide-reviewed handed selection to the next file without a pin, a scroll that landed before the shortened list laid out letfollowScrollreselect the top file. Under check-runner env (GOMAXPROCS=2)app.spec.ts:1044failed 10/20 on main. No mode-specific behavior.check:push104/104. New browser test asserts a constant 10px gutter on the diff viewport and file tree with and without overflow, plus stable tree-row and toolbar edges; it fails with the gutters removed. Alt+M test 20/20 under check-runner env after the fix (main 10/20). Risks: panes reserve 10px even without overflow; macOS overlay-scrollbar users get a classic gutter in Chromium; scroll position is hidden at rest; Firefox picks its own thin width; the outer sidebar can still shift on very short viewports.:hoverscrollbar parts, even on a minimal page, so hover reveal was checked in a real browser (thumb shows on diff hover). Light/dark geometry is covered by the existing native-scrollbar spec. Keyboard focus reveal uses:focus-within. Pierre geometry, selection and virtualization are unchanged (existing specs pass).