obsproject / obsproject/obs-browser
mix-blend-mode=plus-lighter with partial transparency completely removes elements behind it
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 904
- Forks
- 267
- Avg merge
- 1d 23h
- Merged PRs (30d)
- 2
Description
Operating System Info
Windows 11
Other OS
No response
OBS Studio Version
29.1.3
OBS Studio Version (Other)
No response
OBS Studio Log URL
N/A
OBS Studio Crash Log URL
N/A
Expected Behavior
If you create a browser source that contains two elements that should crossfade into eachother (using linear opacity transitions and mix-blend-mode=plus-lighter), then swapping the opacity should result in the two elements doing a crossfade transition.
A minimal example is provided at https://codepen.io/fugiman/pen/mdvRGMm
I have confirmed this works in Chrome v118 and Chromium v103 (which I believe is what the CEF in OBS 29.1.3 is forked from)
Current Behavior
Instead, on OBS 29.1.3 the bottom element will completely disappear during the transition, and the top element will blend with the background. At the end of the transition the bottom element will snap in at the correct opacity.
In other words, if you are transitioning from bottom -> top, bottom will immediately disappear and top will fade in slowly, ending with top fully visible
transitioning from top -> bottom, top will slowly fade away, and then at the end bottom will snap in completely visible.
Steps to Reproduce
- Load https://codepen.io/fugiman/pen/mdvRGMm in Chromium 103 (or Chrome 119) and see the expected behavior
- Load in OBS 29.1.3 browser source and see the blue square disappearing
Anything else we should know?
No response
Contributor guide
No contributing guide indexed for this repository
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 by loading the CodePen reproduction in the OBS 29.1.3 browser source and compare it with Chromium 103 or Chrome 119, focusing on mix-blend-mode=plus-lighter and opacity transitions. Done means the two elements crossfade without the lower element disappearing or snapping in at the end.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- frontend
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100