Skip to content

Slide the Bot sidebar out and in instead of cutting it - #805

Merged
Fei2411 merged 3 commits into
devfrom
fix/sidebar-smooth-collapse
Nov 1, 2026
Merged

Fei2411 merged 3 commits into
devfrom
fix/sidebar-smooth-collapse

Conversation

@Fei2411

@Fei2411 Fei2411 commented Nov 1, 2026 •

Copy link
Copy Markdown
Owner

Collapsing or expanding the Bot sidebar (button or shortcut) snapped: the column unmounted in one frame and the conversation's left margin had no transition.

  • The column stays mounted for its slide out and slides in when shown.
  • The conversation's left margin glides on the same spring.
  • Reduced motion keeps the instant change.

Verified: unit tests, lint, leak scan. Not yet checked by eye in the desktop app.


Devin Review

Hiding the column unmounted it in one frame and the conversation's left margin had no transition, so both jumped. The column now stays mounted for its slide out, slides in when shown, and the conversation's left margin glides on the same spring. Reduced motion keeps the instant change.
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Nov 1, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-11-01T14:51:12.360795Z d09249c PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: d09249cbba

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

[class*="_centerCol"]{transition:margin-right ${SPRING_SHAPE.duration}ms ${SPRING_SHAPE.easing}}
/* The conversation's margins glide with the Bot panel's slide and with our left
column's slide in and out. */
[class*="_centerCol"]{transition:margin-right ${SPRING_SHAPE.duration}ms ${SPRING_SHAPE.easing},margin-left ${SPRING_SHAPE.duration}ms ${SPRING_SHAPE.easing}}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Disable the conversation slide when reduced motion is requested

When prefers-reduced-motion: reduce is enabled, toggling the sidebar still animates the conversation's left margin through the full spring duration. The new reduced-motion override disables only the sidebar's animation and transform transition, while TeamSidebar updates the conversation margin through chatRoom.setLeft() without suppressing this transition. Consequently, the sidebar disappears immediately but the conversation still slides across the screen. Add a reduced-motion override for the newly introduced margin transition so the entire toggle remains instantaneous.

Useful? React with 👍 / 👎.

@devin-ai-integration devin-ai-integration Bot 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.

Devin Review found 2 potential issues.

1 flag not posted on this PR by your GitHub settings — view it in Devin Review. (Configure)

Devin Review

[class*="_centerCol"]{transition:margin-right ${SPRING_SHAPE.duration}ms ${SPRING_SHAPE.easing}}
/* The conversation's margins glide with the Bot panel's slide and with our left
column's slide in and out. */
[class*="_centerCol"]{transition:margin-right ${SPRING_SHAPE.duration}ms ${SPRING_SHAPE.easing},margin-left ${SPRING_SHAPE.duration}ms ${SPRING_SHAPE.easing}}

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.

🟡 Conversation still slides with reduced motion

With reduced motion enabled, margin-left still animates when the sidebar toggles. The sidebar moves instantly, but the conversation keeps sliding.

Learn more

The sidebar's reduced-motion rule disables its own transform animation and transition, but this new conversation transition remains active. A sidebar toggle changes the margin through chatRoom.setLeft, so the conversation continues moving after the sidebar has appeared or disappeared.

Example: With the system's reduced-motion preference on, hide an open 280px sidebar. The sidebar vanishes immediately while the conversation slides into its place over the spring duration.

Recommended fix: Disable the new margin-left transition under prefers-reduced-motion: reduce, while retaining any existing right-margin behavior as appropriate. Verify both opening and closing from the open and rail modes.

Devin Review


Was this helpful? React with 👍 or 👎 to provide feedback.

[class*="_centerCol"]{transition:margin-right ${SPRING_SHAPE.duration}ms ${SPRING_SHAPE.easing}}
/* The conversation's margins glide with the Bot panel's slide and with our left
column's slide in and out. */
[class*="_centerCol"]{transition:margin-right ${SPRING_SHAPE.duration}ms ${SPRING_SHAPE.easing},margin-left ${SPRING_SHAPE.duration}ms ${SPRING_SHAPE.easing}}

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.

🟡 Sidebar slide repeatedly reflows conversation

Toggling the sidebar makes margin-left animate across the entire conversation. Each frame reflows its content, contrary to the UI standard's single-reflow requirement.

Learn more

The center column contains the conversation and its composer. Animating its margin changes its layout width on every frame. The repository's UI standard, section 9.5, explicitly forbids animating margin for large content and requires giving expanding surfaces room immediately, then reclaiming space after shrinking surfaces finish.

Example: Hide an open sidebar beside a long conversation. Throughout the spring, the center column grows frame by frame and relays out the conversation rather than moving only a composited surface.

Recommended fix: Coordinate chatRoom.setLeft with sidebar entry and exit so the conversation changes width only once: allocate its final space before opening and reclaim space after closing. Animate only compositor-friendly transforms of the sidebar or a separate visual layer.

Devin Review


Was this helpful? React with 👍 or 👎 to provide feedback.

@Fei2411
Fei2411 merged commit e6e9610 into dev Nov 1, 2026
14 checks passed
@Fei2411
Fei2411 deleted the fix/sidebar-smooth-collapse branch November 1, 2026 16:19
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