Skip to content

Animated show/hide transitions for workbench panels and quick input#294261

Merged
eli-w-king merged 2 commits intoeli/workbench-motionfrom
copilot/sub-pr-294021
Feb 11, 2026
Merged

Animated show/hide transitions for workbench panels and quick input#294261
eli-w-king merged 2 commits intoeli/workbench-motionfrom
copilot/sub-pr-294021

Conversation

Copy link
Contributor

Copilot AI commented Feb 10, 2026

Adds animated visibility transitions for sidebar, panel, auxiliary bar, and quick input using CSS transitions and a new setViewVisibleAnimated API on SplitView/GridView/Grid.

Screen.Recording.2026-02-09.at.2.05.33.PM.mov

Motion infrastructure

  • New src/vs/base/browser/ui/motion/motion.ts module: duration constants, easing curves (Fluent 2), cubic-bezier evaluation, distance-proportional duration scaling, and isMotionReduced() check that integrates with existing monaco-reduce-motion class
  • SplitView.setViewVisibleAnimated(): animates between start/final sizes using requestAnimationFrame, with cancellation support via returned IDisposable
  • GridView.setChildVisibleAnimated() / Grid.setViewVisibleAnimated(): propagate animated visibility through the grid hierarchy, correctly handling the "all children hidden" edge case by deferring _onDidVisibilityChange(false) to onComplete

Workbench layout

  • layout.ts: setSideBarHidden, setPanelHidden, setAuxiliaryBarHidden use animated path with deferred CSS class / composite hiding in onComplete; cancellation-safe via immediate state application before animation starts

Quick input animations

  • Entrance: fade-in + translateY with transitionend listener filtered by e.target to ignore bubbling from descendants, plus safety timeout fallback
  • Exit: same target filtering, cancellable via _cancelExitAnimation for rapid show/hide cycles
  • Reduced-motion: all animations skip to instant path

💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.

- Filter transitionend events by e.target to ignore bubbling from
  descendant elements in both entrance and exit animations
- Add safety timeout fallback to entrance animation (matching exit pattern)
- Clear safety timeouts when animations complete or are cancelled
- Reorder variable declarations for better readability

Co-authored-by: eli-w-king <201316543+eli-w-king@users.noreply.github.com>
Copilot AI changed the title [WIP] Add side and bottom panel motion animations Animated show/hide transitions for workbench panels and quick input Feb 11, 2026
Copilot AI requested a review from eli-w-king February 11, 2026 00:05
@eli-w-king eli-w-king marked this pull request as ready for review February 11, 2026 00:17
@eli-w-king eli-w-king merged commit f6d820e into eli/workbench-motion Feb 11, 2026
5 of 6 checks passed
@eli-w-king eli-w-king deleted the copilot/sub-pr-294021 branch February 11, 2026 00:17
@vs-code-engineering
Copy link

📬 CODENOTIFY

The following users are being notified based on files changed in this PR:

@TylerLeonhardt

Matched files:

  • src/vs/platform/quickinput/browser/quickInputController.ts

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

Comments