Skip to content
FrameworkStyle

Customize skins

Learn how to customize Video.js v10 skins by copying and modifying them

Video.js v10 comes with two pre-built skins; Default and Minimal. Basic customization is possible with CSS custom properties, but if you want more control over the design and functionality of your player, you can copy the skin’s code into your project and modify it as needed. We call this “ejecting” the skin, since you’re taking the internal code that makes up the skin and making it your own.

Basic customization

Property Name Description Type Example
--media-accent-color The color of slider fills and accented controls <color> #f5c518
--media-accent-text-color The color of text and icons shown on the accent color <color> black
--media-border-radius The border radius of the media player A valid border-radius value 1rem
--media-scale-unit The base sizing unit for Vanilla CSS skins <length> 1rem

If you omit --media-accent-text-color, the skins choose a contrasting text color from --media-accent-color using contrast-color(). You only need to set it when you want to override that result.

Set the audio color scheme

The audio skins adapt their main palette for light and dark mode using light-dark(). It uses the inherited color-scheme, so set color-scheme on the player or an ancestor:

:root {
  color-scheme: light dark;
}

The video skins keep their dark control presentation in both color schemes.

Scale with the document font size

Vanilla CSS skins use --media-scale-unit as the base for control spacing, icon sizes, and font sizes. It defaults to 16px, so the player UI does not change with the document root font size. Set it to 1rem on the player or an ancestor to make the UI scale with the document root font size:

.player {
  --media-scale-unit: 1rem;
}

You can of course also add your own classnames to the skins themselves.

Ejecting

If you’d like to customize them you can fully customize them by “ejecting” the code and making it your own.

While eventually we’ll have a CLI that will eject skins in your preferred framework and style, for now we invite you to try it out with these copy-paste-ready implementations.

Default video skin

<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/html@10.0.0-beta.31/cdn/video-ui.js"></script>
<link rel="stylesheet" href="./player.css">

<video-player poster="https://image.mux.com/BV3YZtogl89mg9VcNBhhnHm02Y34zI1nlMuMQfAbl3dM/thumbnail.webp">
  <media-container class="media-default-skin media-default-skin--video">
    <video src="https://stream.mux.com/BV3YZtogl89mg9VcNBhhnHm02Y34zI1nlMuMQfAbl3dM/highest.mp4" playsinline></video>

    <media-poster>
      <img alt="" decoding="async" />
    </media-poster>

    <media-buffering-indicator class="media-buffering-indicator">
      <media-icon name="spinner" class="media-icon"></media-icon>
    </media-buffering-indicator>

    <media-error-dialog class="media-error">
      <div class="media-error__dialog media-surface">
        <div class="media-error__content">
          <media-alert-dialog-title class="media-error__title"></media-alert-dialog-title>
          <media-alert-dialog-description class="media-error__description"></media-alert-dialog-description>
        </div>
        <div class="media-error__actions">
          <media-alert-dialog-close class="media-button media-button--primary"></media-alert-dialog-close>
        </div>
      </div>
    </media-error-dialog>

    <media-controls class="media-surface media-controls media-controls--root">
      <media-tooltip-group>
        <div class="media-surface media-controls media-controls--primary">
          <div class="media-button-group">
            <media-play-button commandfor="play-tooltip" class="media-button media-button--subtle media-button--icon media-button--play">
              <media-icon name="restart" class="media-icon media-icon--restart"></media-icon>
              <media-icon name="play" class="media-icon media-icon--play"></media-icon>
              <media-icon name="pause" class="media-icon media-icon--pause"></media-icon>
            </media-play-button>
            <media-tooltip id="play-tooltip" side="top" class="media-surface media-tooltip">
              <media-tooltip-label></media-tooltip-label>
              <media-tooltip-shortcut class="media-tooltip__kbd"></media-tooltip-shortcut>
            </media-tooltip>

            <media-mute-button commandfor="video-volume-popover" class="media-button media-button--subtle media-button--icon media-button--mute">
              <media-icon name="volume-off" class="media-icon media-icon--volume-off"></media-icon>
              <media-icon name="volume-low" class="media-icon media-icon--volume-low"></media-icon>
              <media-icon name="volume-high" class="media-icon media-icon--volume-high"></media-icon>
            </media-mute-button>

            <media-popover id="video-volume-popover" open-on-hover delay="200" close-delay="100" side="top" class="media-surface media-popover media-popover--volume">
              <media-volume-slider class="media-slider" orientation="vertical" thumb-alignment="edge">
                <media-slider-track class="media-slider__track">
                  <media-slider-fill class="media-slider__fill"></media-slider-fill>
                </media-slider-track>
                <media-slider-thumb class="media-slider__thumb media-slider__thumb--persistent"></media-slider-thumb>
              </media-volume-slider>
            </media-popover>
          </div>

          <div class="media-time-controls">
            <media-time type="current" class="media-time"></media-time>
            <media-time-slider class="media-slider">
              <media-time-slider-chapters class="media-slider__chapters">
                <template>
                  <div class="media-slider__chapter">
                    <media-slider-track class="media-slider__track media-slider__chapter-track">
                      <media-slider-buffer class="media-slider__buffer"></media-slider-buffer>
                      <media-slider-fill class="media-slider__fill"></media-slider-fill>
                    </media-slider-track>
                  </div>
                </template>
              </media-time-slider-chapters>
              <media-slider-thumb class="media-slider__thumb"></media-slider-thumb>

              <media-slider-preview overflow="visible" class="media-slider__preview">
                <div class="media-surface media-thumbnail media-slider__thumbnail">
                  <media-slider-thumbnail class="media-thumbnail__image"></media-slider-thumbnail>
                  <media-icon name="spinner" class="media-thumbnail__spinner media-icon"></media-icon>
                </div>
                <div class="media-slider__value">
                  <media-time-slider-chapter-title class="media-slider__chapter-title"></media-time-slider-chapter-title>
                  <media-slider-value type="pointer" class="media-time"></media-slider-value>
                </div>
              </media-slider-preview>
            </media-time-slider>
            <media-time toggle type="remaining" class="media-time"></media-time>
          </div>

          <div class="media-button-group">
            <media-captions-button commandfor="captions-tooltip" class="media-button media-button--subtle media-button--icon media-button--captions">
              <media-icon name="captions-off" class="media-icon media-icon--captions-off"></media-icon>
              <media-icon name="captions-on" class="media-icon media-icon--captions-on"></media-icon>
            </media-captions-button>
            <media-tooltip id="captions-tooltip" side="top" class="media-surface media-tooltip">
              <media-tooltip-label></media-tooltip-label>
              <media-tooltip-shortcut class="media-tooltip__kbd"></media-tooltip-shortcut>
            </media-tooltip>

            <button id="settings-trigger" commandfor="settings-menu" aria-labelledby="settings-label" class="media-button media-button--subtle media-button--icon media-button--settings">
              <media-icon name="gear" class="media-icon media-icon--settings"></media-icon>
              <media-text token="menu.settings" id="settings-label" class="media-sr-only">Settings</media-text>
            </button>
            <media-menu id="settings-menu" side="top" align="center" class="media-surface media-popover media-menu media-menu--settings">
              <div class="media-menu__group">
                  <media-menu-item commandfor="settings-quality-menu" class="media-menu__item media-menu__item--submenu">
                    <media-icon name="switches" class="media-icon"></media-icon>
                    <media-text token="menu.quality">Quality</media-text>
                    <span class="media-menu__hint">
                      <bdi data-part="hint" dir="auto" class="media-menu__hint-label"></bdi>
                      <media-icon name="chevron" class="media-icon media-menu__chevron"></media-icon>
                    </span>
                  </media-menu-item>
                  <media-menu-item commandfor="settings-audio-menu" class="media-menu__item media-menu__item--submenu">
                    <media-icon name="speech" class="media-icon"></media-icon>
                    <media-text token="menu.audio">Audio</media-text>
                    <span class="media-menu__hint">
                      <bdi data-part="hint" dir="auto" class="media-menu__hint-label"></bdi>
                      <media-icon name="chevron" class="media-icon media-menu__chevron"></media-icon>
                    </span>
                  </media-menu-item>
                  <media-menu-item commandfor="settings-speed-menu" class="media-menu__item media-menu__item--submenu">
                    <media-icon name="speed" class="media-icon"></media-icon>
                    <media-text token="menu.speed">Speed</media-text>
                    <span class="media-menu__hint">
                      <bdi data-part="hint" dir="auto" class="media-menu__hint-label"></bdi>
                      <media-icon name="chevron" class="media-icon media-menu__chevron"></media-icon>
                    </span>
                  </media-menu-item>
                  <media-menu-item commandfor="settings-captions-menu" class="media-menu__item media-menu__item--submenu">
                    <media-icon name="captions-off" class="media-icon"></media-icon>
                    <media-text token="menu.captions">Captions</media-text>
                    <span class="media-menu__hint">
                      <bdi data-part="hint" dir="auto" class="media-menu__hint-label"></bdi>
                      <media-icon name="chevron" class="media-icon media-menu__chevron"></media-icon>
                    </span>
                  </media-menu-item>
              </div>

              <media-menu id="settings-quality-menu" class="media-menu__panel">
                <media-menu-item class="media-menu__back">
                  <media-icon name="chevron" class="media-icon media-menu__chevron media-icon--flipped"></media-icon>
                  <media-text token="menu.quality">Quality</media-text>
                </media-menu-item>
                <div class="media-menu__separator"></div>
                <media-quality-radio-group class="media-menu__group">
                  <template>
                    <media-menu-radio-item class="media-menu__item">
                      <span>
                        <bdi data-part="label" dir="auto"></bdi>
                        <sup data-part="tier" class="media-menu__tier"></sup>
                      </span>
                      <span data-part="badge" class="media-badge"></span>
                      <media-menu-item-indicator force-mount class="media-menu__indicator">
                        <media-icon name="check" class="media-icon"></media-icon>
                      </media-menu-item-indicator>
                    </media-menu-radio-item>
                  </template>
                </media-quality-radio-group>
              </media-menu>

              <media-menu id="settings-audio-menu" class="media-menu__panel">
                <media-menu-item class="media-menu__back">
                  <media-icon name="chevron" class="media-icon media-menu__chevron media-icon--flipped"></media-icon>
                  <media-text token="menu.audio">Audio</media-text>
                </media-menu-item>
                <div class="media-menu__separator"></div>
                <media-audio-track-radio-group class="media-menu__group">
                  <template>
                    <media-menu-radio-item class="media-menu__item">
                      <bdi data-part="label" dir="auto"></bdi>
                      <media-menu-item-indicator force-mount class="media-menu__indicator">
                        <media-icon name="check" class="media-icon"></media-icon>
                      </media-menu-item-indicator>
                    </media-menu-radio-item>
                  </template>
                </media-audio-track-radio-group>
              </media-menu>

              <media-menu id="settings-speed-menu" class="media-menu__panel">
                <media-menu-item class="media-menu__back">
                  <media-icon name="chevron" class="media-icon media-menu__chevron media-icon--flipped"></media-icon>
                  <media-text token="menu.speed">Speed</media-text>
                </media-menu-item>
                <div class="media-menu__separator"></div>
                <media-playback-rate-radio-group class="media-menu__group">
                  <template>
                    <media-menu-radio-item class="media-menu__item">
                      <bdi data-part="label" dir="auto"></bdi>
                      <media-menu-item-indicator force-mount class="media-menu__indicator">
                        <media-icon name="check" class="media-icon"></media-icon>
                      </media-menu-item-indicator>
                    </media-menu-radio-item>
                  </template>
                </media-playback-rate-radio-group>
              </media-menu>

              <media-menu id="settings-captions-menu" class="media-menu__panel">
                <media-menu-item class="media-menu__back">
                  <media-icon name="chevron" class="media-icon media-menu__chevron media-icon--flipped"></media-icon>
                  <media-text token="menu.captions">Captions</media-text>
                </media-menu-item>
                <div class="media-menu__separator"></div>
                <media-captions-radio-group class="media-menu__group">
                  <template>
                    <media-menu-radio-item class="media-menu__item">
                      <bdi data-part="label" dir="auto"></bdi>
                      <media-menu-item-indicator force-mount class="media-menu__indicator">
                        <media-icon name="check" class="media-icon"></media-icon>
                      </media-menu-item-indicator>
                    </media-menu-radio-item>
                  </template>
                </media-captions-radio-group>
              </media-menu>
            </media-menu>
            <media-tooltip id="settings-tooltip" trigger="settings-trigger" side="top" class="media-surface media-tooltip">
              <media-text token="menu.settings">Settings</media-text>
            </media-tooltip>
          </div>
        </div>

        <div class="media-surface media-controls media-controls--secondary">
          <div class="media-button-group">
            <media-cast-button commandfor="cast-tooltip" class="media-button media-button--subtle media-button--icon media-button--cast">
              <media-icon name="cast-enter" class="media-icon media-icon--cast-enter"></media-icon>
              <media-icon name="cast-exit" class="media-icon media-icon--cast-exit"></media-icon>
            </media-cast-button>
            <media-tooltip id="cast-tooltip" side="top" class="media-surface media-tooltip">
              <media-tooltip-label></media-tooltip-label>
              <media-tooltip-shortcut class="media-tooltip__kbd"></media-tooltip-shortcut>
            </media-tooltip>

            <media-airplay-button commandfor="airplay-tooltip" class="media-button media-button--subtle media-button--icon media-button--airplay">
              <media-icon name="airplay-enter" class="media-icon media-icon--airplay-enter"></media-icon>
              <media-icon name="airplay-exit" class="media-icon media-icon--airplay-exit"></media-icon>
            </media-airplay-button>
            <media-tooltip id="airplay-tooltip" side="top" class="media-surface media-tooltip">
              <media-tooltip-label></media-tooltip-label>
              <media-tooltip-shortcut class="media-tooltip__kbd"></media-tooltip-shortcut>
            </media-tooltip>

            <media-pip-button commandfor="pip-tooltip" class="media-button media-button--subtle media-button--icon media-button--pip">
              <media-icon name="pip-enter" class="media-icon media-icon--pip-enter"></media-icon>
              <media-icon name="pip-exit" class="media-icon media-icon--pip-exit"></media-icon>
            </media-pip-button>
            <media-tooltip id="pip-tooltip" side="top" class="media-surface media-tooltip">
              <media-tooltip-label></media-tooltip-label>
              <media-tooltip-shortcut class="media-tooltip__kbd"></media-tooltip-shortcut>
            </media-tooltip>

            <media-fullscreen-button commandfor="fullscreen-tooltip" class="media-button media-button--subtle media-button--icon media-button--fullscreen">
              <media-icon name="fullscreen-enter" class="media-icon media-icon--fullscreen-enter"></media-icon>
              <media-icon name="fullscreen-exit" class="media-icon media-icon--fullscreen-exit"></media-icon>
            </media-fullscreen-button>
            <media-tooltip id="fullscreen-tooltip" side="top" class="media-surface media-tooltip">
              <media-tooltip-label></media-tooltip-label>
              <media-tooltip-shortcut class="media-tooltip__kbd"></media-tooltip-shortcut>
            </media-tooltip>
          </div>
        </div>
      </media-tooltip-group>
    </media-controls>

    <div class="media-overlay"></div>

    <!-- Hotkeys -->
    <media-hotkey keys="Space" action="togglePaused"></media-hotkey>
    <media-hotkey keys="k" action="togglePaused"></media-hotkey>
    <media-hotkey keys="m" action="toggleMuted"></media-hotkey>
    <media-hotkey keys="f" action="toggleFullscreen"></media-hotkey>
    <media-hotkey keys="c" action="toggleSubtitles"></media-hotkey>
    <media-hotkey keys="i" action="togglePictureInPicture"></media-hotkey>
    <media-hotkey keys="ArrowRight" action="seekStep" value="5"></media-hotkey>
    <media-hotkey keys="ArrowLeft" action="seekStep" value="-5"></media-hotkey>
    <media-hotkey keys="l" action="seekStep" value="10"></media-hotkey>
    <media-hotkey keys="j" action="seekStep" value="-10"></media-hotkey>
    <media-hotkey keys="ArrowUp" action="volumeStep" value="0.05"></media-hotkey>
    <media-hotkey keys="ArrowDown" action="volumeStep" value="-0.05"></media-hotkey>
    <media-hotkey keys="0-9" action="seekToPercent"></media-hotkey>
    <media-hotkey keys="Home" action="seekToPercent" value="0"></media-hotkey>
    <media-hotkey keys="End" action="seekToPercent" value="100"></media-hotkey>
    <media-hotkey keys=">" action="speedUp"></media-hotkey>
    <media-hotkey keys="<" action="speedDown"></media-hotkey>

    <!-- Gestures -->
    <media-gesture type="tap" action="togglePaused" pointer="mouse" region="center"></media-gesture>
    <media-gesture type="tap" action="toggleControls" pointer="touch"></media-gesture>
    <media-gesture type="doubletap" action="seekStep" value="-10" region="left"></media-gesture>
    <media-gesture type="doubletap" action="toggleFullscreen" region="center"></media-gesture>
    <media-gesture type="doubletap" action="seekStep" value="10" region="right"></media-gesture>

    <!-- Input Indicators -->
    <media-status-announcer class="media-sr-only"></media-status-announcer>
    <div class="media-input-indicator-overlay">
      <media-volume-indicator hidden class="media-surface media-volume-indicator">
        <media-volume-indicator-fill class="media-volume-indicator__content">
          <media-icon name="volume-high" class="media-icon media-icon--volume-high"></media-icon>
          <media-icon name="volume-low" class="media-icon media-icon--volume-low"></media-icon>
          <media-icon name="volume-off" class="media-icon media-icon--volume-off"></media-icon>
          <media-volume-indicator-value class="media-volume-indicator__value"></media-volume-indicator-value>
        </media-volume-indicator-fill>
      </media-volume-indicator>
      <media-status-indicator
        hidden
        actions="toggleSubtitles toggleFullscreen togglePictureInPicture"
        class="media-surface media-status-indicator media-status-indicator--state"
      >
        <div class="media-status-indicator__content">
          <media-icon name="captions-on" class="media-icon media-icon--captions-on"></media-icon>
          <media-icon name="captions-off" class="media-icon media-icon--captions-off"></media-icon>
          <media-icon name="fullscreen-enter" class="media-icon media-icon--fullscreen-enter"></media-icon>
          <media-icon name="fullscreen-exit" class="media-icon media-icon--fullscreen-exit"></media-icon>
          <media-icon name="pip-enter" class="media-icon media-icon--pip-enter"></media-icon>
          <media-icon name="pip-exit" class="media-icon media-icon--pip-exit"></media-icon>
          <media-status-indicator-value class="media-status-indicator__value"></media-status-indicator-value>
        </div>
      </media-status-indicator>
      <media-seek-indicator hidden class="media-seek-indicator">
        <media-icon name="chevron" class="media-icon media-icon--seek"></media-icon>
        <media-seek-indicator-value class="media-seek-indicator__value"></media-seek-indicator-value>
      </media-seek-indicator>
      <media-status-indicator hidden actions="togglePaused" class="media-status-indicator media-status-indicator--playback">
        <media-icon name="play" class="media-icon media-icon--play"></media-icon>
        <media-icon name="pause" class="media-icon media-icon--pause"></media-icon>
      </media-status-indicator>
    </div>
  </media-container>
</video-player>

Default audio skin

<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/html@10.0.0-beta.31/cdn/audio-ui.js"></script>
<link rel="stylesheet" href="./player.css">

<audio-player>
  <media-container class="media-default-skin media-default-skin--audio">
    <audio src="https://stream.mux.com/BV3YZtogl89mg9VcNBhhnHm02Y34zI1nlMuMQfAbl3dM/highest.mp4"></audio>

    <media-error-dialog class="media-error">
      <div class="media-error__dialog">
        <div class="media-error__content">
          <media-alert-dialog-title class="media-error__title"></media-alert-dialog-title>
          <media-alert-dialog-description class="media-error__description"></media-alert-dialog-description>
        </div>
        <div class="media-error__actions">
          <media-alert-dialog-close class="media-button media-button--subtle"></media-alert-dialog-close>
        </div>
      </div>
    </media-error-dialog>

    <div class="media-surface media-controls">
      <media-tooltip-group>
        <div class="media-button-group">
          <span class="media-button--play__wrapper">
            <media-buffering-indicator class="media-buffering-indicator">
              <media-icon name="spinner" class="media-icon"></media-icon>
            </media-buffering-indicator>
            <media-play-button commandfor="play-tooltip" class="media-button media-button--subtle media-button--icon media-button--play">
              <media-icon name="restart" class="media-icon media-icon--restart"></media-icon>
              <media-icon name="play" class="media-icon media-icon--play"></media-icon>
              <media-icon name="pause" class="media-icon media-icon--pause"></media-icon>
            </media-play-button>
            <media-tooltip id="play-tooltip" side="top" boundary="viewport" class="media-surface media-tooltip">
              <media-tooltip-label></media-tooltip-label>
              <media-tooltip-shortcut class="media-tooltip__kbd"></media-tooltip-shortcut>
            </media-tooltip>
          </span>

          <media-seek-button commandfor="seek-backward-tooltip" seconds="-10" class="media-button media-button--subtle media-button--icon media-button--seek">
            <span class="media-icon__container">
              <media-icon name="seek" class="media-icon media-icon--seek media-icon--flipped"></media-icon>
              <span class="media-icon__label">10</span>
            </span>
          </media-seek-button>
          <media-tooltip id="seek-backward-tooltip" side="top" boundary="viewport" class="media-surface media-tooltip">
            <media-tooltip-label></media-tooltip-label>
            <media-tooltip-shortcut class="media-tooltip__kbd"></media-tooltip-shortcut>
          </media-tooltip>

          <media-seek-button commandfor="seek-forward-tooltip" seconds="10" class="media-button media-button--subtle media-button--icon media-button--seek">
            <span class="media-icon__container">
              <media-icon name="seek" class="media-icon media-icon--seek"></media-icon>
              <span class="media-icon__label">10</span>
            </span>
          </media-seek-button>
          <media-tooltip id="seek-forward-tooltip" side="top" boundary="viewport" class="media-surface media-tooltip">
            <media-tooltip-label></media-tooltip-label>
            <media-tooltip-shortcut class="media-tooltip__kbd"></media-tooltip-shortcut>
          </media-tooltip>
        </div>

        <div class="media-time-controls">
          <media-time type="current" class="media-time"></media-time>
          <media-time-slider class="media-slider">
            <media-slider-track class="media-slider__track">
              <media-slider-buffer class="media-slider__buffer"></media-slider-buffer>
              <media-slider-fill class="media-slider__fill"></media-slider-fill>
            </media-slider-track>
            <media-slider-thumb class="media-slider__thumb"></media-slider-thumb>
            <media-slider-preview overflow="visible" class="media-slider__preview">
              <media-slider-value type="pointer" class="media-slider__value media-time"></media-slider-value>
            </media-slider-preview>
          </media-time-slider>
          <media-time toggle type="remaining" class="media-time"></media-time>
        </div>

        <div class="media-button-group">
          <media-playback-rate-button commandfor="playback-rate-menu" class="media-button media-button--subtle media-button--icon media-button--playback-rate"></media-playback-rate-button>
          <media-menu id="playback-rate-menu" side="top" align="center" boundary="viewport" class="media-surface media-popover media-menu">
            <media-playback-rate-radio-group class="media-menu__group">
              <template>
                <media-menu-radio-item class="media-menu__item">
                  <span data-part="label"></span>
                  <media-menu-item-indicator force-mount class="media-menu__indicator">
                    <media-icon name="check" class="media-icon"></media-icon>
                  </media-menu-item-indicator>
                </media-menu-radio-item>
              </template>
            </media-playback-rate-radio-group>
          </media-menu>

          <media-mute-button commandfor="audio-volume-popover" class="media-button media-button--subtle media-button--icon media-button--mute">
            <media-icon name="volume-off" class="media-icon media-icon--volume-off"></media-icon>
            <media-icon name="volume-low" class="media-icon media-icon--volume-low"></media-icon>
            <media-icon name="volume-high" class="media-icon media-icon--volume-high"></media-icon>
          </media-mute-button>

          <media-popover id="audio-volume-popover" open-on-hover delay="200" close-delay="100" side="top" boundary="viewport" class="media-surface media-popover media-popover--volume">
            <media-volume-slider class="media-slider" orientation="vertical" thumb-alignment="edge">
              <media-slider-track class="media-slider__track">
                <media-slider-fill class="media-slider__fill"></media-slider-fill>
              </media-slider-track>
              <media-slider-thumb class="media-slider__thumb media-slider__thumb--persistent"></media-slider-thumb>
            </media-volume-slider>
          </media-popover>
        </div>
      </media-tooltip-group>
    </div>

    <!-- Hotkeys -->
    <media-hotkey keys="Space" action="togglePaused"></media-hotkey>
    <media-hotkey keys="k" action="togglePaused"></media-hotkey>
    <media-hotkey keys="m" action="toggleMuted"></media-hotkey>
    <media-hotkey keys="ArrowRight" action="seekStep" value="5"></media-hotkey>
    <media-hotkey keys="ArrowLeft" action="seekStep" value="-5"></media-hotkey>
    <media-hotkey keys="l" action="seekStep" value="10"></media-hotkey>
    <media-hotkey keys="j" action="seekStep" value="-10"></media-hotkey>
    <media-hotkey keys="ArrowUp" action="volumeStep" value="0.05"></media-hotkey>
    <media-hotkey keys="ArrowDown" action="volumeStep" value="-0.05"></media-hotkey>
    <media-hotkey keys="0-9" action="seekToPercent"></media-hotkey>
    <media-hotkey keys="Home" action="seekToPercent" value="0"></media-hotkey>
    <media-hotkey keys="End" action="seekToPercent" value="100"></media-hotkey>
    <media-hotkey keys=">" action="speedUp"></media-hotkey>
    <media-hotkey keys="<" action="speedDown"></media-hotkey>
  </media-container>
</audio-player>

Minimal video skin

<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/html@10.0.0-beta.31/cdn/video-minimal-ui.js"></script>
<link rel="stylesheet" href="./player.css">

<video-player poster="https://image.mux.com/BV3YZtogl89mg9VcNBhhnHm02Y34zI1nlMuMQfAbl3dM/thumbnail.webp">
  <media-container class="media-minimal-skin media-minimal-skin--video">
    <video src="https://stream.mux.com/BV3YZtogl89mg9VcNBhhnHm02Y34zI1nlMuMQfAbl3dM/highest.mp4" playsinline></video>

    <media-poster>
      <img alt="" decoding="async" />
    </media-poster>

    <media-buffering-indicator class="media-buffering-indicator">
      <media-icon name="spinner" family="minimal" class="media-icon"></media-icon>
    </media-buffering-indicator>

    <media-error-dialog class="media-error">
      <div class="media-error__dialog">
        <div class="media-error__content">
          <media-alert-dialog-title class="media-error__title"></media-alert-dialog-title>
          <media-alert-dialog-description class="media-error__description"></media-alert-dialog-description>
        </div>
        <div class="media-error__actions">
          <media-alert-dialog-close class="media-button media-button--primary"></media-alert-dialog-close>
        </div>
      </div>
    </media-error-dialog>

    <media-controls class="media-controls">
      <media-tooltip-group>
        <div class="media-button-group">
          <media-play-button commandfor="play-tooltip" class="media-button media-button--subtle media-button--icon media-button--play">
            <media-icon name="restart" family="minimal" class="media-icon media-icon--restart"></media-icon>
            <media-icon name="play" family="minimal" class="media-icon media-icon--play"></media-icon>
            <media-icon name="pause" family="minimal" class="media-icon media-icon--pause"></media-icon>
          </media-play-button>
          <media-tooltip id="play-tooltip" side="top" class="media-tooltip">
            <media-tooltip-label></media-tooltip-label>
            <media-tooltip-shortcut class="media-tooltip__kbd"></media-tooltip-shortcut>
          </media-tooltip>

          <media-mute-button commandfor="video-volume-popover" class="media-button media-button--subtle media-button--icon media-button--mute">
            <media-icon name="volume-off" family="minimal" class="media-icon media-icon--volume-off"></media-icon>
            <media-icon name="volume-low" family="minimal" class="media-icon media-icon--volume-low"></media-icon>
            <media-icon name="volume-high" family="minimal" class="media-icon media-icon--volume-high"></media-icon>
          </media-mute-button>

          <media-popover id="video-volume-popover" open-on-hover delay="200" close-delay="100" side="right" class="media-popover media-popover--volume">
            <media-volume-slider class="media-slider" orientation="horizontal" thumb-alignment="edge">
              <media-slider-track class="media-slider__track">
                <media-slider-fill class="media-slider__fill"></media-slider-fill>
              </media-slider-track>
              <media-slider-thumb class="media-slider__thumb media-slider__thumb--persistent"></media-slider-thumb>
            </media-volume-slider>
          </media-popover>
        </div>

        <div class="media-time-controls">
          <media-time-group class="media-time-group">
            <media-time toggle type="current" class="media-time media-time--current"></media-time>
            <media-time-separator class="media-time-separator"></media-time-separator>
            <media-time type="duration" class="media-time media-time--duration"></media-time>
          </media-time-group>

          <media-time-slider class="media-slider">
            <media-time-slider-chapters class="media-slider__chapters">
              <template>
                <div class="media-slider__chapter">
                  <media-slider-track class="media-slider__track media-slider__chapter-track">
                    <media-slider-buffer class="media-slider__buffer"></media-slider-buffer>
                    <media-slider-fill class="media-slider__fill"></media-slider-fill>
                  </media-slider-track>
                </div>
              </template>
            </media-time-slider-chapters>
            <media-slider-thumb class="media-slider__thumb"></media-slider-thumb>

            <media-slider-preview class="media-slider__preview">
              <div class="media-thumbnail media-slider__thumbnail">
                <media-slider-thumbnail class="media-thumbnail__image"></media-slider-thumbnail>
                <media-icon name="spinner" family="minimal" class="media-thumbnail__spinner media-icon"></media-icon>
              </div>
              <div class="media-slider__value">
                <media-time-slider-chapter-title class="media-slider__chapter-title"></media-time-slider-chapter-title>
                <media-slider-value type="pointer" class="media-time"></media-slider-value>
              </div>
            </media-slider-preview>
          </media-time-slider>
        </div>

        <div class="media-button-group">
          <media-captions-button commandfor="captions-tooltip" class="media-button media-button--subtle media-button--icon media-button--captions">
            <media-icon name="captions-off" family="minimal" class="media-icon media-icon--captions-off"></media-icon>
            <media-icon name="captions-on" family="minimal" class="media-icon media-icon--captions-on"></media-icon>
          </media-captions-button>
          <media-tooltip id="captions-tooltip" side="top" class="media-tooltip">
            <media-tooltip-label></media-tooltip-label>
            <media-tooltip-shortcut class="media-tooltip__kbd"></media-tooltip-shortcut>
          </media-tooltip>

          <button id="settings-trigger" commandfor="settings-menu" aria-labelledby="settings-label" class="media-button media-button--subtle media-button--icon media-button--settings">
            <media-icon name="gear" family="minimal" class="media-icon media-icon--settings"></media-icon>
            <media-text token="menu.settings" id="settings-label" class="media-sr-only">Settings</media-text>
          </button>
          <media-menu id="settings-menu" side="top" align="center" class="media-popover media-menu media-menu--settings">
            <div class="media-menu__group">
                <media-menu-item commandfor="settings-quality-menu" class="media-menu__item media-menu__item--submenu">
                  <media-icon name="switches" family="minimal" class="media-icon"></media-icon>
                  <media-text token="menu.quality">Quality</media-text>
                  <span class="media-menu__hint">
                    <bdi data-part="hint" dir="auto" class="media-menu__hint-label"></bdi>
                    <media-icon name="chevron" family="minimal" class="media-icon media-menu__chevron"></media-icon>
                  </span>
                </media-menu-item>
                <media-menu-item commandfor="settings-audio-menu" class="media-menu__item media-menu__item--submenu">
                  <media-icon name="speech" family="minimal" class="media-icon"></media-icon>
                  <media-text token="menu.audio">Audio</media-text>
                  <span class="media-menu__hint">
                    <bdi data-part="hint" dir="auto" class="media-menu__hint-label"></bdi>
                    <media-icon name="chevron" family="minimal" class="media-icon media-menu__chevron"></media-icon>
                  </span>
                </media-menu-item>
                <media-menu-item commandfor="settings-speed-menu" class="media-menu__item media-menu__item--submenu">
                  <media-icon name="speed" family="minimal" class="media-icon"></media-icon>
                  <media-text token="menu.speed">Speed</media-text>
                  <span class="media-menu__hint">
                    <bdi data-part="hint" dir="auto" class="media-menu__hint-label"></bdi>
                    <media-icon name="chevron" family="minimal" class="media-icon media-menu__chevron"></media-icon>
                  </span>
                </media-menu-item>
                <media-menu-item commandfor="settings-captions-menu" class="media-menu__item media-menu__item--submenu">
                  <media-icon name="captions-off" family="minimal" class="media-icon"></media-icon>
                  <media-text token="menu.captions">Captions</media-text>
                  <span class="media-menu__hint">
                    <bdi data-part="hint" dir="auto" class="media-menu__hint-label"></bdi>
                    <media-icon name="chevron" family="minimal" class="media-icon media-menu__chevron"></media-icon>
                  </span>
                </media-menu-item>
            </div>

            <media-menu id="settings-quality-menu" class="media-menu__panel">
              <media-menu-item class="media-menu__back">
                <media-icon name="chevron" family="minimal" class="media-icon media-menu__chevron media-icon--flipped"></media-icon>
                <media-text token="menu.quality">Quality</media-text>
              </media-menu-item>
              <div class="media-menu__separator"></div>
              <media-quality-radio-group class="media-menu__group">
                <template>
                  <media-menu-radio-item class="media-menu__item">
                    <span>
                      <bdi data-part="label" dir="auto"></bdi>
                      <sup data-part="tier" class="media-menu__tier"></sup>
                    </span>
                    <span data-part="badge" class="media-badge"></span>
                    <media-menu-item-indicator force-mount class="media-menu__indicator">
                      <media-icon name="check" family="minimal" class="media-icon"></media-icon>
                    </media-menu-item-indicator>
                  </media-menu-radio-item>
                </template>
              </media-quality-radio-group>
            </media-menu>

            <media-menu id="settings-audio-menu" class="media-menu__panel">
              <media-menu-item class="media-menu__back">
                <media-icon name="chevron" family="minimal" class="media-icon media-menu__chevron media-icon--flipped"></media-icon>
                <media-text token="menu.audio">Audio</media-text>
              </media-menu-item>
              <div class="media-menu__separator"></div>
              <media-audio-track-radio-group class="media-menu__group">
                <template>
                  <media-menu-radio-item class="media-menu__item">
                    <bdi data-part="label" dir="auto"></bdi>
                    <media-menu-item-indicator force-mount class="media-menu__indicator">
                      <media-icon name="check" family="minimal" class="media-icon"></media-icon>
                    </media-menu-item-indicator>
                  </media-menu-radio-item>
                </template>
              </media-audio-track-radio-group>
            </media-menu>

            <media-menu id="settings-speed-menu" class="media-menu__panel">
              <media-menu-item class="media-menu__back">
                <media-icon name="chevron" family="minimal" class="media-icon media-menu__chevron media-icon--flipped"></media-icon>
                <media-text token="menu.speed">Speed</media-text>
              </media-menu-item>
              <div class="media-menu__separator"></div>
              <media-playback-rate-radio-group class="media-menu__group">
                <template>
                  <media-menu-radio-item class="media-menu__item">
                    <bdi data-part="label" dir="auto"></bdi>
                    <media-menu-item-indicator force-mount class="media-menu__indicator">
                      <media-icon name="check" family="minimal" class="media-icon"></media-icon>
                    </media-menu-item-indicator>
                  </media-menu-radio-item>
                </template>
              </media-playback-rate-radio-group>
            </media-menu>

            <media-menu id="settings-captions-menu" class="media-menu__panel">
              <media-menu-item class="media-menu__back">
                <media-icon name="chevron" family="minimal" class="media-icon media-menu__chevron media-icon--flipped"></media-icon>
                <media-text token="menu.captions">Captions</media-text>
              </media-menu-item>
              <div class="media-menu__separator"></div>
              <media-captions-radio-group class="media-menu__group">
                <template>
                  <media-menu-radio-item class="media-menu__item">
                    <bdi data-part="label" dir="auto"></bdi>
                    <media-menu-item-indicator force-mount class="media-menu__indicator">
                      <media-icon name="check" family="minimal" class="media-icon"></media-icon>
                    </media-menu-item-indicator>
                  </media-menu-radio-item>
                </template>
              </media-captions-radio-group>
            </media-menu>
          </media-menu>
          <media-tooltip id="settings-tooltip" trigger="settings-trigger" side="top" class="media-tooltip">
            <media-text token="menu.settings">Settings</media-text>
          </media-tooltip>

          <media-cast-button commandfor="cast-tooltip" class="media-button media-button--subtle media-button--icon media-button--cast">
            <media-icon name="cast-enter" family="minimal" class="media-icon media-icon--cast-enter"></media-icon>
            <media-icon name="cast-exit" family="minimal" class="media-icon media-icon--cast-exit"></media-icon>
          </media-cast-button>
          <media-tooltip id="cast-tooltip" side="top" class="media-tooltip">
            <media-tooltip-label></media-tooltip-label>
            <media-tooltip-shortcut class="media-tooltip__kbd"></media-tooltip-shortcut>
          </media-tooltip>

          <media-airplay-button commandfor="airplay-tooltip" class="media-button media-button--subtle media-button--icon media-button--airplay">
            <media-icon name="airplay-enter" family="minimal" class="media-icon media-icon--airplay-enter"></media-icon>
            <media-icon name="airplay-exit" family="minimal" class="media-icon media-icon--airplay-exit"></media-icon>
          </media-airplay-button>
          <media-tooltip id="airplay-tooltip" side="top" class="media-tooltip">
            <media-tooltip-label></media-tooltip-label>
            <media-tooltip-shortcut class="media-tooltip__kbd"></media-tooltip-shortcut>
          </media-tooltip>

          <media-pip-button commandfor="pip-tooltip" class="media-button media-button--subtle media-button--icon media-button--pip">
            <media-icon name="pip-enter" family="minimal" class="media-icon media-icon--pip-enter"></media-icon>
            <media-icon name="pip-exit" family="minimal" class="media-icon media-icon--pip-exit"></media-icon>
          </media-pip-button>
          <media-tooltip id="pip-tooltip" side="top" class="media-tooltip">
            <media-tooltip-label></media-tooltip-label>
            <media-tooltip-shortcut class="media-tooltip__kbd"></media-tooltip-shortcut>
          </media-tooltip>

          <media-fullscreen-button commandfor="fullscreen-tooltip" class="media-button media-button--subtle media-button--icon media-button--fullscreen">
            <media-icon name="fullscreen-enter" family="minimal" class="media-icon media-icon--fullscreen-enter"></media-icon>
            <media-icon name="fullscreen-exit" family="minimal" class="media-icon media-icon--fullscreen-exit"></media-icon>
          </media-fullscreen-button>
          <media-tooltip id="fullscreen-tooltip" side="top" class="media-tooltip">
            <media-tooltip-label></media-tooltip-label>
            <media-tooltip-shortcut class="media-tooltip__kbd"></media-tooltip-shortcut>
          </media-tooltip>
        </div>
      </media-tooltip-group>
    </media-controls>

    <div class="media-overlay"></div>

    <!-- Hotkeys -->
    <media-hotkey keys="Space" action="togglePaused"></media-hotkey>
    <media-hotkey keys="k" action="togglePaused"></media-hotkey>
    <media-hotkey keys="m" action="toggleMuted"></media-hotkey>
    <media-hotkey keys="f" action="toggleFullscreen"></media-hotkey>
    <media-hotkey keys="c" action="toggleSubtitles"></media-hotkey>
    <media-hotkey keys="i" action="togglePictureInPicture"></media-hotkey>
    <media-hotkey keys="ArrowRight" action="seekStep" value="5"></media-hotkey>
    <media-hotkey keys="ArrowLeft" action="seekStep" value="-5"></media-hotkey>
    <media-hotkey keys="l" action="seekStep" value="10"></media-hotkey>
    <media-hotkey keys="j" action="seekStep" value="-10"></media-hotkey>
    <media-hotkey keys="ArrowUp" action="volumeStep" value="0.05"></media-hotkey>
    <media-hotkey keys="ArrowDown" action="volumeStep" value="-0.05"></media-hotkey>
    <media-hotkey keys="0-9" action="seekToPercent"></media-hotkey>
    <media-hotkey keys="Home" action="seekToPercent" value="0"></media-hotkey>
    <media-hotkey keys="End" action="seekToPercent" value="100"></media-hotkey>
    <media-hotkey keys=">" action="speedUp"></media-hotkey>
    <media-hotkey keys="<" action="speedDown"></media-hotkey>

    <!-- Gestures -->
    <media-gesture type="tap" action="togglePaused" pointer="mouse" region="center"></media-gesture>
    <media-gesture type="tap" action="toggleControls" pointer="touch"></media-gesture>
    <media-gesture type="doubletap" action="seekStep" value="-10" region="left"></media-gesture>
    <media-gesture type="doubletap" action="toggleFullscreen" region="center"></media-gesture>
    <media-gesture type="doubletap" action="seekStep" value="10" region="right"></media-gesture>

    <!-- Input Indicators -->
    <media-status-announcer class="media-sr-only"></media-status-announcer>
    <div class="media-input-indicator-overlay">
      <media-volume-indicator hidden class="media-volume-indicator">
        <media-volume-indicator-fill class="media-volume-indicator__content">
          <media-icon name="volume-high" family="minimal" class="media-icon media-icon--volume-high"></media-icon>
          <media-icon name="volume-low" family="minimal" class="media-icon media-icon--volume-low"></media-icon>
          <media-icon name="volume-off" family="minimal" class="media-icon media-icon--volume-off"></media-icon>
          <div class="media-volume-indicator__progress" aria-hidden="true"></div>
          <media-volume-indicator-value class="media-volume-indicator__value"></media-volume-indicator-value>
        </media-volume-indicator-fill>
      </media-volume-indicator>

      <media-status-indicator hidden actions="toggleSubtitles toggleFullscreen togglePictureInPicture" class="media-status-indicator media-status-indicator--state">
        <div class="media-status-indicator__content">
          <media-icon name="captions-on" family="minimal" class="media-icon media-icon--captions-on"></media-icon>
          <media-icon name="captions-off" family="minimal" class="media-icon media-icon--captions-off"></media-icon>
          <media-icon name="fullscreen-enter" family="minimal" class="media-icon media-icon--fullscreen-enter"></media-icon>
          <media-icon name="fullscreen-exit" family="minimal" class="media-icon media-icon--fullscreen-exit"></media-icon>
          <media-icon name="pip-enter" family="minimal" class="media-icon media-icon--pip-enter"></media-icon>
          <media-icon name="pip-exit" family="minimal" class="media-icon media-icon--pip-exit"></media-icon>
          <media-status-indicator-value class="media-status-indicator__value"></media-status-indicator-value>
        </div>
      </media-status-indicator>

      <media-seek-indicator hidden class="media-seek-indicator">
        <media-icon name="chevron" family="minimal" class="media-icon media-icon--seek"></media-icon>
        <media-seek-indicator-value class="media-seek-indicator__value"></media-seek-indicator-value>
      </media-seek-indicator>

      <media-status-indicator hidden actions="togglePaused" class="media-status-indicator media-status-indicator--playback">
        <media-icon name="play" family="minimal" class="media-icon media-icon--play"></media-icon>
        <media-icon name="pause" family="minimal" class="media-icon media-icon--pause"></media-icon>
      </media-status-indicator>
    </div>
  </media-container>
</video-player>

Minimal audio skin

<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/html@10.0.0-beta.31/cdn/audio-minimal-ui.js"></script>
<link rel="stylesheet" href="./player.css">

<audio-player>
  <media-container class="media-minimal-skin media-minimal-skin--audio">
    <audio src="https://stream.mux.com/BV3YZtogl89mg9VcNBhhnHm02Y34zI1nlMuMQfAbl3dM/highest.mp4"></audio>

    <media-error-dialog class="media-error">
      <div class="media-error__dialog">
        <div class="media-error__content">
          <media-alert-dialog-title class="media-error__title"></media-alert-dialog-title>
          <media-alert-dialog-description class="media-error__description"></media-alert-dialog-description>
        </div>
        <div class="media-error__actions">
          <media-alert-dialog-close class="media-button media-button--subtle"></media-alert-dialog-close>
        </div>
      </div>
    </media-error-dialog>

    <div class="media-controls">
      <media-tooltip-group>
        <div class="media-button-group">
          <span class="media-button--play__wrapper">
            <media-buffering-indicator class="media-buffering-indicator">
              <media-icon name="spinner" family="minimal" class="media-icon"></media-icon>
            </media-buffering-indicator>
            <media-play-button commandfor="play-tooltip" class="media-button media-button--subtle media-button--icon media-button--play">
              <media-icon name="restart" family="minimal" class="media-icon media-icon--restart"></media-icon>
              <media-icon name="play" family="minimal" class="media-icon media-icon--play"></media-icon>
              <media-icon name="pause" family="minimal" class="media-icon media-icon--pause"></media-icon>
            </media-play-button>
            <media-tooltip id="play-tooltip" side="top" boundary="viewport" class="media-tooltip">
              <media-tooltip-label></media-tooltip-label>
              <media-tooltip-shortcut class="media-tooltip__kbd"></media-tooltip-shortcut>
            </media-tooltip>
          </span>

          <media-seek-button commandfor="seek-backward-tooltip" seconds="-10" class="media-button media-button--subtle media-button--icon media-button--seek">
            <span class="media-icon__container">
              <media-icon name="seek" family="minimal" class="media-icon media-icon--seek media-icon--flipped"></media-icon>
              <span class="media-icon__label">10</span>
            </span>
          </media-seek-button>
          <media-tooltip id="seek-backward-tooltip" side="top" boundary="viewport" class="media-tooltip">
            <media-tooltip-label></media-tooltip-label>
            <media-tooltip-shortcut class="media-tooltip__kbd"></media-tooltip-shortcut>
          </media-tooltip>

          <media-seek-button commandfor="seek-forward-tooltip" seconds="10" class="media-button media-button--subtle media-button--icon media-button--seek">
            <span class="media-icon__container">
              <media-icon name="seek" family="minimal" class="media-icon media-icon--seek"></media-icon>
              <span class="media-icon__label">10</span>
            </span>
          </media-seek-button>
          <media-tooltip id="seek-forward-tooltip" side="top" boundary="viewport" class="media-tooltip">
            <media-tooltip-label></media-tooltip-label>
            <media-tooltip-shortcut class="media-tooltip__kbd"></media-tooltip-shortcut>
          </media-tooltip>
        </div>

        <div class="media-time-controls">
          <media-time-group class="media-time-group">
            <media-time toggle type="current" class="media-time media-time--current"></media-time>
            <media-time-separator class="media-time-separator"></media-time-separator>
            <media-time type="duration" class="media-time media-time--duration"></media-time>
          </media-time-group>

          <media-time-slider class="media-slider">
            <media-slider-track class="media-slider__track">
              <media-slider-buffer class="media-slider__buffer"></media-slider-buffer>
              <media-slider-fill class="media-slider__fill"></media-slider-fill>
            </media-slider-track>
            <media-slider-thumb class="media-slider__thumb"></media-slider-thumb>
            <media-slider-preview class="media-slider__preview">
              <media-slider-value type="pointer" class="media-slider__value media-time"></media-slider-value>
            </media-slider-preview>
          </media-time-slider>
        </div>

        <div class="media-button-group">
          <media-mute-button commandfor="audio-volume-popover" class="media-button media-button--subtle media-button--icon media-button--mute">
            <media-icon name="volume-off" family="minimal" class="media-icon media-icon--volume-off"></media-icon>
            <media-icon name="volume-low" family="minimal" class="media-icon media-icon--volume-low"></media-icon>
            <media-icon name="volume-high" family="minimal" class="media-icon media-icon--volume-high"></media-icon>
          </media-mute-button>

          <media-popover id="audio-volume-popover" open-on-hover delay="200" close-delay="100" side="left" boundary="viewport" class="media-popover media-popover--volume">
            <media-volume-slider class="media-slider" orientation="horizontal" thumb-alignment="edge">
              <media-slider-track class="media-slider__track">
                <media-slider-fill class="media-slider__fill"></media-slider-fill>
              </media-slider-track>
              <media-slider-thumb class="media-slider__thumb media-slider__thumb--persistent"></media-slider-thumb>
            </media-volume-slider>
          </media-popover>

          <media-playback-rate-button commandfor="playback-rate-menu" class="media-button media-button--subtle media-button--icon media-button--playback-rate"></media-playback-rate-button>
          <media-menu id="playback-rate-menu" side="top" align="center" boundary="viewport" class="media-popover media-menu">
            <media-playback-rate-radio-group class="media-menu__group">
              <template>
                <media-menu-radio-item class="media-menu__item">
                  <span data-part="label"></span>
                  <media-menu-item-indicator force-mount class="media-menu__indicator">
                    <media-icon name="check" family="minimal" class="media-icon"></media-icon>
                  </media-menu-item-indicator>
                </media-menu-radio-item>
              </template>
            </media-playback-rate-radio-group>
          </media-menu>

        </div>
      </media-tooltip-group>
    </div>

    <!-- Hotkeys -->
    <media-hotkey keys="Space" action="togglePaused"></media-hotkey>
    <media-hotkey keys="k" action="togglePaused"></media-hotkey>
    <media-hotkey keys="m" action="toggleMuted"></media-hotkey>
    <media-hotkey keys="ArrowRight" action="seekStep" value="5"></media-hotkey>
    <media-hotkey keys="ArrowLeft" action="seekStep" value="-5"></media-hotkey>
    <media-hotkey keys="l" action="seekStep" value="10"></media-hotkey>
    <media-hotkey keys="j" action="seekStep" value="-10"></media-hotkey>
    <media-hotkey keys="ArrowUp" action="volumeStep" value="0.05"></media-hotkey>
    <media-hotkey keys="ArrowDown" action="volumeStep" value="-0.05"></media-hotkey>
    <media-hotkey keys="0-9" action="seekToPercent"></media-hotkey>
    <media-hotkey keys="Home" action="seekToPercent" value="0"></media-hotkey>
    <media-hotkey keys="End" action="seekToPercent" value="100"></media-hotkey>
    <media-hotkey keys=">" action="speedUp"></media-hotkey>
    <media-hotkey keys="<" action="speedDown"></media-hotkey>
  </media-container>
</audio-player>

Default live video skin

The live skins swap the duration and current-time displays for a Live button. They build on the live presets, so the player reports live-edge state.

<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/html@10.0.0-beta.31/cdn/live-video-ui.js"></script>
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/html@10.0.0-beta.31/cdn/media/hlsjs-video.js"></script>
<link rel="stylesheet" href="./player.css">

<live-video-player poster="https://image.mux.com/v69RSHhFelSm4701snP22dYz2jICy4E4FUyk02rW4gxRM/thumbnail.webp">
  <media-container class="media-default-skin media-default-skin--video">
    <hlsjs-video src="https://stream.mux.com/v69RSHhFelSm4701snP22dYz2jICy4E4FUyk02rW4gxRM.m3u8" playsinline></hlsjs-video>

    <media-poster>
      <img alt="" decoding="async" />
    </media-poster>

    <media-buffering-indicator class="media-buffering-indicator">
      <media-icon name="spinner" class="media-icon"></media-icon>
    </media-buffering-indicator>

    <media-error-dialog class="media-error">
      <div class="media-error__dialog media-surface">
        <div class="media-error__content">
          <media-alert-dialog-title class="media-error__title"></media-alert-dialog-title>
          <media-alert-dialog-description class="media-error__description"></media-alert-dialog-description>
        </div>
        <div class="media-error__actions">
          <media-alert-dialog-close class="media-button media-button--primary"></media-alert-dialog-close>
        </div>
      </div>
    </media-error-dialog>

    <media-controls class="media-surface media-controls media-controls--root">
      <media-tooltip-group>
        <div class="media-surface media-controls media-controls--primary">
          <div class="media-button-group">
            <media-play-button commandfor="play-tooltip" class="media-button media-button--subtle media-button--icon media-button--play">
              <media-icon name="restart" class="media-icon media-icon--restart"></media-icon>
              <media-icon name="play" class="media-icon media-icon--play"></media-icon>
              <media-icon name="pause" class="media-icon media-icon--pause"></media-icon>
            </media-play-button>
            <media-tooltip id="play-tooltip" side="top" class="media-surface media-tooltip">
              <media-tooltip-label></media-tooltip-label>
              <media-tooltip-shortcut class="media-tooltip__kbd"></media-tooltip-shortcut>
            </media-tooltip>

            <media-live-button class="media-button media-button--subtle media-button--live"></media-live-button>
          </div>

          <div class="media-time-controls" aria-hidden="true"></div>

          <div class="media-button-group">
            <media-mute-button commandfor="live-video-volume-popover" class="media-button media-button--subtle media-button--icon media-button--mute">
              <media-icon name="volume-off" class="media-icon media-icon--volume-off"></media-icon>
              <media-icon name="volume-low" class="media-icon media-icon--volume-low"></media-icon>
              <media-icon name="volume-high" class="media-icon media-icon--volume-high"></media-icon>
            </media-mute-button>

            <media-popover id="live-video-volume-popover" open-on-hover delay="200" close-delay="100" side="top" class="media-surface media-popover media-popover--volume">
              <media-volume-slider class="media-slider" orientation="vertical" thumb-alignment="edge">
                <media-slider-track class="media-slider__track">
                  <media-slider-fill class="media-slider__fill"></media-slider-fill>
                </media-slider-track>
                <media-slider-thumb class="media-slider__thumb media-slider__thumb--persistent"></media-slider-thumb>
              </media-volume-slider>
            </media-popover>

            <media-captions-button menu-for="captions-menu" commandfor="captions-tooltip" class="media-button media-button--subtle media-button--icon media-button--captions">
              <media-icon name="captions-off" class="media-icon media-icon--captions-off"></media-icon>
              <media-icon name="captions-on" class="media-icon media-icon--captions-on"></media-icon>
            </media-captions-button>
            <media-menu id="captions-menu" side="top" align="center" class="media-surface media-popover media-menu media-menu--captions">
              <media-captions-radio-group class="media-menu__group">
                <template>
                  <media-menu-radio-item class="media-menu__item">
                    <bdi data-part="label" dir="auto"></bdi>
                    <media-menu-item-indicator force-mount class="media-menu__indicator">
                      <media-icon name="check" class="media-icon"></media-icon>
                    </media-menu-item-indicator>
                  </media-menu-radio-item>
                </template>
              </media-captions-radio-group>
            </media-menu>
            <media-tooltip id="captions-tooltip" side="top" class="media-surface media-tooltip">
              <media-tooltip-label></media-tooltip-label>
              <media-tooltip-shortcut class="media-tooltip__kbd"></media-tooltip-shortcut>
            </media-tooltip>

            <media-cast-button commandfor="cast-tooltip" class="media-button media-button--subtle media-button--icon media-button--cast">
              <media-icon name="cast-enter" class="media-icon media-icon--cast-enter"></media-icon>
              <media-icon name="cast-exit" class="media-icon media-icon--cast-exit"></media-icon>
            </media-cast-button>
            <media-tooltip id="cast-tooltip" side="top" class="media-surface media-tooltip">
              <media-tooltip-label></media-tooltip-label>
              <media-tooltip-shortcut class="media-tooltip__kbd"></media-tooltip-shortcut>
            </media-tooltip>

            <media-airplay-button commandfor="airplay-tooltip" class="media-button media-button--subtle media-button--icon media-button--airplay">
              <media-icon name="airplay-enter" class="media-icon media-icon--airplay-enter"></media-icon>
              <media-icon name="airplay-exit" class="media-icon media-icon--airplay-exit"></media-icon>
            </media-airplay-button>
            <media-tooltip id="airplay-tooltip" side="top" class="media-surface media-tooltip">
              <media-tooltip-label></media-tooltip-label>
              <media-tooltip-shortcut class="media-tooltip__kbd"></media-tooltip-shortcut>
            </media-tooltip>

            <media-pip-button commandfor="pip-tooltip" class="media-button media-button--subtle media-button--icon media-button--pip">
              <media-icon name="pip-enter" class="media-icon media-icon--pip-enter"></media-icon>
              <media-icon name="pip-exit" class="media-icon media-icon--pip-exit"></media-icon>
            </media-pip-button>
            <media-tooltip id="pip-tooltip" side="top" class="media-surface media-tooltip">
              <media-tooltip-label></media-tooltip-label>
              <media-tooltip-shortcut class="media-tooltip__kbd"></media-tooltip-shortcut>
            </media-tooltip>

            <media-fullscreen-button commandfor="fullscreen-tooltip" class="media-button media-button--subtle media-button--icon media-button--fullscreen">
              <media-icon name="fullscreen-enter" class="media-icon media-icon--fullscreen-enter"></media-icon>
              <media-icon name="fullscreen-exit" class="media-icon media-icon--fullscreen-exit"></media-icon>
            </media-fullscreen-button>
            <media-tooltip id="fullscreen-tooltip" side="top" class="media-surface media-tooltip">
              <media-tooltip-label></media-tooltip-label>
              <media-tooltip-shortcut class="media-tooltip__kbd"></media-tooltip-shortcut>
            </media-tooltip>

          </div>
        </div>
      </media-tooltip-group>
    </media-controls>

    <div class="media-overlay"></div>

    <!-- Hotkeys -->
    <media-hotkey keys="Space" action="togglePaused"></media-hotkey>
    <media-hotkey keys="k" action="togglePaused"></media-hotkey>
    <media-hotkey keys="m" action="toggleMuted"></media-hotkey>
    <media-hotkey keys="f" action="toggleFullscreen"></media-hotkey>
    <media-hotkey keys="c" action="toggleSubtitles"></media-hotkey>
    <media-hotkey keys="i" action="togglePictureInPicture"></media-hotkey>
    <media-hotkey keys="ArrowUp" action="volumeStep" value="0.05"></media-hotkey>
    <media-hotkey keys="ArrowDown" action="volumeStep" value="-0.05"></media-hotkey>

    <!-- Gestures -->
    <media-gesture type="tap" action="togglePaused" pointer="mouse" region="center"></media-gesture>
    <media-gesture type="tap" action="toggleControls" pointer="touch"></media-gesture>
    <media-gesture type="doubletap" action="toggleFullscreen" region="center"></media-gesture>

    <!-- Input Indicators -->
    <media-status-announcer class="media-sr-only"></media-status-announcer>
    <div class="media-input-indicator-overlay">
      <media-volume-indicator hidden class="media-surface media-volume-indicator">
        <media-volume-indicator-fill class="media-volume-indicator__content">
          <media-icon name="volume-high" class="media-icon media-icon--volume-high"></media-icon>
          <media-icon name="volume-low" class="media-icon media-icon--volume-low"></media-icon>
          <media-icon name="volume-off" class="media-icon media-icon--volume-off"></media-icon>
          <media-volume-indicator-value class="media-volume-indicator__value"></media-volume-indicator-value>
        </media-volume-indicator-fill>
      </media-volume-indicator>
      <media-status-indicator
        hidden
        actions="toggleSubtitles toggleFullscreen togglePictureInPicture"
        class="media-surface media-status-indicator media-status-indicator--state"
      >
        <div class="media-status-indicator__content">
          <media-icon name="captions-on" class="media-icon media-icon--captions-on"></media-icon>
          <media-icon name="captions-off" class="media-icon media-icon--captions-off"></media-icon>
          <media-icon name="fullscreen-enter" class="media-icon media-icon--fullscreen-enter"></media-icon>
          <media-icon name="fullscreen-exit" class="media-icon media-icon--fullscreen-exit"></media-icon>
          <media-icon name="pip-enter" class="media-icon media-icon--pip-enter"></media-icon>
          <media-icon name="pip-exit" class="media-icon media-icon--pip-exit"></media-icon>
          <media-status-indicator-value class="media-status-indicator__value"></media-status-indicator-value>
        </div>
      </media-status-indicator>
      <media-status-indicator hidden actions="togglePaused" class="media-status-indicator media-status-indicator--playback">
        <media-icon name="play" class="media-icon media-icon--play"></media-icon>
        <media-icon name="pause" class="media-icon media-icon--pause"></media-icon>
      </media-status-indicator>
    </div>
  </media-container>
</live-video-player>

Default live audio skin

<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/html@10.0.0-beta.31/cdn/live-audio-ui.js"></script>
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/html@10.0.0-beta.31/cdn/media/mux-audio.js"></script>
<link rel="stylesheet" href="./player.css">

<live-audio-player>
  <media-container class="media-default-skin media-default-skin--audio">
    <mux-audio src="https://stream.mux.com/v69RSHhFelSm4701snP22dYz2jICy4E4FUyk02rW4gxRM.m3u8"></mux-audio>

    <media-error-dialog class="media-error">
      <div class="media-error__dialog">
        <div class="media-error__content">
          <media-alert-dialog-title class="media-error__title"></media-alert-dialog-title>
          <media-alert-dialog-description class="media-error__description"></media-alert-dialog-description>
        </div>
        <div class="media-error__actions">
          <media-alert-dialog-close class="media-button media-button--subtle"></media-alert-dialog-close>
        </div>
      </div>
    </media-error-dialog>

    <div class="media-surface media-controls">
      <media-tooltip-group>
        <div class="media-button-group">
          <span class="media-button--play__wrapper">
            <media-buffering-indicator class="media-buffering-indicator">
              <media-icon name="spinner" class="media-icon"></media-icon>
            </media-buffering-indicator>
            <media-play-button commandfor="play-tooltip" class="media-button media-button--subtle media-button--icon media-button--play">
              <media-icon name="restart" class="media-icon media-icon--restart"></media-icon>
              <media-icon name="play" class="media-icon media-icon--play"></media-icon>
              <media-icon name="pause" class="media-icon media-icon--pause"></media-icon>
            </media-play-button>
            <media-tooltip id="play-tooltip" side="top" boundary="viewport" class="media-surface media-tooltip">
              <media-tooltip-label></media-tooltip-label>
              <media-tooltip-shortcut class="media-tooltip__kbd"></media-tooltip-shortcut>
            </media-tooltip>
          </span>

          <media-live-button class="media-button media-button--subtle media-button--live"></media-live-button>
        </div>

        <div class="media-time-controls" aria-hidden="true"></div>

        <div class="media-button-group">
          <media-mute-button commandfor="live-audio-volume-popover" class="media-button media-button--subtle media-button--icon media-button--mute">
            <media-icon name="volume-off" class="media-icon media-icon--volume-off"></media-icon>
            <media-icon name="volume-low" class="media-icon media-icon--volume-low"></media-icon>
            <media-icon name="volume-high" class="media-icon media-icon--volume-high"></media-icon>
          </media-mute-button>

          <media-popover id="live-audio-volume-popover" open-on-hover delay="200" close-delay="100" side="top" boundary="viewport" class="media-surface media-popover media-popover--volume">
            <media-volume-slider class="media-slider" orientation="vertical" thumb-alignment="edge">
              <media-slider-track class="media-slider__track">
                <media-slider-fill class="media-slider__fill"></media-slider-fill>
              </media-slider-track>
              <media-slider-thumb class="media-slider__thumb media-slider__thumb--persistent"></media-slider-thumb>
            </media-volume-slider>
          </media-popover>
        </div>
      </media-tooltip-group>
    </div>

    <!-- Hotkeys -->
    <media-hotkey keys="Space" action="togglePaused"></media-hotkey>
    <media-hotkey keys="k" action="togglePaused"></media-hotkey>
    <media-hotkey keys="m" action="toggleMuted"></media-hotkey>
    <media-hotkey keys="ArrowUp" action="volumeStep" value="0.05"></media-hotkey>
    <media-hotkey keys="ArrowDown" action="volumeStep" value="-0.05"></media-hotkey>
  </media-container>
</live-audio-player>

Minimal live video skin

<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/html@10.0.0-beta.31/cdn/live-video-minimal-ui.js"></script>
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/html@10.0.0-beta.31/cdn/media/hlsjs-video.js"></script>
<link rel="stylesheet" href="./player.css">

<live-video-player poster="https://image.mux.com/v69RSHhFelSm4701snP22dYz2jICy4E4FUyk02rW4gxRM/thumbnail.webp">
  <media-container class="media-minimal-skin media-minimal-skin--video">
    <hlsjs-video src="https://stream.mux.com/v69RSHhFelSm4701snP22dYz2jICy4E4FUyk02rW4gxRM.m3u8" playsinline></hlsjs-video>

    <media-poster>
      <img alt="" decoding="async" />
    </media-poster>

    <media-buffering-indicator class="media-buffering-indicator">
      <media-icon name="spinner" family="minimal" class="media-icon"></media-icon>
    </media-buffering-indicator>

    <media-error-dialog class="media-error">
      <div class="media-error__dialog">
        <div class="media-error__content">
          <media-alert-dialog-title class="media-error__title"></media-alert-dialog-title>
          <media-alert-dialog-description class="media-error__description"></media-alert-dialog-description>
        </div>
        <div class="media-error__actions">
          <media-alert-dialog-close class="media-button media-button--primary"></media-alert-dialog-close>
        </div>
      </div>
    </media-error-dialog>

    <media-controls class="media-controls">
      <media-tooltip-group>
        <div class="media-button-group">
          <media-play-button commandfor="play-tooltip" class="media-button media-button--subtle media-button--icon media-button--play">
            <media-icon name="restart" family="minimal" class="media-icon media-icon--restart"></media-icon>
            <media-icon name="play" family="minimal" class="media-icon media-icon--play"></media-icon>
            <media-icon name="pause" family="minimal" class="media-icon media-icon--pause"></media-icon>
          </media-play-button>
          <media-tooltip id="play-tooltip" side="top" class="media-tooltip">
            <media-tooltip-label></media-tooltip-label>
            <media-tooltip-shortcut class="media-tooltip__kbd"></media-tooltip-shortcut>
          </media-tooltip>

          <media-live-button class="media-button media-button--subtle media-button--live"></media-live-button>

          <media-mute-button commandfor="live-video-volume-popover" class="media-button media-button--subtle media-button--icon media-button--mute">
            <media-icon name="volume-off" family="minimal" class="media-icon media-icon--volume-off"></media-icon>
            <media-icon name="volume-low" family="minimal" class="media-icon media-icon--volume-low"></media-icon>
            <media-icon name="volume-high" family="minimal" class="media-icon media-icon--volume-high"></media-icon>
          </media-mute-button>

          <media-popover id="live-video-volume-popover" open-on-hover delay="200" close-delay="100" side="right" class="media-popover media-popover--volume">
            <media-volume-slider class="media-slider" orientation="horizontal" thumb-alignment="edge">
              <media-slider-track class="media-slider__track">
                <media-slider-fill class="media-slider__fill"></media-slider-fill>
              </media-slider-track>
              <media-slider-thumb class="media-slider__thumb media-slider__thumb--persistent"></media-slider-thumb>
            </media-volume-slider>
          </media-popover>
        </div>

        <div class="media-time-controls" aria-hidden="true"></div>

        <div class="media-button-group">
          <media-captions-button menu-for="captions-menu" commandfor="captions-tooltip" class="media-button media-button--subtle media-button--icon media-button--captions">
            <media-icon name="captions-off" family="minimal" class="media-icon media-icon--captions-off"></media-icon>
            <media-icon name="captions-on" family="minimal" class="media-icon media-icon--captions-on"></media-icon>
          </media-captions-button>
          <media-menu id="captions-menu" side="top" align="center" class="media-popover media-menu media-menu--captions">
            <media-captions-radio-group class="media-menu__group">
              <template>
                <media-menu-radio-item class="media-menu__item">
                  <bdi data-part="label" dir="auto"></bdi>
                  <media-menu-item-indicator force-mount class="media-menu__indicator">
                    <media-icon name="check" family="minimal" class="media-icon"></media-icon>
                  </media-menu-item-indicator>
                </media-menu-radio-item>
              </template>
            </media-captions-radio-group>
          </media-menu>
          <media-tooltip id="captions-tooltip" side="top" class="media-tooltip">
            <media-tooltip-label></media-tooltip-label>
            <media-tooltip-shortcut class="media-tooltip__kbd"></media-tooltip-shortcut>
          </media-tooltip>

          <media-cast-button commandfor="cast-tooltip" class="media-button media-button--subtle media-button--icon media-button--cast">
            <media-icon name="cast-enter" family="minimal" class="media-icon media-icon--cast-enter"></media-icon>
            <media-icon name="cast-exit" family="minimal" class="media-icon media-icon--cast-exit"></media-icon>
          </media-cast-button>
          <media-tooltip id="cast-tooltip" side="top" class="media-tooltip">
            <media-tooltip-label></media-tooltip-label>
            <media-tooltip-shortcut class="media-tooltip__kbd"></media-tooltip-shortcut>
          </media-tooltip>

          <media-airplay-button commandfor="airplay-tooltip" class="media-button media-button--subtle media-button--icon media-button--airplay">
            <media-icon name="airplay-enter" family="minimal" class="media-icon media-icon--airplay-enter"></media-icon>
            <media-icon name="airplay-exit" family="minimal" class="media-icon media-icon--airplay-exit"></media-icon>
          </media-airplay-button>
          <media-tooltip id="airplay-tooltip" side="top" class="media-tooltip">
            <media-tooltip-label></media-tooltip-label>
            <media-tooltip-shortcut class="media-tooltip__kbd"></media-tooltip-shortcut>
          </media-tooltip>

          <media-pip-button commandfor="pip-tooltip" class="media-button media-button--subtle media-button--icon media-button--pip">
            <media-icon name="pip-enter" family="minimal" class="media-icon media-icon--pip-enter"></media-icon>
            <media-icon name="pip-exit" family="minimal" class="media-icon media-icon--pip-exit"></media-icon>
          </media-pip-button>
          <media-tooltip id="pip-tooltip" side="top" class="media-tooltip">
            <media-tooltip-label></media-tooltip-label>
            <media-tooltip-shortcut class="media-tooltip__kbd"></media-tooltip-shortcut>
          </media-tooltip>

          <media-fullscreen-button commandfor="fullscreen-tooltip" class="media-button media-button--subtle media-button--icon media-button--fullscreen">
            <media-icon name="fullscreen-enter" family="minimal" class="media-icon media-icon--fullscreen-enter"></media-icon>
            <media-icon name="fullscreen-exit" family="minimal" class="media-icon media-icon--fullscreen-exit"></media-icon>
          </media-fullscreen-button>
          <media-tooltip id="fullscreen-tooltip" side="top" class="media-tooltip">
            <media-tooltip-label></media-tooltip-label>
            <media-tooltip-shortcut class="media-tooltip__kbd"></media-tooltip-shortcut>
          </media-tooltip>
        </div>
      </media-tooltip-group>
    </media-controls>

    <div class="media-overlay"></div>

    <!-- Hotkeys -->
    <media-hotkey keys="Space" action="togglePaused"></media-hotkey>
    <media-hotkey keys="k" action="togglePaused"></media-hotkey>
    <media-hotkey keys="m" action="toggleMuted"></media-hotkey>
    <media-hotkey keys="f" action="toggleFullscreen"></media-hotkey>
    <media-hotkey keys="c" action="toggleSubtitles"></media-hotkey>
    <media-hotkey keys="i" action="togglePictureInPicture"></media-hotkey>
    <media-hotkey keys="ArrowUp" action="volumeStep" value="0.05"></media-hotkey>
    <media-hotkey keys="ArrowDown" action="volumeStep" value="-0.05"></media-hotkey>

    <!-- Gestures -->
    <media-gesture type="tap" action="togglePaused" pointer="mouse" region="center"></media-gesture>
    <media-gesture type="tap" action="toggleControls" pointer="touch"></media-gesture>
    <media-gesture type="doubletap" action="toggleFullscreen" region="center"></media-gesture>

    <!-- Input Indicators -->
    <media-status-announcer class="media-sr-only"></media-status-announcer>
    <div class="media-input-indicator-overlay">
      <media-volume-indicator hidden class="media-volume-indicator">
        <media-volume-indicator-fill class="media-volume-indicator__content">
          <media-icon name="volume-high" family="minimal" class="media-icon media-icon--volume-high"></media-icon>
          <media-icon name="volume-low" family="minimal" class="media-icon media-icon--volume-low"></media-icon>
          <media-icon name="volume-off" family="minimal" class="media-icon media-icon--volume-off"></media-icon>
          <div class="media-volume-indicator__progress" aria-hidden="true"></div>
          <media-volume-indicator-value class="media-volume-indicator__value"></media-volume-indicator-value>
        </media-volume-indicator-fill>
      </media-volume-indicator>
      <media-status-indicator
        hidden
        actions="toggleSubtitles toggleFullscreen togglePictureInPicture"
        class="media-status-indicator media-status-indicator--state"
      >
        <div class="media-status-indicator__content">
          <media-icon name="captions-on" family="minimal" class="media-icon media-icon--captions-on"></media-icon>
          <media-icon name="captions-off" family="minimal" class="media-icon media-icon--captions-off"></media-icon>
          <media-icon name="fullscreen-enter" family="minimal" class="media-icon media-icon--fullscreen-enter"></media-icon>
          <media-icon name="fullscreen-exit" family="minimal" class="media-icon media-icon--fullscreen-exit"></media-icon>
          <media-icon name="pip-enter" family="minimal" class="media-icon media-icon--pip-enter"></media-icon>
          <media-icon name="pip-exit" family="minimal" class="media-icon media-icon--pip-exit"></media-icon>
          <media-status-indicator-value class="media-status-indicator__value"></media-status-indicator-value>
        </div>
      </media-status-indicator>
      <media-status-indicator hidden actions="togglePaused" class="media-status-indicator media-status-indicator--playback">
        <media-icon name="play" family="minimal" class="media-icon media-icon--play"></media-icon>
        <media-icon name="pause" family="minimal" class="media-icon media-icon--pause"></media-icon>
      </media-status-indicator>
    </div>
  </media-container>
</live-video-player>

Minimal live audio skin

<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/html@10.0.0-beta.31/cdn/live-audio-minimal-ui.js"></script>
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/html@10.0.0-beta.31/cdn/media/mux-audio.js"></script>
<link rel="stylesheet" href="./player.css">

<live-audio-player>
  <media-container class="media-minimal-skin media-minimal-skin--audio">
    <mux-audio src="https://stream.mux.com/v69RSHhFelSm4701snP22dYz2jICy4E4FUyk02rW4gxRM.m3u8"></mux-audio>

    <media-error-dialog class="media-error">
      <div class="media-error__dialog">
        <div class="media-error__content">
          <media-alert-dialog-title class="media-error__title"></media-alert-dialog-title>
          <media-alert-dialog-description class="media-error__description"></media-alert-dialog-description>
        </div>
        <div class="media-error__actions">
          <media-alert-dialog-close class="media-button media-button--subtle"></media-alert-dialog-close>
        </div>
      </div>
    </media-error-dialog>

    <div class="media-controls">
      <media-tooltip-group>
        <div class="media-button-group">
          <span class="media-button--play__wrapper">
            <media-buffering-indicator class="media-buffering-indicator">
              <media-icon name="spinner" family="minimal" class="media-icon"></media-icon>
            </media-buffering-indicator>
            <media-play-button commandfor="play-tooltip" class="media-button media-button--subtle media-button--icon media-button--play">
              <media-icon name="restart" family="minimal" class="media-icon media-icon--restart"></media-icon>
              <media-icon name="play" family="minimal" class="media-icon media-icon--play"></media-icon>
              <media-icon name="pause" family="minimal" class="media-icon media-icon--pause"></media-icon>
            </media-play-button>
            <media-tooltip id="play-tooltip" side="top" boundary="viewport" class="media-tooltip">
              <media-tooltip-label></media-tooltip-label>
              <media-tooltip-shortcut class="media-tooltip__kbd"></media-tooltip-shortcut>
            </media-tooltip>
          </span>

          <media-live-button class="media-button media-button--subtle media-button--live"></media-live-button>
        </div>

        <div class="media-time-controls" aria-hidden="true"></div>

        <div class="media-button-group">
          <media-mute-button commandfor="live-audio-volume-popover" class="media-button media-button--subtle media-button--icon media-button--mute">
            <media-icon name="volume-off" family="minimal" class="media-icon media-icon--volume-off"></media-icon>
            <media-icon name="volume-low" family="minimal" class="media-icon media-icon--volume-low"></media-icon>
            <media-icon name="volume-high" family="minimal" class="media-icon media-icon--volume-high"></media-icon>
          </media-mute-button>

          <media-popover id="live-audio-volume-popover" open-on-hover delay="200" close-delay="100" side="left" boundary="viewport" class="media-popover media-popover--volume">
            <media-volume-slider class="media-slider" orientation="horizontal" thumb-alignment="edge">
              <media-slider-track class="media-slider__track">
                <media-slider-fill class="media-slider__fill"></media-slider-fill>
              </media-slider-track>
              <media-slider-thumb class="media-slider__thumb media-slider__thumb--persistent"></media-slider-thumb>
            </media-volume-slider>
          </media-popover>
        </div>
      </media-tooltip-group>
    </div>

    <!-- Hotkeys -->
    <media-hotkey keys="Space" action="togglePaused"></media-hotkey>
    <media-hotkey keys="k" action="togglePaused"></media-hotkey>
    <media-hotkey keys="m" action="toggleMuted"></media-hotkey>
    <media-hotkey keys="ArrowUp" action="volumeStep" value="0.05"></media-hotkey>
    <media-hotkey keys="ArrowDown" action="volumeStep" value="-0.05"></media-hotkey>
  </media-container>
</live-audio-player>