Skip to content
FrameworkStyle

media-fullscreen-button

Accessible fullscreen toggle button with keyboard support and state reflection

Anatomy

<media-fullscreen-button></media-fullscreen-button>

Behavior

Toggles fullscreen mode. Detects platform support through availability — when fullscreen is "unsupported", the toggle does nothing.

Styling

You can style the button based on fullscreen state:

/* In fullscreen */
media-fullscreen-button[data-fullscreen] {
  background: red;
}

Consider hiding the button when unsupported:

media-fullscreen-button[data-availability="unsupported"] {
  display: none;
}

Accessibility

Renders a <button> with an automatic aria-label: “Enter fullscreen” or “Exit fullscreen”. Override with the label prop. Keyboard activation: Enter / Space.

Examples

Basic Usage

Exit Fullscreen Fullscreen
<video-player class="video-player">
    <media-container>
        <video
            src="https://stream.mux.com/BV3YZtogl89mg9VcNBhhnHm02Y34zI1nlMuMQfAbl3dM/highest.mp4"
            autoplay
            muted
            playsinline
            loop
        ></video>
        <media-fullscreen-button class="media-fullscreen-button">
            <span class="fullscreen">Exit Fullscreen</span>
            <span class="not-fullscreen">Fullscreen</span>
        </media-fullscreen-button>
    </media-container>
</video-player>
<video-player class="relative block">
    <media-container>
        <video
            class="w-full"
            src="https://stream.mux.com/BV3YZtogl89mg9VcNBhhnHm02Y34zI1nlMuMQfAbl3dM/highest.mp4"
            autoplay
            muted
            playsinline
            loop
        ></video>
        <media-fullscreen-button
            class="absolute right-2.5 bottom-2.5 cursor-pointer rounded-full border border-white/30 bg-white/70 px-5 py-2 text-black backdrop-blur-[10px]"
        >
            <span class="hidden in-data-fullscreen:inline">Exit Fullscreen</span>
            <span class="hidden not-in-data-fullscreen:inline">Fullscreen</span>
        </media-fullscreen-button>
    </media-container>
</video-player>

API Reference

Props

Prop Type Default Details
disabled boolean false
label string | function ''

State

State is reflected as data attributes for CSS styling.

Property Type Details
availability 'available' | 'unavailable' | 'unsupp...
fullscreen boolean
label string

Data attributes

Attribute Type Details
data-fullscreen
data-availability 'available' | 'unavailable' | 'unsupp...