Skip to content

fix(tangent): stop the tab strips scrolling up and down - #2777

Draft
camielvs wants to merge 1 commit into
09-21-feat_instructions_as_a_project_documentfrom
09-21-fix_workarea_tabs_scroll_sideways
Draft

camielvs wants to merge 1 commit into
09-21-feat_instructions_as_a_project_documentfrom
09-21-fix_workarea_tabs_scroll_sideways

Conversation

@camielvs

@camielvs camielvs commented Sep 22, 2026

Copy link
Copy Markdown
Collaborator

A workarea with enough tabs open grew a vertical scrollbar inside a bar one tab tall.

Cause

Both tab strips ask only for overflow-x-auto. But a box with one axis set to anything other than visible computes the other axis to auto — so overflow-y became auto too. The horizontal scrollbar then eats into the strip's fixed h-9, the tabs overflow downwards by the height of their own scrollbar, and the strip grows a second scrollbar to reach them.

Fix

One named class, SCROLLING_TAB_STRIP, carrying both axes and the reason, used by both strips. The chat strip had the same fault and the same fix — it just needs more tabs before it shows.

Testing

pnpm run validate and npx vitest run green (3079 tests). No new test: the only thing to assert is a class string, which would be a change-detector rather than a check that the bug is gone.

Verified in a browser with five documents open at 760px, where the strip genuinely overflows:

overflowX: "auto"   overflowY: "hidden"
scrollWidth: 988    clientWidth: 959     (still scrolls sideways)

One honest caveat: headless Chromium draws overlay scrollbars, which take no layout width, so the visible scrollbar in the original report cannot be reproduced there by measurement. What is verified is that the computed overflow-y was auto before and is hidden now, and that horizontal scrolling still works — and hidden cannot produce a vertical scrollbar.

🤖 Generated with Claude Code

@github-actions

github-actions Bot commented Sep 22, 2026

Copy link
Copy Markdown

🎩 Preview

A preview build has been created at: 09-21-fix_workarea_tabs_scroll_sideways/679d9ae

camielvs commented Sep 22, 2026

Copy link
Copy Markdown
Collaborator Author

Warning

This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

This stack of pull requests is managed by Graphite. Learn more about stacking.

@camielvs
camielvs force-pushed the 09-21-fix_workarea_tabs_scroll_sideways branch 2 times, most recently from 6ad032a to 36c0bf5 Compare September 23, 2026 23:36
@camielvs
camielvs force-pushed the 09-21-feat_instructions_as_a_project_document branch from e18014e to d1fbc46 Compare September 23, 2026 23:36
@camielvs
camielvs force-pushed the 09-21-fix_workarea_tabs_scroll_sideways branch from 36c0bf5 to 2b92f93 Compare September 23, 2026 23:57
@camielvs
camielvs force-pushed the 09-21-feat_instructions_as_a_project_document branch from d1fbc46 to 4f79242 Compare September 23, 2026 23:57
A workarea with enough tabs open grew a vertical scrollbar inside a bar one
tab tall.

`overflow-x-auto` is the only thing either strip asks for, but a box with
one axis set to something other than `visible` computes the other to `auto`,
and the horizontal scrollbar then eats into the strip's fixed height — so
the tabs overflowed downwards by the height of their own scrollbar, and got
a second scrollbar to reach it.

Both strips say what they are through one named class instead, which is
where the reason lives. The chat strip had the same fault and the same fix.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@camielvs
camielvs force-pushed the 09-21-feat_instructions_as_a_project_document branch from 4f79242 to 6a3458a Compare September 24, 2026 00:13
@camielvs
camielvs force-pushed the 09-21-fix_workarea_tabs_scroll_sideways branch from 2b92f93 to 679d9ae Compare September 24, 2026 00:13

This branch has not been deployed

No deployments
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