Repository navigation
fix(css): settings dropdowns open under prefers-reduced-motion (#8290) - #8328
Conversation
Before this change, the "scale(1)" transform in the 'prefers-reduced-motion' case caused the Settings popup to become the reference box for dropdown menus inside it, because any non-'none' transform at all causes the associated element to become the reference box for all "position: fixed" descendants. And since those dropdowns used fixed position, positioning themselves relative to the wrong reference box effectively pushed them off the screen -- clipped by the panel and thus, as far as the user can tell, never opening at all. This change makes the window be the reference box again, while still giving users who prefer reduced motion what they want, since the "transition: none" is unchanged. This fixes #8290 ("Dropdown lists under Settings popup don't expand due to CSS mis-interaction.")
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WnNeNQpAJ5TWNZka4yugCw
|
ⓘ Qodo reviews are paused because the subscription is no longer active. Ask your workspace admin to reactivate the subscription to resume reviews. Manage billing |
PR Summary by QodoFix settings dropdowns under reduced motion
AI Description
Diagram
High-Level Assessment
Files changed (2)
|
Code Review by Qodo🐞 Bugs (0) 📘 Rule violations (0) 📎 Requirement gaps (0)
Great, no issues found!Qodo reviewed your code and found no material issues that require reviewTip of the day💡 Did you know, you can tweak Display settings with a live preview to see your comment before it ships |
|
Verified locally on Chromium. With popup.css reverted to develop's |
|
@JohnMcLear Thank you so much! I felt mildly guilty about not having included the regression test; it was awfully sporting of you to just supply it yourself and not even look at me side-eyed (at least not in any way that the GitHub UI shows :-) ). 🙏 |
Fixes #8290. Supersedes #8291 and includes @kfogel's fix commit as-is (authorship kept), with a regression test added.
Under
prefers-reduced-motionthe popup kepttransform: scale(1). Any transform makes.popup-contentthe containing block for theposition:fixednice-select list, so the list was positioned relative to the popup and never appeared. The fix usestransform: none.Test: Playwright
emulateMedia({reducedMotion:'reduce'}). It opens the font and language dropdowns at the bottom of a scrolled settings popup and asserts that the list is visible and in the viewport. The existing dropdown test runs without reduced motion, which is why it never caught this.Thanks @kfogel for the diagnosis and fix.
🤖 Generated with Claude Code
https://claude.ai/code/session_012cFUmwE79DiLX4VsJqoTZV