Skip to content

fix(web): stabilize right panel transitions - #9554

Merged
maria-rcks merged 3 commits into
pingdotgg:mainfrom
maria-rcks:t3code/fix-panel-fullscreen-animation
Sep 4, 2026
Merged

fix(web): stabilize right panel transitions#9554
maria-rcks merged 3 commits into
pingdotgg:mainfrom
maria-rcks:t3code/fix-panel-fullscreen-animation

Conversation

@maria-rcks

@maria-rcks maria-rcks commented Sep 4, 2026

Copy link
Copy Markdown
Collaborator

The right panel animates from full width back to its stored width when panel animations are enabled, squeezing the chat column during restore. Its layout controls also switch DOM ownership on open, which makes them slide in with the panel.

This suppresses the width transition for resize and maximize state changes while preserving the configured open and close behavior. Inline layouts now keep one viewport-fixed control cluster mounted above the clipped chat column, so the controls remain stationary and clickable while the panel opens, closes, maximizes, and restores.

Before

Panel controls moving in from the right during the opening animation

After

Panel controls staying fixed while the right panel opens underneath them

Validation:

  • scoped lint passes with existing warnings
  • web typecheck passes
  • verified the exact open, close, maximize, and restore interactions at the maximum 400ms panel animation duration
  • sampled the opening transition at 0, 67, 133, 200, 267, 333, and 400ms; the control cluster remains at x=1175 throughout

Model: gpt-5.6-sol
Harness: T3 Code Codex


Note

Low Risk
UI-only layout and CSS transition behavior in the chat right panel; no auth, data, or API changes.

Overview
Fixes janky right-panel UX when animations are on: restoring from maximize no longer animates width back to the stored size (which squeezed the chat), and inline maximize/layout controls no longer ride in with the panel during open/close.

Layout controls stay in a viewport-fixed cluster above the workspace (only when not using the sheet layout), instead of being passed into RightPanelTabs as layoutControls. rightPanelControlsInPanel now also requires shouldUseRightPanelSheet, so inline desktop keeps one stationary control bar.

PreviewPanelShell tracks open/width/maximized and temporarily sets transitionDuration: 0ms when width or maximize changes while open stays the same, so resize and maximize toggles skip the width transition while normal open/close animations still run.

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

Note

Stabilize right panel transitions in PreviewPanelShell and ChatViewContent

  • Moves general panel layout controls outside the workspace header for non-sheet layouts and removes the separate inline right-panel control group in ChatView.tsx.
  • Replaces the ref-based transition effect in PreviewPanelShell.tsx with render-tracked layout state. Width or maximize changes while the panel is open set an inline zero-duration transition, cleared after two animation frames.
  • Behavioral Change: Maximized inline panels in PreviewPanelShell use full width, disable the max-width hook, and no longer render a resize handle.

Macroscope summarized 82aa576.

Loading
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:M 30-99 changed lines (additions + deletions). vouch:trusted PR 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