Vize

use-fullscreen

Enter, exit, and observe fullscreen for an element.

Package @vizejs/composable/use-fullscreen
Own the source vize lib pull composable:use-fullscreen
Runtime exports useFullscreen
Gzip budget 2048 B

Usage

import { useFullscreen } from "@vizejs/composable/use-fullscreen";

Runtime contract

Utility Category Stability SSR Hydration Cleanup Targets Host globals Uses
useFullscreen system experimental deterministic-fallback caller-managed reactive-scope web, desktop window tryOnScopeDispose

API

useFullscreen

Enter, exit, and observe fullscreen for an element. Supports the standard Fullscreen API and the WebKit-prefixed variant. isFullscreen is true only while this target is the fullscreen element and follows fullscreenchange, so pressing Escape is reflected. Listeners are removed when the owning scope stops; with autoExit the target also leaves fullscreen then. Server rendering: supported and isFullscreen are false and nothing is requested.

function useFullscreen( target?: MaybeRefOrGetter<FullscreenElementLike | null | undefined>, options: UseFullscreenOptions = {}, ): FullscreenControls
const player = useTemplateRef<HTMLElement>("player");
const { toggle, isFullscreen } = useFullscreen(player);

Types

FullscreenElementLike

Element that can enter fullscreen (standard or WebKit-prefixed).

Member Type Description
requestFullscreen? (options?: { navigationUI?: FullscreenNavigationUI }) => Promise<void> Standard request.
webkitRequestFullscreen? () => void Legacy WebKit request (Safari < 16.4).

FullscreenHost

Document-level fullscreen capability (standard or WebKit-prefixed).

Member Type Description
fullscreenElement? unknown Element currently in fullscreen.
webkitFullscreenElement? unknown Legacy WebKit fullscreen element.
fullscreenEnabled? boolean Whether fullscreen is allowed (for example by permissions policy).
webkitFullscreenEnabled? boolean Legacy WebKit flag.
exitFullscreen? () => Promise<void> Standard exit.
webkitExitFullscreen? () => void Legacy WebKit exit.
documentElement? FullscreenElementLike | null Default fullscreen target.

UseFullscreenOptions

Options for useFullscreen.

Member Type Description
host? MaybeRefOrGetter<FullscreenHost | null | undefined> Document capability for alternate runtimes and tests.
autoExit? boolean Exit fullscreen when the owning reactive scope stops while this composable's target is fullscreen.
navigationUI? FullscreenNavigationUI Navigation UI preference passed to requestFullscreen.

FullscreenControls

Reactive state and actions returned by useFullscreen.

Member Type Description
supported ComputedRef<boolean> Whether fullscreen can be requested.
isFullscreen Readonly<Ref<boolean>> Whether this composable's target is the current fullscreen element.
enter () => Promise<boolean> Enter fullscreen. Browsers require a user gesture.
exit () => Promise<boolean> Exit fullscreen when this composable's target owns it.
toggle () => Promise<boolean> Toggle fullscreen.