Full screen functionality for self hosted videos#15427
Full screen functionality for self hosted videos#15427
Conversation
01c9329 to
181ebe2
Compare
|
Yay 👏 ! Some loose thoughts if I may (feel free to ignore):
*I would even allow it (without icon) on loops and cinemagraphs (it’s there in the context menu anyway), but that’s less important |
… both are visible at once
e1a771a to
0deed4b
Compare
|
You may want to test the behaviour on mobile Safari, if you haven't already: https://caniuse.com/?search=exitFullscreen |
|
Going vertical instead of horizontal may be required to avoid clashing with subtitles. Test page |
6533458 to
746d852
Compare
…already has access to video style
Thanks @domlander! You're quite right; fullscreen api is not available for mobile safari so i've added the webkit api for mobile safari users which fixes the issue Simulator.Screen.Recording.-.iPhone.17.-.2026-02-26.at.15.38.38.mp4 |
de3eb09 to
d98333e
Compare
|
Thanks for the feedback @paperboyo ! Some comments from my side...
Yes we can do that! I've added the functionality in a different PR here #15453. I'd welcome your feedback on if the 250ms interaction delay is worth the pay off. For now, this is not available for cinemagraphs or loops.
A very good point - I agree. Perhaps my fault for not mentioning in the PR, but the placement of the icon is still TBD at the moment and is being looked at by Design. I have raised these concerns so hopefully they should be taken into account. |
I think this is still an issue. The new code around Safari fullscreen looks good. |

What does this change?
Adds the functionality to full screen self hosted videos. This uses the fullscreen api.
This icon should not show for loop or cinemagraph style videos, only long-form video (currently called
default)The fullscreen icon renders in the same position as the mute button if the video does not have audio. If the video does have audio, the fullscreen icon appears next to the mute button. There has been a refactor to the CSS to place both button siblings within a wrapper.
Why?
This is a requirement for long form videos.
Screenshots
Screen.Recording.2026-02-25.at.16.18.58.mov