A fullscreen toggle over the Fullscreen API, with a CSS-class fallback.
requestFullscreen rejects whenever the call is not tied to a user gesture,
and is missing outright in some embedded views and in test environments, so
the rejection is treated as a normal outcome, not an error: the target gets
a fixed-position class instead, and the button keeps working. That means the
caller never has to know which route is in play.
A fullscreen toggle over the Fullscreen API, with a CSS-class fallback.
requestFullscreenrejects whenever the call is not tied to a user gesture, and is missing outright in some embedded views and in test environments, so the rejection is treated as a normal outcome, not an error: the target gets a fixed-position class instead, and the button keeps working. That means the caller never has to know which route is in play.