fix(web): make right panel tabs easier to scroll - #9461

Merged
maria-rcks merged 2 commits into
pingdotgg:mainfrom
maria-rcks:t3code/improve-right-panel-tab-scrolling
Sep 3, 2026
Merged

fix(web): make right panel tabs easier to scroll#9461
maria-rcks merged 2 commits into
pingdotgg:mainfrom
maria-rcks:t3code/improve-right-panel-tab-scrolling

Conversation

@maria-rcks

@maria-rcksmaria-rcks commented Sep 3, 2026

Copy link
Copy Markdown
Collaborator

Horizontal overflow in the right-panel tabs was difficult to navigate with a Mac trackpad and inaccessible to ordinary mouse wheels. The strip now consumes either wheel axis consistently, keeps the Electron drag region away from the scrolling surface, and shows edge-aware scroll arrows only when tabs overflow. Verified with the web typecheck, focused lint and format checks, the existing RightPanelTabs tests, and real-app wheel and arrow passes at desktop and responsive sheet sizes.

Before

t3-tab-scroll-before.webm

After

t3-tab-scroll-after.webm

Built by gpt-5.6-sol in the Codex harness.


Note

Low Risk
Localized UI interaction changes in RightPanelTabs with no auth, data, or API impact; main risk is wheel/drag-region edge cases on Electron.

Overview
Improves horizontal navigation when the right-panel tab strip overflows.

Wheel and trackpad: The tab list viewport now maps the dominant wheel delta (horizontal or vertical) into horizontal scroll, with preventDefault only when scrolling actually moves—so mouse wheels and awkward trackpad gestures can move tabs without relying on hidden scrollbars.

Overflow UI: A ResizeObserver plus scroll listeners track overflow and edge position; when tabs don't fit, left/right chevron buttons appear (disabled at the ends) and scroll by ~75% of the viewport width, respecting prefers-reduced-motion. Active-tab scrollIntoView runs only when overflow is present.

Electron title bar: The window drag region sits on the outer tab bar while the scrollable ScrollArea is marked no-drag, so users can scroll tabs without fighting window dragging on desktop.

Reviewed by Cursor Bugbot for commit 238a84d. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Add scroll buttons and wheel-scroll support to RightPanelTabs

  • Adds left and right scroll buttons to RightPanelTabs that appear when tabs overflow, disabling at the scroll boundaries.
  • Adds a non-passive wheel listener to convert wheel input into horizontal tab scrolling, preserving pinch zoom and native page scrolling when no tab scroll occurs.
  • Moves the Electron drag-region from the ScrollArea to the surrounding tab bar, marking the viewport and buttons as no-drag.
  • Risk: The non-passive wheel listener calls preventDefault on the tab viewport in RightPanelTabs.tsx, which could block page scrolling if the container's overflow state changes.

Macroscope summarized 238a84d.

@github-actionsgithub-actionsBot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:L 100-499 changed lines (additions + deletions). labels Sep 3, 2026

@cursorcursorBot 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.

Cursor Bugbot has reviewed your changes using default effort and found 2 potential issues.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit b586983. Configure here.

Comment threadapps/web/src/components/RightPanelTabs.tsx
Comment threadapps/web/src/components/RightPanelTabs.tsx
@macroscopeapp

macroscopeappBot commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved at 238a84d

Macroscope's review found this PR approvable — This is a localized right-panel UX adjustment that adds overflow-aware tab scrolling and controls without changing application data, defaults, or broader workflows. The runtime impact is confined to tab navigation and Electron title-bar hit-testing.

You can add or adjust custom eligibility rules. Learn more.

@maria-rcks
maria-rcks merged commit 46e8b1a into pingdotgg:mainSep 3, 2026
26 checks passed
github-actionsBot added a commit to omarcresp/t3code-flake that referenced this pull request Sep 4, 2026
## What's Changed
* fix(web): make right panel tabs easier to scroll by @maria-rcks in pingdotgg/t3code#9461
* fix(web): render transparent previews on white by @UtkarshUsername in pingdotgg/t3code#9463
* fix(mobile): show loading and syncing in the working pill by @juliusmarminge in pingdotgg/t3code#9466
* fix(server): keep a/ and b/ prefixes in rendered git patches by @Mnigos in pingdotgg/t3code#9438
* fix(server): full-access OpenCode threads no longer ask for approvals by @shivamhwp in pingdotgg/t3code#9282
* fix(web): reuse pull request list data while loading by @maria-rcks in pingdotgg/t3code#9467
* feat(web): let users turn off composer collapse on blur and scroll by @juliusmarminge in pingdotgg/t3code#9469
## New Contributors
* @Mnigos made their first contribution in pingdotgg/t3code#9438
**Full Changelog**: pingdotgg/t3code@v0.0.39-nightly.20260903.1272...v0.0.39-nightly.20260903.1273
Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.39-nightly.20260903.1273
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:L100-499 changed lines (additions + deletions).vouch:trustedPR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@maria-rcks
, '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(web): make right panel tabs easier to scroll - #9461

Merged
maria-rcks merged 2 commits into
pingdotgg:mainfrom
maria-rcks:t3code/improve-right-panel-tab-scrolling
Sep 3, 2026
Merged

fix(web): make right panel tabs easier to scroll#9461
maria-rcks merged 2 commits into
pingdotgg:mainfrom
maria-rcks:t3code/improve-right-panel-tab-scrolling

Conversation

@maria-rcks

@maria-rcksmaria-rcks commented Sep 3, 2026

Copy link
Copy Markdown
Collaborator

Horizontal overflow in the right-panel tabs was difficult to navigate with a Mac trackpad and inaccessible to ordinary mouse wheels. The strip now consumes either wheel axis consistently, keeps the Electron drag region away from the scrolling surface, and shows edge-aware scroll arrows only when tabs overflow. Verified with the web typecheck, focused lint and format checks, the existing RightPanelTabs tests, and real-app wheel and arrow passes at desktop and responsive sheet sizes.

Before

t3-tab-scroll-before.webm

After

t3-tab-scroll-after.webm

Built by gpt-5.6-sol in the Codex harness.


Note

Low Risk
Localized UI interaction changes in RightPanelTabs with no auth, data, or API impact; main risk is wheel/drag-region edge cases on Electron.

Overview
Improves horizontal navigation when the right-panel tab strip overflows.

Wheel and trackpad: The tab list viewport now maps the dominant wheel delta (horizontal or vertical) into horizontal scroll, with preventDefault only when scrolling actually moves—so mouse wheels and awkward trackpad gestures can move tabs without relying on hidden scrollbars.

Overflow UI: A ResizeObserver plus scroll listeners track overflow and edge position; when tabs don't fit, left/right chevron buttons appear (disabled at the ends) and scroll by ~75% of the viewport width, respecting prefers-reduced-motion. Active-tab scrollIntoView runs only when overflow is present.

Electron title bar: The window drag region sits on the outer tab bar while the scrollable ScrollArea is marked no-drag, so users can scroll tabs without fighting window dragging on desktop.

Reviewed by Cursor Bugbot for commit 238a84d. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Add scroll buttons and wheel-scroll support to RightPanelTabs

  • Adds left and right scroll buttons to RightPanelTabs that appear when tabs overflow, disabling at the scroll boundaries.
  • Adds a non-passive wheel listener to convert wheel input into horizontal tab scrolling, preserving pinch zoom and native page scrolling when no tab scroll occurs.
  • Moves the Electron drag-region from the ScrollArea to the surrounding tab bar, marking the viewport and buttons as no-drag.
  • Risk: The non-passive wheel listener calls preventDefault on the tab viewport in RightPanelTabs.tsx, which could block page scrolling if the container's overflow state changes.

Macroscope summarized 238a84d.

@github-actionsgithub-actionsBot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:L 100-499 changed lines (additions + deletions). labels Sep 3, 2026

@cursorcursorBot 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.

Cursor Bugbot has reviewed your changes using default effort and found 2 potential issues.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit b586983. Configure here.

Comment threadapps/web/src/components/RightPanelTabs.tsx
Comment threadapps/web/src/components/RightPanelTabs.tsx
@macroscopeapp

macroscopeappBot commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved at 238a84d

Macroscope's review found this PR approvable — This is a localized right-panel UX adjustment that adds overflow-aware tab scrolling and controls without changing application data, defaults, or broader workflows. The runtime impact is confined to tab navigation and Electron title-bar hit-testing.

You can add or adjust custom eligibility rules. Learn more.

@maria-rcks
maria-rcks merged commit 46e8b1a into pingdotgg:mainSep 3, 2026
26 checks passed
github-actionsBot added a commit to omarcresp/t3code-flake that referenced this pull request Sep 4, 2026
## What's Changed
* fix(web): make right panel tabs easier to scroll by @maria-rcks in pingdotgg/t3code#9461
* fix(web): render transparent previews on white by @UtkarshUsername in pingdotgg/t3code#9463
* fix(mobile): show loading and syncing in the working pill by @juliusmarminge in pingdotgg/t3code#9466
* fix(server): keep a/ and b/ prefixes in rendered git patches by @Mnigos in pingdotgg/t3code#9438
* fix(server): full-access OpenCode threads no longer ask for approvals by @shivamhwp in pingdotgg/t3code#9282
* fix(web): reuse pull request list data while loading by @maria-rcks in pingdotgg/t3code#9467
* feat(web): let users turn off composer collapse on blur and scroll by @juliusmarminge in pingdotgg/t3code#9469
## New Contributors
* @Mnigos made their first contribution in pingdotgg/t3code#9438
**Full Changelog**: pingdotgg/t3code@v0.0.39-nightly.20260903.1272...v0.0.39-nightly.20260903.1273
Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.39-nightly.20260903.1273
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:L100-499 changed lines (additions + deletions).vouch:trustedPR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@maria-rcks
, '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(web): make right panel tabs easier to scroll - #9461

Merged
maria-rcks merged 2 commits into
pingdotgg:mainfrom
maria-rcks:t3code/improve-right-panel-tab-scrolling
Sep 3, 2026
Merged

fix(web): make right panel tabs easier to scroll#9461
maria-rcks merged 2 commits into
pingdotgg:mainfrom
maria-rcks:t3code/improve-right-panel-tab-scrolling

Conversation

@maria-rcks

@maria-rcksmaria-rcks commented Sep 3, 2026

Copy link
Copy Markdown
Collaborator

Horizontal overflow in the right-panel tabs was difficult to navigate with a Mac trackpad and inaccessible to ordinary mouse wheels. The strip now consumes either wheel axis consistently, keeps the Electron drag region away from the scrolling surface, and shows edge-aware scroll arrows only when tabs overflow. Verified with the web typecheck, focused lint and format checks, the existing RightPanelTabs tests, and real-app wheel and arrow passes at desktop and responsive sheet sizes.

Before

t3-tab-scroll-before.webm

After

t3-tab-scroll-after.webm

Built by gpt-5.6-sol in the Codex harness.


Note

Low Risk
Localized UI interaction changes in RightPanelTabs with no auth, data, or API impact; main risk is wheel/drag-region edge cases on Electron.

Overview
Improves horizontal navigation when the right-panel tab strip overflows.

Wheel and trackpad: The tab list viewport now maps the dominant wheel delta (horizontal or vertical) into horizontal scroll, with preventDefault only when scrolling actually moves—so mouse wheels and awkward trackpad gestures can move tabs without relying on hidden scrollbars.

Overflow UI: A ResizeObserver plus scroll listeners track overflow and edge position; when tabs don't fit, left/right chevron buttons appear (disabled at the ends) and scroll by ~75% of the viewport width, respecting prefers-reduced-motion. Active-tab scrollIntoView runs only when overflow is present.

Electron title bar: The window drag region sits on the outer tab bar while the scrollable ScrollArea is marked no-drag, so users can scroll tabs without fighting window dragging on desktop.

Reviewed by Cursor Bugbot for commit 238a84d. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Add scroll buttons and wheel-scroll support to RightPanelTabs

  • Adds left and right scroll buttons to RightPanelTabs that appear when tabs overflow, disabling at the scroll boundaries.
  • Adds a non-passive wheel listener to convert wheel input into horizontal tab scrolling, preserving pinch zoom and native page scrolling when no tab scroll occurs.
  • Moves the Electron drag-region from the ScrollArea to the surrounding tab bar, marking the viewport and buttons as no-drag.
  • Risk: The non-passive wheel listener calls preventDefault on the tab viewport in RightPanelTabs.tsx, which could block page scrolling if the container's overflow state changes.

Macroscope summarized 238a84d.

@github-actionsgithub-actionsBot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:L 100-499 changed lines (additions + deletions). labels Sep 3, 2026

@cursorcursorBot 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.

Cursor Bugbot has reviewed your changes using default effort and found 2 potential issues.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit b586983. Configure here.

Comment threadapps/web/src/components/RightPanelTabs.tsx
Comment threadapps/web/src/components/RightPanelTabs.tsx
@macroscopeapp

macroscopeappBot commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved at 238a84d

Macroscope's review found this PR approvable — This is a localized right-panel UX adjustment that adds overflow-aware tab scrolling and controls without changing application data, defaults, or broader workflows. The runtime impact is confined to tab navigation and Electron title-bar hit-testing.

You can add or adjust custom eligibility rules. Learn more.

@maria-rcks
maria-rcks merged commit 46e8b1a into pingdotgg:mainSep 3, 2026
26 checks passed
github-actionsBot added a commit to omarcresp/t3code-flake that referenced this pull request Sep 4, 2026
## What's Changed
* fix(web): make right panel tabs easier to scroll by @maria-rcks in pingdotgg/t3code#9461
* fix(web): render transparent previews on white by @UtkarshUsername in pingdotgg/t3code#9463
* fix(mobile): show loading and syncing in the working pill by @juliusmarminge in pingdotgg/t3code#9466
* fix(server): keep a/ and b/ prefixes in rendered git patches by @Mnigos in pingdotgg/t3code#9438
* fix(server): full-access OpenCode threads no longer ask for approvals by @shivamhwp in pingdotgg/t3code#9282
* fix(web): reuse pull request list data while loading by @maria-rcks in pingdotgg/t3code#9467
* feat(web): let users turn off composer collapse on blur and scroll by @juliusmarminge in pingdotgg/t3code#9469
## New Contributors
* @Mnigos made their first contribution in pingdotgg/t3code#9438
**Full Changelog**: pingdotgg/t3code@v0.0.39-nightly.20260903.1272...v0.0.39-nightly.20260903.1273
Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.39-nightly.20260903.1273
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:L100-499 changed lines (additions + deletions).vouch:trustedPR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@maria-rcks
, '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(web): make right panel tabs easier to scroll - #9461

Merged
maria-rcks merged 2 commits into
pingdotgg:mainfrom
maria-rcks:t3code/improve-right-panel-tab-scrolling
Sep 3, 2026
Merged

fix(web): make right panel tabs easier to scroll#9461
maria-rcks merged 2 commits into
pingdotgg:mainfrom
maria-rcks:t3code/improve-right-panel-tab-scrolling

Conversation

@maria-rcks

@maria-rcksmaria-rcks commented Sep 3, 2026

Copy link
Copy Markdown
Collaborator

Horizontal overflow in the right-panel tabs was difficult to navigate with a Mac trackpad and inaccessible to ordinary mouse wheels. The strip now consumes either wheel axis consistently, keeps the Electron drag region away from the scrolling surface, and shows edge-aware scroll arrows only when tabs overflow. Verified with the web typecheck, focused lint and format checks, the existing RightPanelTabs tests, and real-app wheel and arrow passes at desktop and responsive sheet sizes.

Before

t3-tab-scroll-before.webm

After

t3-tab-scroll-after.webm

Built by gpt-5.6-sol in the Codex harness.


Note

Low Risk
Localized UI interaction changes in RightPanelTabs with no auth, data, or API impact; main risk is wheel/drag-region edge cases on Electron.

Overview
Improves horizontal navigation when the right-panel tab strip overflows.

Wheel and trackpad: The tab list viewport now maps the dominant wheel delta (horizontal or vertical) into horizontal scroll, with preventDefault only when scrolling actually moves—so mouse wheels and awkward trackpad gestures can move tabs without relying on hidden scrollbars.

Overflow UI: A ResizeObserver plus scroll listeners track overflow and edge position; when tabs don't fit, left/right chevron buttons appear (disabled at the ends) and scroll by ~75% of the viewport width, respecting prefers-reduced-motion. Active-tab scrollIntoView runs only when overflow is present.

Electron title bar: The window drag region sits on the outer tab bar while the scrollable ScrollArea is marked no-drag, so users can scroll tabs without fighting window dragging on desktop.

Reviewed by Cursor Bugbot for commit 238a84d. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Add scroll buttons and wheel-scroll support to RightPanelTabs

  • Adds left and right scroll buttons to RightPanelTabs that appear when tabs overflow, disabling at the scroll boundaries.
  • Adds a non-passive wheel listener to convert wheel input into horizontal tab scrolling, preserving pinch zoom and native page scrolling when no tab scroll occurs.
  • Moves the Electron drag-region from the ScrollArea to the surrounding tab bar, marking the viewport and buttons as no-drag.
  • Risk: The non-passive wheel listener calls preventDefault on the tab viewport in RightPanelTabs.tsx, which could block page scrolling if the container's overflow state changes.

Macroscope summarized 238a84d.

@github-actionsgithub-actionsBot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:L 100-499 changed lines (additions + deletions). labels Sep 3, 2026

@cursorcursorBot 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.

Cursor Bugbot has reviewed your changes using default effort and found 2 potential issues.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit b586983. Configure here.

Comment threadapps/web/src/components/RightPanelTabs.tsx
Comment threadapps/web/src/components/RightPanelTabs.tsx
@macroscopeapp

macroscopeappBot commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved at 238a84d

Macroscope's review found this PR approvable — This is a localized right-panel UX adjustment that adds overflow-aware tab scrolling and controls without changing application data, defaults, or broader workflows. The runtime impact is confined to tab navigation and Electron title-bar hit-testing.

You can add or adjust custom eligibility rules. Learn more.

@maria-rcks
maria-rcks merged commit 46e8b1a into pingdotgg:mainSep 3, 2026
26 checks passed
github-actionsBot added a commit to omarcresp/t3code-flake that referenced this pull request Sep 4, 2026
## What's Changed
* fix(web): make right panel tabs easier to scroll by @maria-rcks in pingdotgg/t3code#9461
* fix(web): render transparent previews on white by @UtkarshUsername in pingdotgg/t3code#9463
* fix(mobile): show loading and syncing in the working pill by @juliusmarminge in pingdotgg/t3code#9466
* fix(server): keep a/ and b/ prefixes in rendered git patches by @Mnigos in pingdotgg/t3code#9438
* fix(server): full-access OpenCode threads no longer ask for approvals by @shivamhwp in pingdotgg/t3code#9282
* fix(web): reuse pull request list data while loading by @maria-rcks in pingdotgg/t3code#9467
* feat(web): let users turn off composer collapse on blur and scroll by @juliusmarminge in pingdotgg/t3code#9469
## New Contributors
* @Mnigos made their first contribution in pingdotgg/t3code#9438
**Full Changelog**: pingdotgg/t3code@v0.0.39-nightly.20260903.1272...v0.0.39-nightly.20260903.1273
Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.39-nightly.20260903.1273
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:L100-499 changed lines (additions + deletions).vouch:trustedPR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@maria-rcks
, '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(web): make right panel tabs easier to scroll - #9461

Merged
maria-rcks merged 2 commits into
pingdotgg:mainfrom
maria-rcks:t3code/improve-right-panel-tab-scrolling
Sep 3, 2026
Merged

fix(web): make right panel tabs easier to scroll#9461
maria-rcks merged 2 commits into
pingdotgg:mainfrom
maria-rcks:t3code/improve-right-panel-tab-scrolling

Conversation

@maria-rcks

@maria-rcksmaria-rcks commented Sep 3, 2026

Copy link
Copy Markdown
Collaborator

Horizontal overflow in the right-panel tabs was difficult to navigate with a Mac trackpad and inaccessible to ordinary mouse wheels. The strip now consumes either wheel axis consistently, keeps the Electron drag region away from the scrolling surface, and shows edge-aware scroll arrows only when tabs overflow. Verified with the web typecheck, focused lint and format checks, the existing RightPanelTabs tests, and real-app wheel and arrow passes at desktop and responsive sheet sizes.

Before

t3-tab-scroll-before.webm

After

t3-tab-scroll-after.webm

Built by gpt-5.6-sol in the Codex harness.


Note

Low Risk
Localized UI interaction changes in RightPanelTabs with no auth, data, or API impact; main risk is wheel/drag-region edge cases on Electron.

Overview
Improves horizontal navigation when the right-panel tab strip overflows.

Wheel and trackpad: The tab list viewport now maps the dominant wheel delta (horizontal or vertical) into horizontal scroll, with preventDefault only when scrolling actually moves—so mouse wheels and awkward trackpad gestures can move tabs without relying on hidden scrollbars.

Overflow UI: A ResizeObserver plus scroll listeners track overflow and edge position; when tabs don't fit, left/right chevron buttons appear (disabled at the ends) and scroll by ~75% of the viewport width, respecting prefers-reduced-motion. Active-tab scrollIntoView runs only when overflow is present.

Electron title bar: The window drag region sits on the outer tab bar while the scrollable ScrollArea is marked no-drag, so users can scroll tabs without fighting window dragging on desktop.

Reviewed by Cursor Bugbot for commit 238a84d. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Add scroll buttons and wheel-scroll support to RightPanelTabs

  • Adds left and right scroll buttons to RightPanelTabs that appear when tabs overflow, disabling at the scroll boundaries.
  • Adds a non-passive wheel listener to convert wheel input into horizontal tab scrolling, preserving pinch zoom and native page scrolling when no tab scroll occurs.
  • Moves the Electron drag-region from the ScrollArea to the surrounding tab bar, marking the viewport and buttons as no-drag.
  • Risk: The non-passive wheel listener calls preventDefault on the tab viewport in RightPanelTabs.tsx, which could block page scrolling if the container's overflow state changes.

Macroscope summarized 238a84d.

@github-actionsgithub-actionsBot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:L 100-499 changed lines (additions + deletions). labels Sep 3, 2026

@cursorcursorBot 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.

Cursor Bugbot has reviewed your changes using default effort and found 2 potential issues.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit b586983. Configure here.

Comment threadapps/web/src/components/RightPanelTabs.tsx
Comment threadapps/web/src/components/RightPanelTabs.tsx
@macroscopeapp

macroscopeappBot commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved at 238a84d

Macroscope's review found this PR approvable — This is a localized right-panel UX adjustment that adds overflow-aware tab scrolling and controls without changing application data, defaults, or broader workflows. The runtime impact is confined to tab navigation and Electron title-bar hit-testing.

You can add or adjust custom eligibility rules. Learn more.

@maria-rcks
maria-rcks merged commit 46e8b1a into pingdotgg:mainSep 3, 2026
26 checks passed
github-actionsBot added a commit to omarcresp/t3code-flake that referenced this pull request Sep 4, 2026
## What's Changed
* fix(web): make right panel tabs easier to scroll by @maria-rcks in pingdotgg/t3code#9461
* fix(web): render transparent previews on white by @UtkarshUsername in pingdotgg/t3code#9463
* fix(mobile): show loading and syncing in the working pill by @juliusmarminge in pingdotgg/t3code#9466
* fix(server): keep a/ and b/ prefixes in rendered git patches by @Mnigos in pingdotgg/t3code#9438
* fix(server): full-access OpenCode threads no longer ask for approvals by @shivamhwp in pingdotgg/t3code#9282
* fix(web): reuse pull request list data while loading by @maria-rcks in pingdotgg/t3code#9467
* feat(web): let users turn off composer collapse on blur and scroll by @juliusmarminge in pingdotgg/t3code#9469
## New Contributors
* @Mnigos made their first contribution in pingdotgg/t3code#9438
**Full Changelog**: pingdotgg/t3code@v0.0.39-nightly.20260903.1272...v0.0.39-nightly.20260903.1273
Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.39-nightly.20260903.1273
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:L100-499 changed lines (additions + deletions).vouch:trustedPR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@maria-rcks
, '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(web): make right panel tabs easier to scroll - #9461

Merged
maria-rcks merged 2 commits into
pingdotgg:mainfrom
maria-rcks:t3code/improve-right-panel-tab-scrolling
Sep 3, 2026
Merged

fix(web): make right panel tabs easier to scroll#9461
maria-rcks merged 2 commits into
pingdotgg:mainfrom
maria-rcks:t3code/improve-right-panel-tab-scrolling

Conversation

@maria-rcks

@maria-rcksmaria-rcks commented Sep 3, 2026

Copy link
Copy Markdown
Collaborator

Horizontal overflow in the right-panel tabs was difficult to navigate with a Mac trackpad and inaccessible to ordinary mouse wheels. The strip now consumes either wheel axis consistently, keeps the Electron drag region away from the scrolling surface, and shows edge-aware scroll arrows only when tabs overflow. Verified with the web typecheck, focused lint and format checks, the existing RightPanelTabs tests, and real-app wheel and arrow passes at desktop and responsive sheet sizes.

Before

t3-tab-scroll-before.webm

After

t3-tab-scroll-after.webm

Built by gpt-5.6-sol in the Codex harness.


Note

Low Risk
Localized UI interaction changes in RightPanelTabs with no auth, data, or API impact; main risk is wheel/drag-region edge cases on Electron.

Overview
Improves horizontal navigation when the right-panel tab strip overflows.

Wheel and trackpad: The tab list viewport now maps the dominant wheel delta (horizontal or vertical) into horizontal scroll, with preventDefault only when scrolling actually moves—so mouse wheels and awkward trackpad gestures can move tabs without relying on hidden scrollbars.

Overflow UI: A ResizeObserver plus scroll listeners track overflow and edge position; when tabs don't fit, left/right chevron buttons appear (disabled at the ends) and scroll by ~75% of the viewport width, respecting prefers-reduced-motion. Active-tab scrollIntoView runs only when overflow is present.

Electron title bar: The window drag region sits on the outer tab bar while the scrollable ScrollArea is marked no-drag, so users can scroll tabs without fighting window dragging on desktop.

Reviewed by Cursor Bugbot for commit 238a84d. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Add scroll buttons and wheel-scroll support to RightPanelTabs

  • Adds left and right scroll buttons to RightPanelTabs that appear when tabs overflow, disabling at the scroll boundaries.
  • Adds a non-passive wheel listener to convert wheel input into horizontal tab scrolling, preserving pinch zoom and native page scrolling when no tab scroll occurs.
  • Moves the Electron drag-region from the ScrollArea to the surrounding tab bar, marking the viewport and buttons as no-drag.
  • Risk: The non-passive wheel listener calls preventDefault on the tab viewport in RightPanelTabs.tsx, which could block page scrolling if the container's overflow state changes.

Macroscope summarized 238a84d.

@github-actionsgithub-actionsBot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:L 100-499 changed lines (additions + deletions). labels Sep 3, 2026

@cursorcursorBot 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.

Cursor Bugbot has reviewed your changes using default effort and found 2 potential issues.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit b586983. Configure here.

Comment threadapps/web/src/components/RightPanelTabs.tsx
Comment threadapps/web/src/components/RightPanelTabs.tsx
@macroscopeapp

macroscopeappBot commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved at 238a84d

Macroscope's review found this PR approvable — This is a localized right-panel UX adjustment that adds overflow-aware tab scrolling and controls without changing application data, defaults, or broader workflows. The runtime impact is confined to tab navigation and Electron title-bar hit-testing.

You can add or adjust custom eligibility rules. Learn more.

@maria-rcks
maria-rcks merged commit 46e8b1a into pingdotgg:mainSep 3, 2026
26 checks passed
github-actionsBot added a commit to omarcresp/t3code-flake that referenced this pull request Sep 4, 2026
## What's Changed
* fix(web): make right panel tabs easier to scroll by @maria-rcks in pingdotgg/t3code#9461
* fix(web): render transparent previews on white by @UtkarshUsername in pingdotgg/t3code#9463
* fix(mobile): show loading and syncing in the working pill by @juliusmarminge in pingdotgg/t3code#9466
* fix(server): keep a/ and b/ prefixes in rendered git patches by @Mnigos in pingdotgg/t3code#9438
* fix(server): full-access OpenCode threads no longer ask for approvals by @shivamhwp in pingdotgg/t3code#9282
* fix(web): reuse pull request list data while loading by @maria-rcks in pingdotgg/t3code#9467
* feat(web): let users turn off composer collapse on blur and scroll by @juliusmarminge in pingdotgg/t3code#9469
## New Contributors
* @Mnigos made their first contribution in pingdotgg/t3code#9438
**Full Changelog**: pingdotgg/t3code@v0.0.39-nightly.20260903.1272...v0.0.39-nightly.20260903.1273
Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.39-nightly.20260903.1273
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:L100-499 changed lines (additions + deletions).vouch:trustedPR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@maria-rcks
, '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(web): make right panel tabs easier to scroll - #9461

Merged
maria-rcks merged 2 commits into
pingdotgg:mainfrom
maria-rcks:t3code/improve-right-panel-tab-scrolling
Sep 3, 2026
Merged

fix(web): make right panel tabs easier to scroll#9461
maria-rcks merged 2 commits into
pingdotgg:mainfrom
maria-rcks:t3code/improve-right-panel-tab-scrolling

Conversation

@maria-rcks

@maria-rcksmaria-rcks commented Sep 3, 2026

Copy link
Copy Markdown
Collaborator

Horizontal overflow in the right-panel tabs was difficult to navigate with a Mac trackpad and inaccessible to ordinary mouse wheels. The strip now consumes either wheel axis consistently, keeps the Electron drag region away from the scrolling surface, and shows edge-aware scroll arrows only when tabs overflow. Verified with the web typecheck, focused lint and format checks, the existing RightPanelTabs tests, and real-app wheel and arrow passes at desktop and responsive sheet sizes.

Before

t3-tab-scroll-before.webm

After

t3-tab-scroll-after.webm

Built by gpt-5.6-sol in the Codex harness.


Note

Low Risk
Localized UI interaction changes in RightPanelTabs with no auth, data, or API impact; main risk is wheel/drag-region edge cases on Electron.

Overview
Improves horizontal navigation when the right-panel tab strip overflows.

Wheel and trackpad: The tab list viewport now maps the dominant wheel delta (horizontal or vertical) into horizontal scroll, with preventDefault only when scrolling actually moves—so mouse wheels and awkward trackpad gestures can move tabs without relying on hidden scrollbars.

Overflow UI: A ResizeObserver plus scroll listeners track overflow and edge position; when tabs don't fit, left/right chevron buttons appear (disabled at the ends) and scroll by ~75% of the viewport width, respecting prefers-reduced-motion. Active-tab scrollIntoView runs only when overflow is present.

Electron title bar: The window drag region sits on the outer tab bar while the scrollable ScrollArea is marked no-drag, so users can scroll tabs without fighting window dragging on desktop.

Reviewed by Cursor Bugbot for commit 238a84d. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Add scroll buttons and wheel-scroll support to RightPanelTabs

  • Adds left and right scroll buttons to RightPanelTabs that appear when tabs overflow, disabling at the scroll boundaries.
  • Adds a non-passive wheel listener to convert wheel input into horizontal tab scrolling, preserving pinch zoom and native page scrolling when no tab scroll occurs.
  • Moves the Electron drag-region from the ScrollArea to the surrounding tab bar, marking the viewport and buttons as no-drag.
  • Risk: The non-passive wheel listener calls preventDefault on the tab viewport in RightPanelTabs.tsx, which could block page scrolling if the container's overflow state changes.

Macroscope summarized 238a84d.

@github-actionsgithub-actionsBot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:L 100-499 changed lines (additions + deletions). labels Sep 3, 2026

@cursorcursorBot 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.

Cursor Bugbot has reviewed your changes using default effort and found 2 potential issues.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit b586983. Configure here.

Comment threadapps/web/src/components/RightPanelTabs.tsx
Comment threadapps/web/src/components/RightPanelTabs.tsx
@macroscopeapp

macroscopeappBot commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved at 238a84d

Macroscope's review found this PR approvable — This is a localized right-panel UX adjustment that adds overflow-aware tab scrolling and controls without changing application data, defaults, or broader workflows. The runtime impact is confined to tab navigation and Electron title-bar hit-testing.

You can add or adjust custom eligibility rules. Learn more.

@maria-rcks
maria-rcks merged commit 46e8b1a into pingdotgg:mainSep 3, 2026
26 checks passed
github-actionsBot added a commit to omarcresp/t3code-flake that referenced this pull request Sep 4, 2026
## What's Changed
* fix(web): make right panel tabs easier to scroll by @maria-rcks in pingdotgg/t3code#9461
* fix(web): render transparent previews on white by @UtkarshUsername in pingdotgg/t3code#9463
* fix(mobile): show loading and syncing in the working pill by @juliusmarminge in pingdotgg/t3code#9466
* fix(server): keep a/ and b/ prefixes in rendered git patches by @Mnigos in pingdotgg/t3code#9438
* fix(server): full-access OpenCode threads no longer ask for approvals by @shivamhwp in pingdotgg/t3code#9282
* fix(web): reuse pull request list data while loading by @maria-rcks in pingdotgg/t3code#9467
* feat(web): let users turn off composer collapse on blur and scroll by @juliusmarminge in pingdotgg/t3code#9469
## New Contributors
* @Mnigos made their first contribution in pingdotgg/t3code#9438
**Full Changelog**: pingdotgg/t3code@v0.0.39-nightly.20260903.1272...v0.0.39-nightly.20260903.1273
Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.39-nightly.20260903.1273
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:L100-499 changed lines (additions + deletions).vouch:trustedPR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@maria-rcks
, '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(web): make right panel tabs easier to scroll - #9461

Merged
maria-rcks merged 2 commits into
pingdotgg:mainfrom
maria-rcks:t3code/improve-right-panel-tab-scrolling
Sep 3, 2026
Merged

fix(web): make right panel tabs easier to scroll#9461
maria-rcks merged 2 commits into
pingdotgg:mainfrom
maria-rcks:t3code/improve-right-panel-tab-scrolling

Conversation

@maria-rcks

@maria-rcksmaria-rcks commented Sep 3, 2026

Copy link
Copy Markdown
Collaborator

Horizontal overflow in the right-panel tabs was difficult to navigate with a Mac trackpad and inaccessible to ordinary mouse wheels. The strip now consumes either wheel axis consistently, keeps the Electron drag region away from the scrolling surface, and shows edge-aware scroll arrows only when tabs overflow. Verified with the web typecheck, focused lint and format checks, the existing RightPanelTabs tests, and real-app wheel and arrow passes at desktop and responsive sheet sizes.

Before

t3-tab-scroll-before.webm

After

t3-tab-scroll-after.webm

Built by gpt-5.6-sol in the Codex harness.


Note

Low Risk
Localized UI interaction changes in RightPanelTabs with no auth, data, or API impact; main risk is wheel/drag-region edge cases on Electron.

Overview
Improves horizontal navigation when the right-panel tab strip overflows.

Wheel and trackpad: The tab list viewport now maps the dominant wheel delta (horizontal or vertical) into horizontal scroll, with preventDefault only when scrolling actually moves—so mouse wheels and awkward trackpad gestures can move tabs without relying on hidden scrollbars.

Overflow UI: A ResizeObserver plus scroll listeners track overflow and edge position; when tabs don't fit, left/right chevron buttons appear (disabled at the ends) and scroll by ~75% of the viewport width, respecting prefers-reduced-motion. Active-tab scrollIntoView runs only when overflow is present.

Electron title bar: The window drag region sits on the outer tab bar while the scrollable ScrollArea is marked no-drag, so users can scroll tabs without fighting window dragging on desktop.

Reviewed by Cursor Bugbot for commit 238a84d. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Add scroll buttons and wheel-scroll support to RightPanelTabs

  • Adds left and right scroll buttons to RightPanelTabs that appear when tabs overflow, disabling at the scroll boundaries.
  • Adds a non-passive wheel listener to convert wheel input into horizontal tab scrolling, preserving pinch zoom and native page scrolling when no tab scroll occurs.
  • Moves the Electron drag-region from the ScrollArea to the surrounding tab bar, marking the viewport and buttons as no-drag.
  • Risk: The non-passive wheel listener calls preventDefault on the tab viewport in RightPanelTabs.tsx, which could block page scrolling if the container's overflow state changes.

Macroscope summarized 238a84d.

@github-actionsgithub-actionsBot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:L 100-499 changed lines (additions + deletions). labels Sep 3, 2026

@cursorcursorBot 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.

Cursor Bugbot has reviewed your changes using default effort and found 2 potential issues.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit b586983. Configure here.

Comment threadapps/web/src/components/RightPanelTabs.tsx
Comment threadapps/web/src/components/RightPanelTabs.tsx
@macroscopeapp

macroscopeappBot commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved at 238a84d

Macroscope's review found this PR approvable — This is a localized right-panel UX adjustment that adds overflow-aware tab scrolling and controls without changing application data, defaults, or broader workflows. The runtime impact is confined to tab navigation and Electron title-bar hit-testing.

You can add or adjust custom eligibility rules. Learn more.

@maria-rcks
maria-rcks merged commit 46e8b1a into pingdotgg:mainSep 3, 2026
26 checks passed
github-actionsBot added a commit to omarcresp/t3code-flake that referenced this pull request Sep 4, 2026
## What's Changed
* fix(web): make right panel tabs easier to scroll by @maria-rcks in pingdotgg/t3code#9461
* fix(web): render transparent previews on white by @UtkarshUsername in pingdotgg/t3code#9463
* fix(mobile): show loading and syncing in the working pill by @juliusmarminge in pingdotgg/t3code#9466
* fix(server): keep a/ and b/ prefixes in rendered git patches by @Mnigos in pingdotgg/t3code#9438
* fix(server): full-access OpenCode threads no longer ask for approvals by @shivamhwp in pingdotgg/t3code#9282
* fix(web): reuse pull request list data while loading by @maria-rcks in pingdotgg/t3code#9467
* feat(web): let users turn off composer collapse on blur and scroll by @juliusmarminge in pingdotgg/t3code#9469
## New Contributors
* @Mnigos made their first contribution in pingdotgg/t3code#9438
**Full Changelog**: pingdotgg/t3code@v0.0.39-nightly.20260903.1272...v0.0.39-nightly.20260903.1273
Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.39-nightly.20260903.1273
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:L100-499 changed lines (additions + deletions).vouch:trustedPR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@maria-rcks