Skip to content

Add open/close motion to quick pick#326032

Open
hawkticehurst wants to merge 3 commits into
mainfrom
agents/add-open-close-motion-command-palette
Open

Add open/close motion to quick pick#326032
hawkticehurst wants to merge 3 commits into
mainfrom
agents/add-open-close-motion-command-palette

Conversation

@hawkticehurst

Copy link
Copy Markdown
Member

Related to #325020

Adds open/close motion to quick pick.

Screen.Recording.2026-07-15.at.3.06.24.PM.mov

@hawkticehurst hawkticehurst self-assigned this Jul 15, 2026
Copilot AI review requested due to automatic review settings July 15, 2026 19:10
@vs-code-engineering

Copy link
Copy Markdown
Contributor

📬 CODENOTIFY

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

@TylerLeonhardt

Matched files:

  • src/vs/platform/quickinput/browser/media/quickInput.css
  • src/vs/platform/quickinput/browser/quickInputController.ts
  • src/vs/platform/quickinput/test/browser/quickinput.test.ts

roblourens
roblourens previously approved these changes Jul 15, 2026

Copilot AI 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.

Pull request overview

Adds subtle open/close motion to the Quick Input (Quick Pick) widget when Modern UI (.style-override) is enabled and motion is enabled (.monaco-enable-motion). This aligns Quick Input behavior with other ephemeral surfaces that animate in/out.

Changes:

  • Add CSS open/close animations for .quick-input-widget under .style-override.monaco-enable-motion.
  • Update QuickInputController.hide() to apply a “closing” class and defer display: none until the animation completes.
  • Add a browser test validating that motion is gated on Modern UI + motion enabled and that visibility state updates as expected.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 2 comments.

File Description
src/vs/platform/quickinput/test/browser/quickinput.test.ts Adds coverage for close motion gating and timing.
src/vs/platform/quickinput/browser/quickInputController.ts Implements close animation lifecycle and adjusts isVisible() semantics during close.
src/vs/platform/quickinput/browser/media/quickInput.css Defines keyframes + selectors for open/close motion on the widget.

Comment thread src/vs/platform/quickinput/browser/quickInputController.ts
Comment thread src/vs/platform/quickinput/browser/quickInputController.ts
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@lppedd

lppedd commented Jul 15, 2026

Copy link
Copy Markdown

Out of curiosity, how does it look when the palette appears at the top (default positioning)?
Right now background elements disappear when the palette gets brought up.

palette

pwang347
pwang347 previously approved these changes Jul 15, 2026
@hawkticehurst

Copy link
Copy Markdown
Member Author

Out of curiosity, how does it look when the palette appears at the top (default positioning)? Right now background elements disappear when the palette gets brought up.

Screen.Recording.2026-07-15.at.5.03.46.PM.mov

@lppedd

lppedd commented Jul 15, 2026

Copy link
Copy Markdown

@hawkticehurst thank you! Looks nice in the case the palette is equal or wider to the background elements. I was just "worried" that those background elements disappeared before the palette spawned, causing a strange visual effect.

Comment thread src/vs/platform/quickinput/browser/quickInputController.ts Outdated
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
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.

6 participants