patternfly / patternfly/patternfly-react
Bug - Popper - flash of incorrectly positioned popper on open
Nobody has claimed this yet.
- #12177 by @fallmo — closed without merging
- Dominant language
- TypeScript
- Stars
- 862
- Forks
- 392
- Avg merge
- 4d 8h
- Merged PRs (30d)
- 9
Description
Describe the problem
Popper elements (dropdowns, select, etc.) occasionally flash at the top-left of the screen before appearing in their correct position.
Explanation
When a popper opens, there's a race condition between:
- The popper element being rendered (initially with
opacity: 0) - Popper.js calculating and applying the correct position
- The opacity transitioning to
1
The opacity transitions to 1 before Popper.js finished calculating and applying the position transform.
How do you reproduce the problem?
- Go to the PatternFly dropdown component page.
- Open and close the dropdowns back to back.
Screenshots
- PF website
https://github.com/user-attachments/assets/0a076fc4-ead1-4d6a-a497-1f72ee3e28f5
- RH website
https://github.com/user-attachments/assets/4ea2b102-d9c9-4c76-8000-ef3631c6e3ab
What is your environment?
-
OS: macOS Tahoe 26.3
-
Browser: Safari 26.3
-
CPU: M3
-
Memory: 24 GB
Jira Issue: PF-3668
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the PatternFly dropdown component page and the Popper elements involved in opening dropdowns, then reproduce the flash by opening and closing dropdowns repeatedly in Safari. Trace the opening sequence around rendering, Popper.js positioning, and opacity; the issue is done when the popper never appears at the top-left before reaching its correct position.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- react, typescript
- Domain
- frontend
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100