Skip to content

fix(desktop): refine sidebar motion - #6690

Open
kursmark-sq wants to merge 2 commits into
block:mainfrom
kursmark-sq:agent/nav-motion
Open

fix(desktop): refine sidebar motion#6690
kursmark-sq wants to merge 2 commits into
block:mainfrom
kursmark-sq:agent/nav-motion

Conversation

@kursmark-sq

@kursmark-sq kursmark-sq commented Aug 24, 2026

Copy link
Copy Markdown
Contributor

Summary

  • use Buzz's shared 240ms standard duration and easing tokens for the sidebar width, chrome, and content fade
  • keep the content fade while removing the scale and translation that moved nav links during collapse
  • update browser coverage for spatial stability, reduced motion, timing, easing, and community-rail behavior across themes

Why

The previous top-origin scale pulled nav links upward during collapse, creating unnecessary visual noise. The simultaneous translation added more spatial motion while the sidebar chrome was already sliding away. Keeping the fade preserves the anti-ghosting behavior without moving or shrinking the navigation content.

Before / after

Left: before. Right: after.

Normal speed

Normal-speed sidebar motion comparison

4× slower

Slowed sidebar motion comparison

Test plan

  • pre-commit checks: sadscan, desktop fix, attribution, signoff, Git LFS
  • pre-push checks: desktop tests, TypeScript, desktop checks, file size, branch scope, org policy, Git LFS
  • desktop E2E production bundle
  • 5 focused Playwright sidebar motion and community-rail regressions
  • full repository gate through formatting, TypeScript, desktop tests/build, mobile analysis, and 2,755 Tauri tests

The full local repository gate reaches the existing buzz-terminal PTY fixture default_prog_child_observes_the_login_argv0, which times out waiting for $0 in this environment. This is unrelated to the desktop CSS/test-only change and is the same local fixture timeout documented on #6314.

Co-authored-by: Matt Kursmark <kursmark@squareup.com>
Signed-off-by: Matt Kursmark <kursmark@squareup.com>
Co-authored-by: Codex <noreply@openai.com>
@kursmark-sq
kursmark-sq marked this pull request as ready for review August 24, 2026 17:18
@kursmark-sq
kursmark-sq requested a review from a team as a code owner August 24, 2026 17:18

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

the e2e now expects a single 240ms duration, but two siblings still transition width/left. if --motion-duration-standard isn't 240 this test is the only thing pinning it — please assert the css var or keep the durations you actually animate.

Co-authored-by: Matt Kursmark <kursmark@squareup.com>
Signed-off-by: Matt Kursmark <kursmark@squareup.com>
Co-authored-by: Codex <noreply@openai.com>
@kursmark-sq

Copy link
Copy Markdown
Contributor Author

🤖 Updated by Fizz. The E2E now collects and pauses the complete coordinated transition: gap width, panel left/visibility, and content opacity. It also reads the computed --motion-duration-standard value and verifies every animation uses that token, so the midpoint hit-test is deterministic without pinning production behavior to a hard-coded 240ms. Production CSS is unchanged.

Addressed in 0770c49.

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.

2 participants