The Open Source Player
for the Web
For over 15 years, Video.js has been the world's web video player. Now rebuilt in v10 for modern development and performance.
Assemble your player
Feel at home with your framework, skin, and media source
import { VideoPlayer, VideoSkin, Video } from '@videojs/react/video';
import '@videojs/react/video/skin.css';
export function App() {
return (
<VideoPlayer poster="https://image.mux.com/BV3YZtogl89mg9VcNBhhnHm02Y34zI1nlMuMQfAbl3dM/thumbnail.webp">
<VideoSkin>
<Video src="https://stream.mux.com/BV3YZtogl89mg9VcNBhhnHm02Y34zI1nlMuMQfAbl3dM/highest.mp4" playsInline />
</VideoSkin>
</VideoPlayer>
);
}<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/html@10.0.0-beta.32/cdn/video.js"></script>
<video-player>
<video-skin>
<video src="https://stream.mux.com/BV3YZtogl89mg9VcNBhhnHm02Y34zI1nlMuMQfAbl3dM/highest.mp4" playsinline></video>
</video-skin>
</video-player><script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/html@10.0.0-beta.32/cdn/video-minimal.js"></script>
<video-player>
<video-minimal-skin>
<video src="https://stream.mux.com/BV3YZtogl89mg9VcNBhhnHm02Y34zI1nlMuMQfAbl3dM/highest.mp4" playsinline></video>
</video-minimal-skin>
</video-player>import { VideoPlayer, MinimalVideoSkin, Video } from '@videojs/react/video';
import '@videojs/react/video/minimal-skin.css';
export function App() {
return (
<VideoPlayer poster="https://image.mux.com/BV3YZtogl89mg9VcNBhhnHm02Y34zI1nlMuMQfAbl3dM/thumbnail.webp">
<MinimalVideoSkin>
<Video src="https://stream.mux.com/BV3YZtogl89mg9VcNBhhnHm02Y34zI1nlMuMQfAbl3dM/highest.mp4" playsInline />
</MinimalVideoSkin>
</VideoPlayer>
);
}Take full control
Make your player truly your own with fully-editable components
/** @jsxImportSource react */
import './skin.css';
import '../../styles/theme.css';
import type { ComponentProps, ReactNode } from 'react';
import { cn } from '@/components/videojs/lib/resolve-class-name';
import { BufferingIndicator } from '@/components/videojs/ui/buffering-indicator';
import { Container } from '@/components/videojs/ui/container';
import { ErrorDialog } from '@/components/videojs/ui/error-dialog';
import { Poster } from '@/components/videojs/ui/poster';
import { DefaultVideoControls } from './controls';
import { VideoGestures } from './gestures';
import { VideoHotkeys } from './hotkeys';
import { VideoStatusIndicators } from './status-indicators';
export interface DefaultVideoSkinProps extends Omit<NonNullable<ComponentProps<typeof Container>>, 'children'> {
children?: ReactNode;
poster?: string | NonNullable<ComponentProps<typeof Poster>>['children'];
}
export function DefaultVideoSkin({ children, className, poster, ...props }: DefaultVideoSkinProps = {}) {
const isPosterString = typeof poster === 'string';
return (
<Container className={cn('media-skin media-skin--video', className)} {...props}>
{children}
<Poster src={isPosterString ? poster : undefined}>{isPosterString ? undefined : poster}</Poster>
<BufferingIndicator />
<ErrorDialog />
<DefaultVideoControls />
<VideoHotkeys />
<VideoGestures />
<VideoStatusIndicators />
</Container>
);
}
@layer components {
@scope (.media-skin--video) {
.media-controls {
padding: calc(var(--media-spacing) * 1);
color: #fff;
transition-property: filter, opacity, scale, translate;
transition-duration: calc(var(--media-controls-transition-duration) / 2);
--media-popover-boundary-offset: 0.75rem;
--media-popover-side-offset: calc(var(--media-spacing) * 3);
--media-tooltip-boundary-offset: var(--media-popover-boundary-offset);
--media-tooltip-side-offset: var(--media-popover-side-offset);
text-shadow: 0 1px 0 var(--media-shadow-current-color);
transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
display: contents;
}
@container media-root (width >= 32rem) {
.media-controls {
inset-inline: calc(var(--media-spacing) * 2);
bottom: calc(var(--media-spacing) * 2);
z-index: 10;
border-radius: var(--media-control-radius);
background-color: var(--media-popover);
color: var(--media-popover-foreground);
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 0 calc(1px + 0px) var(--media-border),
0 0 #0000;
box-shadow: var(--media-shadow-sm);
backdrop-filter: blur(16px) saturate(150%);
align-items: center;
display: flex;
position: absolute;
}
.media-controls:not([data-visible]) {
pointer-events: none;
opacity: 0;
transition-duration: var(--media-controls-transition-duration);
}
.media-controls:after {
pointer-events: none;
inset: calc(var(--media-spacing) * 0);
z-index: 10;
border-radius: inherit;
content: "";
position: absolute;
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 #0000,
inset 0 1px #ffffff1a,
inset 0 0 0 1px #ffffff0d;
}
@media (prefers-reduced-motion: no-preference) {
.media-controls:not([data-visible]) {
translate: 0 calc(var(--media-spacing) * 1);
scale: 0.95;
}
}
@media (prefers-contrast: more) {
.media-controls {
background-color: var(--media-background);
backdrop-filter: none;
}
.media-controls:after {
content: "";
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 #0000,
inset 0 1px #ffffff40,
inset 0 0 0 1px #ffffff20;
}
}
}
@container media-root (width >= 42rem) {
.media-controls {
inset-inline: calc(var(--media-spacing) * 3);
bottom: calc(var(--media-spacing) * 3);
}
}
@container media-root (width >= 32rem) {
@media (forced-colors: active) {
.media-controls {
color: canvastext;
background-color: canvas;
}
.media-controls:after {
content: "";
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 #0000,
inset 0 1px canvastext,
inset 0 0 0 1px canvastext;
}
}
@media (pointer: fine) {
@media (prefers-reduced-motion: no-preference) {
.media-controls:not([data-visible]) {
filter: blur(8px);
}
}
}
@media (prefers-reduced-transparency: reduce) {
.media-controls {
background-color: var(--media-background);
backdrop-filter: none;
}
.media-controls:after {
content: "";
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 #0000,
inset 0 1px #ffffff40,
inset 0 0 0 1px #ffffff20;
}
}
}
.media-controls__backdrop {
pointer-events: none;
inset: calc(var(--media-spacing) * 0);
z-index: 10;
border-radius: inherit;
transition-property: opacity;
transition-duration: var(--media-controls-transition-duration);
background-image: linear-gradient(
to top,
oklab(0% none none / 0.5) 0%,
oklab(0% none none / 0.3) 25%,
#0000 100%
);
transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
position: absolute;
}
.media-controls__backdrop:not([data-visible]) {
opacity: 0;
}
@container media-root (width < 32rem) {
.media-controls-captions-button {
display: none;
}
}
.media-controls-primary {
inset-inline: calc(var(--media-spacing) * 2);
bottom: calc(var(--media-spacing) * 2);
z-index: 10;
transform-origin: bottom;
border-radius: var(--media-control-radius);
background-color: var(--media-popover);
padding: calc(var(--media-spacing) * 1);
color: var(--media-popover-foreground);
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 0 calc(1px + 0px) var(--media-border),
0 0 #0000;
box-shadow: var(--media-shadow-sm);
backdrop-filter: blur(16px) saturate(150%);
transition-property: filter, opacity, scale, translate;
transition-duration: calc(var(--media-controls-transition-duration) / 2);
align-items: center;
transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
display: flex;
position: absolute;
}
.media-controls-primary:after {
pointer-events: none;
inset: calc(var(--media-spacing) * 0);
z-index: 10;
border-radius: inherit;
content: "";
position: absolute;
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 #0000,
inset 0 1px #ffffff1a,
inset 0 0 0 1px #ffffff0d;
}
@media (prefers-contrast: more) {
.media-controls-primary {
background-color: var(--media-background);
backdrop-filter: none;
}
.media-controls-primary:after {
content: "";
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 #0000,
inset 0 1px #ffffff40,
inset 0 0 0 1px #ffffff20;
}
}
@container media-root (width < 32rem) {
@scope (.media-controls) {
&:not([data-visible]) .media-controls-primary {
pointer-events: none;
opacity: 0;
transition-duration: var(--media-controls-transition-duration);
}
}
@media (prefers-reduced-motion: no-preference) {
@scope (.media-controls) {
&:not([data-visible]) .media-controls-primary {
translate: 0 calc(var(--media-spacing) * 1);
scale: 0.95;
}
}
}
}
@container media-root (width >= 32rem) {
.media-controls-primary {
backdrop-filter: none;
background-color: #0000;
border-radius: 0;
display: contents;
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0,
0 0 #0000;
}
.media-controls-primary:after {
content: "";
display: none;
}
}
@media (forced-colors: active) {
.media-controls-primary {
color: canvastext;
background-color: canvas;
}
.media-controls-primary:after {
content: "";
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 #0000,
inset 0 1px canvastext,
inset 0 0 0 1px canvastext;
}
}
@container media-root (width < 32rem) {
@media (pointer: fine) {
@media (prefers-reduced-motion: no-preference) {
@scope (.media-controls) {
&:not([data-visible]) .media-controls-primary {
filter: blur(8px);
}
}
}
}
}
@media (prefers-reduced-transparency: reduce) {
.media-controls-primary {
background-color: var(--media-background);
backdrop-filter: none;
}
.media-controls-primary:after {
content: "";
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 #0000,
inset 0 1px #ffffff40,
inset 0 0 0 1px #ffffff20;
}
}
.media-controls-secondary {
top: calc(var(--media-spacing) * 2);
right: calc(var(--media-spacing) * 2);
z-index: 10;
transform-origin: top;
border-radius: var(--media-control-radius);
background-color: var(--media-popover);
padding: calc(var(--media-spacing) * 1);
color: var(--media-popover-foreground);
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 0 calc(1px + 0px) var(--media-border),
0 0 #0000;
box-shadow: var(--media-shadow-sm);
backdrop-filter: blur(16px) saturate(150%);
transition-property: filter, opacity, scale, translate;
transition-duration: calc(var(--media-controls-transition-duration) / 2);
align-items: center;
gap: 1px;
transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
display: flex;
position: absolute;
}
.media-controls-secondary:after {
pointer-events: none;
inset: calc(var(--media-spacing) * 0);
z-index: 10;
border-radius: inherit;
content: "";
position: absolute;
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 #0000,
inset 0 1px #ffffff1a,
inset 0 0 0 1px #ffffff0d;
}
@media (prefers-contrast: more) {
.media-controls-secondary {
background-color: var(--media-background);
backdrop-filter: none;
}
.media-controls-secondary:after {
content: "";
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 #0000,
inset 0 1px #ffffff40,
inset 0 0 0 1px #ffffff20;
}
}
@container media-root (width < 32rem) {
@scope (.media-controls) {
&:not([data-visible]) .media-controls-secondary {
pointer-events: none;
opacity: 0;
transition-duration: var(--media-controls-transition-duration);
}
}
@media (prefers-reduced-motion: no-preference) {
@scope (.media-controls) {
&:not([data-visible]) .media-controls-secondary {
translate: 0 calc(var(--media-spacing) * -1);
scale: 0.95;
}
}
}
}
@container media-root (width >= 32rem) {
.media-controls-secondary {
padding: calc(var(--media-spacing) * 0);
backdrop-filter: none;
background-color: #0000;
border-radius: 0;
display: flex;
position: static;
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0,
0 0 #0000;
}
.media-controls-secondary:after {
content: "";
display: none;
}
}
@media (forced-colors: active) {
.media-controls-secondary {
color: canvastext;
background-color: canvas;
}
.media-controls-secondary:after {
content: "";
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 #0000,
inset 0 1px canvastext,
inset 0 0 0 1px canvastext;
}
}
@container media-root (width < 32rem) {
@media (pointer: fine) {
@media (prefers-reduced-motion: no-preference) {
@scope (.media-controls) {
&:not([data-visible]) .media-controls-secondary {
filter: blur(8px);
}
}
}
}
}
@media (prefers-reduced-transparency: reduce) {
.media-controls-secondary {
background-color: var(--media-background);
backdrop-filter: none;
}
.media-controls-secondary:after {
content: "";
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 #0000,
inset 0 1px #ffffff40,
inset 0 0 0 1px #ffffff20;
}
}
@container media-root (width >= 32rem) {
.media-controls-settings-button {
margin-inline-start: 1px;
}
}
.media-controls-volume-button {
margin-inline-start: 1px;
}
.media-time-current-value {
font-variant-numeric: tabular-nums;
}
.media-time-remaining-value {
cursor: pointer;
font-variant-numeric: tabular-nums;
outline-offset: -2px;
border-radius: 0.25rem;
outline: 2px solid #0000;
transition-property: outline-color, outline-offset;
transition-duration: 0.1s;
transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
}
.media-time-remaining-value:focus-visible {
outline-offset: 2px;
outline-color: #fff;
}
@container media-time (width < 16rem) {
.media-time-remaining-value {
display: none;
}
}
.media-time-slider-group {
align-items: center;
gap: calc(var(--media-spacing) * 2.5);
padding-inline: calc(var(--media-spacing) * 2);
flex: 1;
display: flex;
container: media-time / inline-size;
}
@container media-root (width >= 32rem) {
.media-time-slider-group {
padding-inline: calc(var(--media-spacing) * 3);
}
}
}
@scope (.media-skin--video) {
.media-video-status-indicators {
pointer-events: none;
inset: calc(var(--media-spacing) * 0);
color: #fff;
grid-template-columns: repeat(3, minmax(0, 1fr));
place-items: center;
display: grid;
position: absolute;
}
}
}
<media-container class="media-container media-skin media-skin--video">
<!-- Add a compatible media element here. -->
<media-poster class="media-poster">
<img alt="" decoding="async">
</img>
</media-poster>
<media-buffering-indicator class="media-buffering-indicator">
<span class="contents theme-minimal:hidden">
<media-icon name="spinner" class="media-buffering-indicator-spinner-icon">
</media-icon>
</span>
<span class="hidden theme-minimal:contents">
<media-icon family="minimal" name="spinner" class="media-buffering-indicator-spinner-icon">
</media-icon>
</span>
</media-buffering-indicator>
<media-error-dialog class="media-dialog-root">
<media-dialog-backdrop class="media-dialog-backdrop">
</media-dialog-backdrop>
<media-dialog-popup class="media-dialog-popup">
<div class="media-dialog-content">
<media-dialog-title class="media-dialog-title">
</media-dialog-title>
<media-dialog-description class="media-dialog-description">
</media-dialog-description>
</div>
<div class="media-dialog-actions">
<media-dialog-close class="media-button media-dialog-close">
</media-dialog-close>
</div>
</media-dialog-popup>
</media-error-dialog>
<media-controls>
<media-controls-backdrop class="media-controls__backdrop">
</media-controls-backdrop>
<media-controls-content class="media-controls media-controls">
<media-tooltip-group>
<media-controls-group class="media-controls-primary">
<media-play-button class="media-button media-play-button" id="vjs-f7OK7BC5-ev-trigger">
<span class="contents theme-minimal:hidden">
<media-icon name="restart" class="media-button-icon media-play-button-restart-icon">
</media-icon>
</span>
<span class="hidden theme-minimal:contents">
<media-icon family="minimal" name="restart" class="media-button-icon media-play-button-restart-icon">
</media-icon>
</span>
<span class="contents theme-minimal:hidden">
<media-icon name="play" class="media-button-icon media-play-button-play-icon">
</media-icon>
</span>
<span class="hidden theme-minimal:contents">
<media-icon family="minimal" name="play" class="media-button-icon media-play-button-play-icon">
</media-icon>
</span>
<span class="contents theme-minimal:hidden">
<media-icon name="pause" class="media-button-icon media-play-button-pause-icon">
</media-icon>
</span>
<span class="hidden theme-minimal:contents">
<media-icon family="minimal" name="pause" class="media-button-icon media-play-button-pause-icon">
</media-icon>
</span>
</media-play-button>
<media-tooltip trigger="vjs-f7OK7BC5-ev-trigger" side="top" class="media-tooltip">
<media-tooltip-label>
</media-tooltip-label>
<media-tooltip-shortcut class="media-tooltip-shortcut">
</media-tooltip-shortcut>
</media-tooltip>
<media-mute-button class="media-button media-mute-button media-controls-volume-button" commandfor="vjs-eEbK5-VC-q1-popup" id="vjs-f7OK7BC5-ev-2-trigger">
<span class="contents theme-minimal:hidden">
<media-icon name="volume-off" class="media-button-icon media-mute-button-off-icon">
</media-icon>
</span>
<span class="hidden theme-minimal:contents">
<media-icon family="minimal" name="volume-off" class="media-button-icon media-mute-button-off-icon">
</media-icon>
</span>
<span class="contents theme-minimal:hidden">
<media-icon name="volume-low" class="media-button-icon media-mute-button-low-icon">
</media-icon>
</span>
<span class="hidden theme-minimal:contents">
<media-icon family="minimal" name="volume-low" class="media-button-icon media-mute-button-low-icon">
</media-icon>
</span>
<span class="contents theme-minimal:hidden">
<media-icon name="volume-high" class="media-button-icon media-mute-button-high-icon">
</media-icon>
</span>
<span class="hidden theme-minimal:contents">
<media-icon family="minimal" name="volume-high" class="media-button-icon media-mute-button-high-icon">
</media-icon>
</span>
</media-mute-button>
<media-tooltip trigger="vjs-f7OK7BC5-ev-2-trigger" delay="0" disabled sticky side="top" class="media-tooltip">
<media-tooltip-label>
</media-tooltip-label>
<media-tooltip-shortcut class="media-tooltip-shortcut">
</media-tooltip-shortcut>
</media-tooltip>
<media-volume-popover open-on-hover delay="200" close-delay="100" side="top" class="media-volume-popover" id="vjs-eEbK5-VC-q1-popup">
<media-volume-slider class="media-slider media-volume-slider" thumb-alignment="edge" orientation="vertical">
<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-volume-slider-thumb">
</media-slider-thumb>
</media-volume-slider>
</media-volume-popover>
<media-controls-group class="media-time-slider-group">
<media-time class="media-time-current-value" type="current">
</media-time>
<media-time-slider class="media-slider media-time-slider">
<media-time-slider-chapters class="media-time-slider-chapters">
<template>
<div class="media-time-slider-chapter">
<media-slider-track class="media-slider-track media-time-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-time-slider-thumb">
</media-slider-thumb>
<media-slider-preview class="media-slider-preview" overflow="visible">
<div class="media-slider-thumbnail">
<media-slider-thumbnail class="media-slider-thumbnail-image">
</media-slider-thumbnail>
<span class="contents theme-minimal:hidden">
<media-icon name="spinner" class="media-slider-thumbnail-spinner-icon">
</media-icon>
</span>
<span class="hidden theme-minimal:contents">
<media-icon family="minimal" name="spinner" class="media-slider-thumbnail-spinner-icon">
</media-icon>
</span>
</div>
<div class="media-time-slider-preview-content">
<media-time-slider-chapter-title class="media-time-slider-chapter-title">
</media-time-slider-chapter-title>
<media-slider-value class="media-time-slider-value" type="pointer">
</media-slider-value>
</div>
</media-slider-preview>
</media-time-slider>
<media-time class="media-time-remaining-value" type="remaining" toggle>
</media-time>
</media-controls-group>
<media-captions-button class="media-button media-captions-button media-controls-captions-button" id="vjs-f7OK7BC5-ev-3-trigger">
<span class="contents theme-minimal:hidden">
<media-icon name="captions-off" class="media-button-icon media-captions-button-off-icon">
</media-icon>
</span>
<span class="hidden theme-minimal:contents">
<media-icon family="minimal" name="captions-off" class="media-button-icon media-captions-button-off-icon">
</media-icon>
</span>
<span class="contents theme-minimal:hidden">
<media-icon name="captions-on" class="media-button-icon media-captions-button-on-icon">
</media-icon>
</span>
<span class="hidden theme-minimal:contents">
<media-icon family="minimal" name="captions-on" class="media-button-icon media-captions-button-on-icon">
</media-icon>
</span>
</media-captions-button>
<media-tooltip trigger="vjs-f7OK7BC5-ev-3-trigger" side="top" class="media-tooltip">
<media-tooltip-label>
</media-tooltip-label>
<media-tooltip-shortcut class="media-tooltip-shortcut">
</media-tooltip-shortcut>
</media-tooltip>
<button commandfor="vjs--E09Qb0r-t2-popup" class="media-button media-settings-menu-trigger" id="vjs-f7OK7BC5-ev-4-trigger">
<span class="contents theme-minimal:hidden">
<media-icon name="gear" class="media-button-icon media-settings-menu-trigger-icon">
</media-icon>
</span>
<span class="hidden theme-minimal:contents">
<media-icon family="minimal" name="gear" class="media-button-icon media-settings-menu-trigger-icon">
</media-icon>
</span>
<media-text class="media-settings-menu-trigger-label" token="menu.settings">Settings</media-text>
</button>
<media-tooltip trigger="vjs-f7OK7BC5-ev-4-trigger" side="top" class="media-tooltip">
<media-text token="menu.settings">Settings</media-text>
</media-tooltip>
<media-menu side="top" align="center" class="media-menu-popup media-controls-settings-button" id="vjs--E09Qb0r-t2-popup">
<media-menu-content class="media-menu-content">
<media-menu-item commandfor="vjs-bOPjz1Ka-qh-content" class="media-menu-trigger-item">
<span class="contents theme-minimal:hidden">
<media-icon name="switches" class="media-menu-trigger-item-icon">
</media-icon>
</span>
<span class="hidden theme-minimal:contents">
<media-icon family="minimal" name="switches" class="media-menu-trigger-item-icon">
</media-icon>
</span>
<media-text token="menu.quality">Quality</media-text>
<span class="media-menu-hint">
<span data-part="value" class="media-menu-hint-label">
</span>
<span class="contents theme-minimal:hidden">
<media-icon name="chevron" class="media-menu-forward-chevron">
</media-icon>
</span>
<span class="hidden theme-minimal:contents">
<media-icon family="minimal" name="chevron" class="media-menu-forward-chevron">
</media-icon>
</span>
</span>
</media-menu-item>
<media-menu-content class="media-menu-content" id="vjs-bOPjz1Ka-qh-content">
<media-menu-item class="media-menu-back-item">
<span class="contents theme-minimal:hidden">
<media-icon name="chevron" class="media-menu-back-chevron">
</media-icon>
</span>
<span class="hidden theme-minimal:contents">
<media-icon family="minimal" name="chevron" class="media-menu-back-chevron">
</media-icon>
</span>
<media-text token="menu.quality">Quality</media-text>
</media-menu-item>
<media-menu-separator class="media-menu-separator">
</media-menu-separator>
<media-quality-radio-group class="media-menu-radio-group">
<template>
<media-menu-radio-item class="media-menu-radio-item">
<span>
<span data-part="label">
</span>
<sup data-part="tier" class="media-menu-tier">
</sup>
</span>
<span data-part="badge" class="media-menu-badge">
</span>
<media-menu-item-indicator force-mount class="media-menu-item-indicator">
<span class="contents theme-minimal:hidden">
<media-icon name="check" class="media-menu-radio-item-icon">
</media-icon>
</span>
<span class="hidden theme-minimal:contents">
<media-icon family="minimal" name="check" class="media-menu-radio-item-icon">
</media-icon>
</span>
</media-menu-item-indicator>
</media-menu-radio-item>
</template>
</media-quality-radio-group>
</media-menu-content>
<media-menu-item commandfor="vjs-DPaa0Ln5-q8-content" class="media-menu-trigger-item">
<span class="contents theme-minimal:hidden">
<media-icon name="speech" class="media-menu-trigger-item-icon">
</media-icon>
</span>
<span class="hidden theme-minimal:contents">
<media-icon family="minimal" name="speech" class="media-menu-trigger-item-icon">
</media-icon>
</span>
<media-text token="menu.audio">Audio</media-text>
<span class="media-menu-hint">
<span data-part="value" class="media-menu-hint-label">
</span>
<span class="contents theme-minimal:hidden">
<media-icon name="chevron" class="media-menu-forward-chevron">
</media-icon>
</span>
<span class="hidden theme-minimal:contents">
<media-icon family="minimal" name="chevron" class="media-menu-forward-chevron">
</media-icon>
</span>
</span>
</media-menu-item>
<media-menu-content class="media-menu-content" id="vjs-DPaa0Ln5-q8-content">
<media-menu-item class="media-menu-back-item">
<span class="contents theme-minimal:hidden">
<media-icon name="chevron" class="media-menu-back-chevron">
</media-icon>
</span>
<span class="hidden theme-minimal:contents">
<media-icon family="minimal" name="chevron" class="media-menu-back-chevron">
</media-icon>
</span>
<media-text token="menu.audio">Audio</media-text>
</media-menu-item>
<media-menu-separator class="media-menu-separator">
</media-menu-separator>
<media-audio-track-radio-group class="media-menu-radio-group">
<template>
<media-menu-radio-item class="media-menu-radio-item">
<span data-part="label">
</span>
<media-menu-item-indicator force-mount class="media-menu-item-indicator">
<span class="contents theme-minimal:hidden">
<media-icon name="check" class="media-menu-radio-item-icon">
</media-icon>
</span>
<span class="hidden theme-minimal:contents">
<media-icon family="minimal" name="check" class="media-menu-radio-item-icon">
</media-icon>
</span>
</media-menu-item-indicator>
</media-menu-radio-item>
</template>
</media-audio-track-radio-group>
</media-menu-content>
<media-menu-item commandfor="vjs-mT1s8PiA-qf-content" class="media-menu-trigger-item">
<span class="contents theme-minimal:hidden">
<media-icon name="speed" class="media-menu-trigger-item-icon">
</media-icon>
</span>
<span class="hidden theme-minimal:contents">
<media-icon family="minimal" name="speed" class="media-menu-trigger-item-icon">
</media-icon>
</span>
<media-text token="menu.speed">Speed</media-text>
<span class="media-menu-hint">
<span data-part="value" class="media-menu-hint-label">
</span>
<span class="contents theme-minimal:hidden">
<media-icon name="chevron" class="media-menu-forward-chevron">
</media-icon>
</span>
<span class="hidden theme-minimal:contents">
<media-icon family="minimal" name="chevron" class="media-menu-forward-chevron">
</media-icon>
</span>
</span>
</media-menu-item>
<media-menu-content class="media-menu-content" id="vjs-mT1s8PiA-qf-content">
<media-menu-item class="media-menu-back-item">
<span class="contents theme-minimal:hidden">
<media-icon name="chevron" class="media-menu-back-chevron">
</media-icon>
</span>
<span class="hidden theme-minimal:contents">
<media-icon family="minimal" name="chevron" class="media-menu-back-chevron">
</media-icon>
</span>
<media-text token="menu.speed">Speed</media-text>
</media-menu-item>
<media-menu-separator class="media-menu-separator">
</media-menu-separator>
<media-playback-rate-radio-group class="media-menu-radio-group">
<template>
<media-menu-radio-item class="media-menu-radio-item">
<span data-part="label">
</span>
<media-menu-item-indicator force-mount class="media-menu-item-indicator">
<span class="contents theme-minimal:hidden">
<media-icon name="check" class="media-menu-radio-item-icon">
</media-icon>
</span>
<span class="hidden theme-minimal:contents">
<media-icon family="minimal" name="check" class="media-menu-radio-item-icon">
</media-icon>
</span>
</media-menu-item-indicator>
</media-menu-radio-item>
</template>
</media-playback-rate-radio-group>
</media-menu-content>
<media-menu-item commandfor="vjs-YTqj-PjJ-rk-content" class="media-menu-trigger-item">
<span class="contents theme-minimal:hidden">
<media-icon name="captions-off" class="media-menu-trigger-item-icon">
</media-icon>
</span>
<span class="hidden theme-minimal:contents">
<media-icon family="minimal" name="captions-off" class="media-menu-trigger-item-icon">
</media-icon>
</span>
<media-text token="menu.captions">Captions</media-text>
<span class="media-menu-hint">
<span data-part="value" class="media-menu-hint-label">
</span>
<span class="contents theme-minimal:hidden">
<media-icon name="chevron" class="media-menu-forward-chevron">
</media-icon>
</span>
<span class="hidden theme-minimal:contents">
<media-icon family="minimal" name="chevron" class="media-menu-forward-chevron">
</media-icon>
</span>
</span>
</media-menu-item>
<media-menu-content class="media-menu-content" id="vjs-YTqj-PjJ-rk-content">
<media-menu-item class="media-menu-back-item">
<span class="contents theme-minimal:hidden">
<media-icon name="chevron" class="media-menu-back-chevron">
</media-icon>
</span>
<span class="hidden theme-minimal:contents">
<media-icon family="minimal" name="chevron" class="media-menu-back-chevron">
</media-icon>
</span>
<media-text token="menu.captions">Captions</media-text>
</media-menu-item>
<media-menu-separator class="media-menu-separator">
</media-menu-separator>
<media-captions-radio-group class="media-menu-radio-group">
<template>
<media-menu-radio-item class="media-menu-radio-item">
<span data-part="label">
</span>
<media-menu-item-indicator force-mount class="media-menu-item-indicator">
<span class="contents theme-minimal:hidden">
<media-icon name="check" class="media-menu-radio-item-icon">
</media-icon>
</span>
<span class="hidden theme-minimal:contents">
<media-icon family="minimal" name="check" class="media-menu-radio-item-icon">
</media-icon>
</span>
</media-menu-item-indicator>
</media-menu-radio-item>
</template>
</media-captions-radio-group>
</media-menu-content>
</media-menu-content>
</media-menu>
</media-controls-group>
<media-controls-group class="media-controls-secondary">
<media-cast-button class="media-button media-cast-button" id="vjs-f7OK7BC5-ev-5-trigger">
<span class="contents theme-minimal:hidden">
<media-icon name="cast-enter" class="media-button-icon media-cast-button-enter-icon">
</media-icon>
</span>
<span class="hidden theme-minimal:contents">
<media-icon family="minimal" name="cast-enter" class="media-button-icon media-cast-button-enter-icon">
</media-icon>
</span>
<span class="contents theme-minimal:hidden">
<media-icon name="cast-exit" class="media-button-icon media-cast-button-exit-icon">
</media-icon>
</span>
<span class="hidden theme-minimal:contents">
<media-icon family="minimal" name="cast-exit" class="media-button-icon media-cast-button-exit-icon">
</media-icon>
</span>
</media-cast-button>
<media-tooltip trigger="vjs-f7OK7BC5-ev-5-trigger" side="top" class="media-tooltip">
<media-tooltip-label>
</media-tooltip-label>
<media-tooltip-shortcut class="media-tooltip-shortcut">
</media-tooltip-shortcut>
</media-tooltip>
<media-airplay-button class="media-button media-airplay-button" id="vjs-f7OK7BC5-ev-6-trigger">
<span class="contents theme-minimal:hidden">
<media-icon name="airplay-enter" class="media-button-icon media-airplay-button-enter-icon">
</media-icon>
</span>
<span class="hidden theme-minimal:contents">
<media-icon family="minimal" name="airplay-enter" class="media-button-icon media-airplay-button-enter-icon">
</media-icon>
</span>
<span class="contents theme-minimal:hidden">
<media-icon name="airplay-exit" class="media-button-icon media-airplay-button-exit-icon">
</media-icon>
</span>
<span class="hidden theme-minimal:contents">
<media-icon family="minimal" name="airplay-exit" class="media-button-icon media-airplay-button-exit-icon">
</media-icon>
</span>
</media-airplay-button>
<media-tooltip trigger="vjs-f7OK7BC5-ev-6-trigger" side="top" class="media-tooltip">
<media-tooltip-label>
</media-tooltip-label>
<media-tooltip-shortcut class="media-tooltip-shortcut">
</media-tooltip-shortcut>
</media-tooltip>
<media-pip-button class="media-button media-pip-button" id="vjs-f7OK7BC5-ev-7-trigger">
<span class="contents theme-minimal:hidden">
<media-icon name="pip-enter" class="media-button-icon media-pip-button-enter-icon">
</media-icon>
</span>
<span class="hidden theme-minimal:contents">
<media-icon family="minimal" name="pip-enter" class="media-button-icon media-pip-button-enter-icon">
</media-icon>
</span>
<span class="contents theme-minimal:hidden">
<media-icon name="pip-exit" class="media-button-icon media-pip-button-exit-icon">
</media-icon>
</span>
<span class="hidden theme-minimal:contents">
<media-icon family="minimal" name="pip-exit" class="media-button-icon media-pip-button-exit-icon">
</media-icon>
</span>
</media-pip-button>
<media-tooltip trigger="vjs-f7OK7BC5-ev-7-trigger" side="top" class="media-tooltip">
<media-tooltip-label>
</media-tooltip-label>
<media-tooltip-shortcut class="media-tooltip-shortcut">
</media-tooltip-shortcut>
</media-tooltip>
<media-fullscreen-button class="media-button media-fullscreen-button" id="vjs-f7OK7BC5-ev-8-trigger">
<span class="contents theme-minimal:hidden">
<media-icon name="fullscreen-enter" class="media-button-icon media-fullscreen-button-enter-icon">
</media-icon>
</span>
<span class="hidden theme-minimal:contents">
<media-icon family="minimal" name="fullscreen-enter" class="media-button-icon media-fullscreen-button-enter-icon">
</media-icon>
</span>
<span class="contents theme-minimal:hidden">
<media-icon name="fullscreen-exit" class="media-button-icon media-fullscreen-button-exit-icon">
</media-icon>
</span>
<span class="hidden theme-minimal:contents">
<media-icon family="minimal" name="fullscreen-exit" class="media-button-icon media-fullscreen-button-exit-icon">
</media-icon>
</span>
</media-fullscreen-button>
<media-tooltip trigger="vjs-f7OK7BC5-ev-8-trigger" side="top" class="media-tooltip">
<media-tooltip-label>
</media-tooltip-label>
<media-tooltip-shortcut class="media-tooltip-shortcut">
</media-tooltip-shortcut>
</media-tooltip>
</media-controls-group>
</media-tooltip-group>
</media-controls-content>
</media-controls>
<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-hotkey keys="f" action="toggleFullscreen">
</media-hotkey>
<media-hotkey keys="c" action="toggleSubtitles">
</media-hotkey>
<media-hotkey keys="i" action="togglePictureInPicture">
</media-hotkey>
<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>
<media-status-announcer class="media-status-announcer">
</media-status-announcer>
<div class="media-video-status-indicators">
<media-volume-indicator class="media-volume-indicator">
<media-volume-indicator-fill class="media-volume-indicator-fill">
<span class="contents theme-minimal:hidden">
<media-icon name="volume-high" class="media-volume-indicator-high-icon">
</media-icon>
</span>
<span class="hidden theme-minimal:contents">
<media-icon family="minimal" name="volume-high" class="media-volume-indicator-high-icon">
</media-icon>
</span>
<span class="contents theme-minimal:hidden">
<media-icon name="volume-low" class="media-volume-indicator-low-icon">
</media-icon>
</span>
<span class="hidden theme-minimal:contents">
<media-icon family="minimal" name="volume-low" class="media-volume-indicator-low-icon">
</media-icon>
</span>
<span class="contents theme-minimal:hidden">
<media-icon name="volume-off" class="media-volume-indicator-off-icon">
</media-icon>
</span>
<span class="hidden theme-minimal:contents">
<media-icon family="minimal" name="volume-off" class="media-volume-indicator-off-icon">
</media-icon>
</span>
<media-volume-indicator-value class="media-volume-indicator-value">
</media-volume-indicator-value>
</media-volume-indicator-fill>
</media-volume-indicator>
<media-status-indicator actions="toggleSubtitles,toggleFullscreen,togglePictureInPicture" class="media-status-indicator">
<div class="media-status-indicator-content">
<span class="contents theme-minimal:hidden">
<media-icon name="captions-on" class="media-status-indicator-captions-on-icon">
</media-icon>
</span>
<span class="hidden theme-minimal:contents">
<media-icon family="minimal" name="captions-on" class="media-status-indicator-captions-on-icon">
</media-icon>
</span>
<span class="contents theme-minimal:hidden">
<media-icon name="captions-off" class="media-status-indicator-captions-off-icon">
</media-icon>
</span>
<span class="hidden theme-minimal:contents">
<media-icon family="minimal" name="captions-off" class="media-status-indicator-captions-off-icon">
</media-icon>
</span>
<span class="contents theme-minimal:hidden">
<media-icon name="fullscreen-enter" class="media-status-indicator-fullscreen-enter-icon">
</media-icon>
</span>
<span class="hidden theme-minimal:contents">
<media-icon family="minimal" name="fullscreen-enter" class="media-status-indicator-fullscreen-enter-icon">
</media-icon>
</span>
<span class="contents theme-minimal:hidden">
<media-icon name="fullscreen-exit" class="media-status-indicator-fullscreen-exit-icon">
</media-icon>
</span>
<span class="hidden theme-minimal:contents">
<media-icon family="minimal" name="fullscreen-exit" class="media-status-indicator-fullscreen-exit-icon">
</media-icon>
</span>
<span class="contents theme-minimal:hidden">
<media-icon name="pip-enter" class="media-status-indicator-pip-enter-icon">
</media-icon>
</span>
<span class="hidden theme-minimal:contents">
<media-icon family="minimal" name="pip-enter" class="media-status-indicator-pip-enter-icon">
</media-icon>
</span>
<span class="contents theme-minimal:hidden">
<media-icon name="pip-exit" class="media-status-indicator-pip-exit-icon">
</media-icon>
</span>
<span class="hidden theme-minimal:contents">
<media-icon family="minimal" name="pip-exit" class="media-status-indicator-pip-exit-icon">
</media-icon>
</span>
<media-status-indicator-value class="media-status-indicator-value">
</media-status-indicator-value>
</div>
</media-status-indicator>
<media-seek-indicator class="media-seek-indicator">
<span class="contents theme-minimal:hidden">
<media-icon name="chevron" class="media-seek-indicator-icon">
</media-icon>
</span>
<span class="hidden theme-minimal:contents">
<media-icon family="minimal" name="chevron" class="media-seek-indicator-icon">
</media-icon>
</span>
<media-seek-indicator-value class="media-seek-indicator-value">
</media-seek-indicator-value>
</media-seek-indicator>
<media-status-indicator actions="togglePaused" class="media-playback-status-indicator">
<span class="contents theme-minimal:hidden">
<media-icon name="play" class="media-playback-status-indicator-play-icon">
</media-icon>
</span>
<span class="hidden theme-minimal:contents">
<media-icon family="minimal" name="play" class="media-playback-status-indicator-play-icon">
</media-icon>
</span>
<span class="contents theme-minimal:hidden">
<media-icon name="pause" class="media-playback-status-indicator-pause-icon">
</media-icon>
</span>
<span class="hidden theme-minimal:contents">
<media-icon family="minimal" name="pause" class="media-playback-status-indicator-pause-icon">
</media-icon>
</span>
</media-status-indicator>
</div>
</media-container>@layer base {
.media-skin {
--media-background: oklch(0% 0 0);
--media-foreground: oklch(100% 0 0);
--media-controls: oklch(0% 0 0 / 0.35);
--media-controls-foreground: var(--media-foreground);
--media-popover: oklch(100% 0 0 / 0.1);
--media-popover-foreground: var(--media-foreground);
--media-primary: var(--media-accent-color, var(--media-default-accent-color));
--media-primary-foreground: var(
--media-accent-text-color,
contrast-color(var(--media-accent-color, var(--media-default-accent-color)))
);
--media-accent: var(--media-accent-color, color-mix(in oklab, var(--media-default-accent-color) 10%, transparent));
--media-accent-foreground: var(
--media-accent-text-color,
contrast-color(var(--media-accent-color, var(--media-internal-accent-text-base, oklch(0% 0 0))))
);
--media-muted: oklch(100% 0 0 / 0.15);
--media-muted-foreground: oklch(100% 0 0 / 0.65);
--media-border: oklch(0% 0 0 / 0.1);
--media-ring: var(--media-focus-ring-color, oklch(100% 0 0));
--media-shadow-sm: 0 1px 2px oklch(0% 0 0 / 0.15);
--media-caption-controls-y: calc(var(--media-spacing) * -14);
--media-control-corner-shape: round;
--media-control-radius: calc(infinity * 1px);
--media-control-size: calc(var(--media-spacing) * 9);
--media-controls-transition-duration: 0.1s;
--media-default-accent-color: oklch(100% 0 0);
--media-focus-ring-color: oklch(100% 0 0);
--media-menu-item-border-radius: calc(var(--media-spacing) * 2);
--media-menu-transition-duration: 0.25s;
--media-popup-translate-distance: calc(var(--media-scale-unit, 16px) * 0.5);
--media-video-border-radius: var(--media-border-radius, 28px);
--media-scale: 1;
--media-scrollbar-thumb-color: oklch(from currentColor l c h / 0.3);
--media-spacing: calc(var(--media-scale-unit, 16px) * var(--media-scale) / 4);
scrollbar-color: var(--media-scrollbar-thumb-color) transparent;
scrollbar-width: thin;
}
.media-skin::-webkit-scrollbar-thumb {
background: var(--media-scrollbar-thumb-color);
border-radius: 9999px;
}
.media-skin--minimal {
--media-caption-controls-y: calc(var(--media-spacing) * -18);
--media-control-corner-shape: squircle;
--media-control-radius: calc(var(--media-spacing) * 2);
--media-control-size: calc(var(--media-spacing) * 9.5);
--media-popover: oklch(0% 0 0 / 0.5);
--media-border: oklch(100% 0 0 / 0.1);
--media-shadow-sm: 0 1px 2px oklch(0% 0 0 / 0.2);
--media-menu-item-border-radius: calc(var(--media-spacing) * 1.5);
--media-popup-translate-distance: calc(var(--media-spacing) * 2);
--media-video-border-radius: var(--media-border-radius, 12px);
}
:is(.media-skin--audio, .media-skin--live-audio) {
--media-background: light-dark(oklch(100% 0 0), oklch(0% 0 0));
--media-foreground: light-dark(oklch(0% 0 0), oklch(100% 0 0));
--media-controls: light-dark(oklch(100% 0 0 / 0.5), oklch(0% 0 0 / 0.4));
--media-controls-foreground: var(--media-foreground);
--media-popover: var(--media-controls);
--media-popover-foreground: var(--media-foreground);
--media-primary: var(--media-accent-color, var(--media-foreground));
--media-primary-foreground: var(--media-accent-text-color, contrast-color(var(--media-primary)));
--media-border: light-dark(oklch(0% 0 0 / 0.1), oklch(100% 0 0 / 0.1));
--media-ring: var(--media-foreground);
--media-default-accent-color: light-dark(oklch(0% 0 0), oklch(100% 0 0));
--media-internal-accent-text-base: light-dark(oklch(100% 0 0), oklch(0% 0 0));
--media-focus-ring-color: light-dark(oklch(0% 0 0), oklch(100% 0 0));
}
:is(.media-skin--audio, .media-skin--live-audio).media-skin--minimal {
--media-controls: var(--media-background);
--media-popover: var(--media-background);
}
@media (pointer: fine) {
.media-skin:not([data-controls-visible]) {
--media-controls-transition-duration: 0.3s;
}
}
@media (pointer: coarse) {
.media-skin:not([data-controls-visible]) {
--media-controls-transition-duration: 0.15s;
}
}
@media (prefers-reduced-motion: reduce) {
.media-skin {
--media-controls-transition-duration: 50ms;
}
}
@media (prefers-reduced-transparency: reduce), (prefers-contrast: more) {
.media-skin {
--media-scrollbar-thumb-color: oklch(from currentColor l c h / 0.8);
scrollbar-width: auto;
}
}
@scope (.media-skin) {
:scope,
*,
:before,
:after {
box-sizing: border-box;
}
button {
font: inherit;
color: inherit;
text-transform: none;
letter-spacing: inherit;
appearance: none;
background: none;
margin: 0;
}
img,
svg,
media-icon {
max-width: 100%;
margin: 0;
display: block;
}
svg[fill="currentColor"] {
fill: currentColor;
}
svg[fill="none"] {
fill: none;
}
svg[stroke="currentColor"] {
stroke: currentColor;
}
video {
border-radius: inherit;
object-fit: var(--media-object-fit, contain);
object-position: var(--media-object-position, center);
width: 100%;
max-width: 100%;
height: 100%;
display: block;
}
media-icon > svg {
width: 100%;
height: 100%;
}
media-tooltip-group,
media-dialog,
media-alert-dialog,
media-error-dialog,
media-controls {
display: contents;
}
[hidden][hidden] {
display: none !important;
}
}
@media (prefers-reduced-motion: no-preference) {
.media-skin {
interpolate-size: allow-keywords;
}
}
}
@layer components {
@scope (.media-skin) {
:scope {
--media-caption-track-duration: var(--media-controls-transition-duration);
--media-caption-track-delay: 25ms;
--media-caption-track-y: calc(var(--media-spacing) * -2);
}
video::-webkit-media-text-track-container {
z-index: 1;
scale: 0.98;
translate: 0 var(--media-caption-track-y);
transition: translate var(--media-caption-track-duration) ease-out;
transition-delay: var(--media-caption-track-delay);
font-family: inherit;
}
:scope[data-controls-visible] {
--media-caption-track-y: var(--media-caption-controls-y);
}
@container media-root (width > 672px) {
:scope.media-skin--minimal[data-controls-visible] {
--media-caption-track-y: calc(var(--media-spacing) * -12);
}
}
}
@scope (.media-skin--video) {
.media-button {
width: var(--media-control-size);
height: var(--media-control-size);
min-height: calc(var(--media-spacing) * 0);
cursor: pointer;
touch-action: manipulation;
border-radius: var(--media-control-radius);
padding: calc(var(--media-spacing) * 0);
text-align: center;
color: inherit;
outline-offset: -2px;
will-change: scale;
-webkit-user-select: none;
user-select: none;
corner-shape: var(--media-control-corner-shape);
text-shadow: inherit;
background-color: #0000;
border-style: solid;
border-width: 0;
outline: 2px solid #0000;
flex-shrink: 0;
place-items: center;
transition-property: background-color, color, outline-offset, scale;
transition-duration: 0.15s;
transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
display: grid;
}
@media (hover: hover) {
.media-button:not([aria-disabled="true"]):hover {
background-color: var(--media-accent);
color: var(--media-accent-foreground);
}
}
.media-button:focus-visible {
outline-offset: 2px;
outline-color: var(--media-focus-ring-color, white);
}
.media-button:not([aria-disabled="true"]):focus-visible {
background-color: var(--media-accent);
color: var(--media-accent-foreground);
}
.media-button:not([aria-disabled="true"]):active {
scale: 0.97;
}
.media-button[aria-disabled="true"] {
cursor: not-allowed;
opacity: 0.5;
}
.media-button:not([aria-disabled="true"])[aria-expanded="true"] {
background-color: var(--media-accent);
color: var(--media-accent-foreground);
}
@media (prefers-reduced-motion: reduce) {
.media-button {
will-change: auto;
transition-property: background-color, color;
scale: 1;
}
}
}
@scope (.media-skin--video) {
.media-menu-back-item {
margin-bottom: calc(var(--media-spacing) * 0.5);
cursor: pointer;
align-items: center;
gap: calc(var(--media-spacing) * 1.5);
border-radius: var(--media-menu-item-border-radius);
width: 100%;
padding-inline: calc(var(--media-spacing) * 2);
padding-block: calc(var(--media-spacing) * 1.5);
text-align: start;
white-space: nowrap;
outline-offset: -2px;
-webkit-user-select: none;
user-select: none;
text-shadow: 0 1px 0 var(--media-shadow-current-color);
outline: 2px solid #0000;
transition-property: background-color, color;
transition-duration: 0.1s;
transition-timing-function: ease-in-out;
display: flex;
position: relative;
}
@media (hover: hover) {
.media-menu-back-item:hover {
background-color: var(--media-accent);
color: var(--media-accent-foreground);
}
}
.media-menu-back-item:focus-visible {
outline-offset: 2px;
outline-color: #fff;
}
.media-menu-back-item[data-highlighted] {
background-color: var(--media-accent);
color: var(--media-accent-foreground);
}
@supports (top: anchor(top)) {
.media-menu-back-item {
transition-duration: 50ms;
}
@media (hover: hover) {
.media-menu-back-item:hover {
transition-duration: 0.2s;
}
}
.media-menu-back-item[data-highlighted] {
transition-duration: 0.2s;
}
}
@media (prefers-reduced-motion: reduce) {
.media-menu-back-item {
transition-duration: 50ms;
}
}
.media-menu-badge {
border-radius: var(--media-control-radius);
background-color: var(--media-accent);
padding-inline: calc(var(--media-spacing) * 1.5);
font-size: 0.7em;
font-weight: 600;
}
.media-menu-content {
max-height: inherit;
overscroll-behavior: none;
transition-property: translate, filter;
transition-duration: var(--media-menu-transition-duration);
anchor-scope: --media-menu-item-highlight-anchor;
outline-style: none;
transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
position: absolute;
overflow: auto;
}
.media-menu-content:not([data-submenu]) {
inset-inline: calc(var(--media-spacing) * 1);
top: calc(var(--media-spacing) * 1);
gap: calc(var(--media-spacing) * 0.5);
flex-direction: column;
display: flex;
}
.media-menu-content[data-submenu] {
inset-inline: calc(var(--media-spacing) * 0);
top: calc(var(--media-spacing) * 0);
z-index: 10;
max-height: inherit;
padding: calc(var(--media-spacing) * 1);
}
.media-menu-content[data-submenu][data-ending-style],
.media-menu-content[data-submenu][data-starting-style] {
pointer-events: none;
filter: blur(8px);
overflow: hidden;
translate: 100%;
}
.media-menu-content:not([data-submenu])[data-child-open] {
filter: blur(8px);
translate: -100%;
}
.media-menu-content:not([data-submenu])[data-child-open]:before {
content: "";
display: none;
}
@supports (top: anchor(top)) {
.media-menu-content:before {
pointer-events: none;
inset: anchor(inside);
border-radius: var(--media-menu-item-border-radius);
background-color: var(--media-accent);
overflow-anchor: none;
content: "";
position-anchor: --media-menu-item-highlight-anchor;
transition-property: inset;
transition-duration: 0.1s;
transition-timing-function: ease-in-out;
position: absolute;
}
.media-menu-content:has([data-highlighted=""]):before {
content: "";
transition-duration: 0s;
}
}
.media-menu-content[data-submenu][data-ending-style]:dir(rtl),
.media-menu-content[data-submenu][data-starting-style]:dir(rtl) {
translate: -100%;
}
.media-menu-content:not([data-submenu])[data-child-open]:dir(rtl) {
translate: 100%;
}
.media-menu-hint {
min-width: calc(var(--media-spacing) * 0);
align-items: center;
gap: calc(var(--media-spacing) * 1);
color: currentColor;
margin-inline-start: auto;
padding-inline-start: calc(var(--media-spacing) * 2);
display: inline-flex;
}
@supports (color: color-mix(in lab, red, red)) {
.media-menu-hint {
color: color-mix(in oklab, currentcolor 65%, transparent);
}
}
.media-menu-hint-label {
max-width: calc(var(--media-spacing) * 24);
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
}
.media-menu-radio-group {
max-height: inherit;
gap: calc(var(--media-spacing) * 0.5);
anchor-scope: --media-menu-item-highlight-anchor;
flex-direction: column;
display: flex;
}
@supports (top: anchor(top)) {
.media-menu-radio-group:before {
pointer-events: none;
inset: anchor(inside);
border-radius: var(--media-menu-item-border-radius);
background-color: var(--media-accent);
overflow-anchor: none;
content: "";
position-anchor: --media-menu-item-highlight-anchor;
transition-property: inset;
transition-duration: 0.1s;
transition-timing-function: ease-in-out;
position: absolute;
}
.media-menu-radio-group:has([data-highlighted=""]):before {
content: "";
transition-duration: 0s;
}
}
.media-menu-separator {
margin-block: calc(var(--media-spacing) * 1);
border-bottom-style: solid;
border-bottom-width: 1px;
border-color: var(--media-border);
display: block;
}
@media (prefers-contrast: more) {
.media-menu-separator {
border-color: oklab(100% 0 5.96046e-8 / 0.25);
}
}
@media (forced-colors: active) {
.media-menu-separator {
border-color: canvastext;
}
}
@media (prefers-reduced-transparency: reduce) {
.media-menu-separator {
border-color: oklab(100% 0 5.96046e-8 / 0.25);
}
}
.media-menu-tier {
color: currentColor;
padding-inline-start: calc(var(--media-spacing) * 0.5);
padding-top: 1px;
font-size: 0.7em;
font-weight: 600;
line-height: 1;
}
@supports (color: color-mix(in lab, red, red)) {
.media-menu-tier {
color: color-mix(in oklab, currentcolor 70%, transparent);
}
}
.media-menu-trigger-item {
cursor: pointer;
justify-content: space-between;
align-items: center;
gap: calc(var(--media-spacing) * 1.5);
border-radius: var(--media-menu-item-border-radius);
padding-inline: calc(var(--media-spacing) * 2);
padding-block: calc(var(--media-spacing) * 1.5);
text-align: start;
white-space: nowrap;
color: inherit;
font-variant-numeric: tabular-nums;
outline-offset: -2px;
-webkit-user-select: none;
user-select: none;
text-shadow: 0 1px 0 var(--media-shadow-current-color);
outline: 2px solid #0000;
transition-property: background-color, color;
transition-duration: 0.1s;
transition-timing-function: ease-in-out;
display: flex;
position: relative;
}
@media (hover: hover) {
.media-menu-trigger-item:hover {
background-color: var(--media-accent);
color: var(--media-accent-foreground);
}
}
.media-menu-trigger-item:focus-visible {
outline-offset: 2px;
outline-color: #fff;
}
.media-menu-trigger-item[aria-disabled="true"] {
pointer-events: none;
cursor: not-allowed;
opacity: 0.5;
}
.media-menu-trigger-item[data-highlighted] {
background-color: var(--media-accent);
color: var(--media-accent-foreground);
}
.media-menu-trigger-item[data-availability="unavailable"],
.media-menu-trigger-item[data-availability="unsupported"] {
display: none;
}
@supports (top: anchor(top)) {
.media-menu-trigger-item {
transition-duration: 50ms;
}
@media (hover: hover) {
.media-menu-trigger-item:hover {
transition-duration: 0.2s;
}
}
.media-menu-trigger-item[data-highlighted] {
anchor-name: --media-menu-item-highlight-anchor;
background-color: #0000;
transition-duration: 0.2s;
}
}
@media (prefers-reduced-motion: reduce) {
.media-menu-trigger-item {
transition-duration: 50ms;
}
}
.media-menu-trigger-item-icon {
width: var(--media-icon-size, calc(var(--media-spacing) * 4.5));
height: var(--media-icon-size, calc(var(--media-spacing) * 4.5));
color: var(--media-muted-foreground);
filter: drop-shadow(0 1px 0 var(--media-shadow-current-color));
flex-shrink: 0;
}
@media (hover: hover) {
@scope (.media-menu-trigger-item) {
&:hover .media-menu-trigger-item-icon {
color: inherit;
}
}
}
@scope (.media-menu-trigger-item) {
&[data-highlighted] .media-menu-trigger-item-icon {
color: inherit;
}
}
}
@scope (.media-skin--video) {
.media-tooltip {
margin: calc(var(--media-spacing) * 0);
background-color: var(--media-popover);
font-size: calc(var(--media-spacing) * 3.25);
white-space: nowrap;
color: var(--media-popover-foreground);
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 0 calc(1px + 0px) var(--media-border),
0 0 #0000;
box-shadow: var(--media-shadow-sm);
backdrop-filter: blur(16px) saturate(150%);
border-style: solid;
border-width: 0;
transition-property: opacity, filter, transform, scale;
transition-duration: 0.1s;
transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
overflow: visible;
}
.media-tooltip:before {
pointer-events: auto;
content: "";
position: absolute;
}
.media-tooltip:after {
pointer-events: none;
inset: calc(var(--media-spacing) * 0);
z-index: 10;
border-radius: inherit;
content: "";
position: absolute;
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 #0000,
inset 0 1px #ffffff1a,
inset 0 0 0 1px #ffffff0d;
}
.media-tooltip[data-ending-style] {
opacity: 0;
filter: blur(4px);
transition-duration: 50ms;
transform: none;
}
.media-tooltip[data-open] {
align-items: center;
gap: calc(var(--media-spacing) * 1);
display: flex;
}
.media-tooltip[data-starting-style] {
transform: translate(var(--media-popup-translate-x-distance, 0), var(--media-popup-translate-y-distance, 0));
opacity: 0;
filter: blur(4px);
}
.media-tooltip[data-side="bottom"] {
transform-origin: top;
--media-popup-translate-y-distance: calc(var(--media-popup-translate-distance) * -1);
}
.media-tooltip[data-side="bottom"]:before {
inset-inline: calc(var(--media-spacing) * 0);
content: "";
height: var(--media-tooltip-side-offset);
bottom: 100%;
}
.media-tooltip[data-side="left"] {
transform-origin: 100%;
--media-popup-translate-x-distance: var(--media-popup-translate-distance);
}
.media-tooltip[data-side="left"]:before {
inset-block: calc(var(--media-spacing) * 0);
content: "";
width: var(--media-tooltip-side-offset);
left: 100%;
}
.media-tooltip[data-side="right"] {
transform-origin: 0;
--media-popup-translate-x-distance: calc(var(--media-popup-translate-distance) * -1);
}
.media-tooltip[data-side="right"]:before {
inset-block: calc(var(--media-spacing) * 0);
content: "";
width: var(--media-tooltip-side-offset);
right: 100%;
}
.media-tooltip[data-side="top"] {
transform-origin: bottom;
--media-popup-translate-y-distance: var(--media-popup-translate-distance);
}
.media-tooltip[data-side="top"]:before {
inset-inline: calc(var(--media-spacing) * 0);
content: "";
height: var(--media-tooltip-side-offset);
top: 100%;
}
@media (prefers-reduced-motion: reduce) {
.media-tooltip {
transition-duration: 0s !important;
}
.media-tooltip[data-ending-style] {
filter: none !important;
transition-duration: 0s !important;
transform: none !important;
}
.media-tooltip[data-starting-style] {
filter: none !important;
transform: none !important;
}
}
@media (prefers-contrast: more) {
.media-tooltip {
background-color: var(--media-background);
backdrop-filter: none;
}
.media-tooltip:after {
content: "";
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 #0000,
inset 0 1px #ffffff40,
inset 0 0 0 1px #ffffff20;
}
}
@media (forced-colors: active) {
.media-tooltip {
color: canvastext;
background-color: canvas;
}
.media-tooltip:after {
content: "";
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 #0000,
inset 0 1px canvastext,
inset 0 0 0 1px canvastext;
}
}
.media-tooltip:where(.media-skin:not(.media-skin--minimal), .media-skin:not(.media-skin--minimal) *) {
padding-inline: calc(var(--media-spacing) * 2.5);
padding-block: calc(var(--media-spacing) * 1);
border-radius: 9999px;
}
.media-tooltip:where(.media-skin--minimal, .media-skin--minimal *) {
border-radius: calc(var(--media-spacing) * 2);
padding-inline: calc(var(--media-spacing) * 2);
padding-block: calc(var(--media-spacing) * 1);
}
.media-tooltip:where(.media-skin--minimal, .media-skin--minimal *):after {
content: "";
display: none;
}
.media-tooltip:where(.media-skin--minimal, .media-skin--minimal *)[data-starting-style] {
filter: none;
}
.media-tooltip:is([data-starting-style], [data-ending-style]) {
scale: 0.95;
}
@media (prefers-reduced-motion: reduce) {
.media-tooltip:is([data-starting-style], [data-ending-style]) {
scale: 1 !important;
}
}
@media (prefers-reduced-transparency: reduce) {
.media-tooltip {
background-color: var(--media-background);
backdrop-filter: none;
}
.media-tooltip:after {
content: "";
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 #0000,
inset 0 1px #ffffff40,
inset 0 0 0 1px #ffffff20;
}
}
.media-tooltip-shortcut {
border-radius: calc(var(--media-spacing) * 1);
background-color: var(--media-muted);
text-align: center;
min-width: 1.5em;
font-family: inherit;
font-size: calc(var(--media-spacing) * 2.75);
padding: 0.1em;
font-weight: 600;
line-height: 1.25;
}
.media-tooltip-shortcut:where(.media-skin--minimal, .media-skin--minimal *) {
margin-inline-end: calc(var(--media-spacing) * -1);
}
}
@scope (.media-skin--video) {
.media-buffering-indicator {
pointer-events: none;
inset: calc(var(--media-spacing) * 0);
color: #fff;
place-content: center;
display: none;
position: absolute;
}
.media-buffering-indicator:not([data-visible]) {
--media-spinner-animation: none;
}
.media-buffering-indicator:before {
inset: calc(var(--media-spacing) * 0);
content: "";
backdrop-filter: blur(8px);
background-color: oklab(0% none none / 0.35);
position: absolute;
}
.media-buffering-indicator[data-visible] {
display: grid;
}
@media (prefers-reduced-motion: reduce) {
.media-buffering-indicator {
--media-spinner-animation: none;
}
}
.media-buffering-indicator-spinner-icon {
z-index: 30;
width: var(--media-icon-size, calc(var(--media-spacing) * 4.5));
height: var(--media-icon-size, calc(var(--media-spacing) * 4.5));
filter: drop-shadow(0 1px 0 var(--media-shadow-current-color));
position: relative;
}
}
@scope (.media-skin--video) {
.media-volume-popover {
margin: calc(var(--media-spacing) * 0);
border-radius: var(--media-control-radius);
background-color: var(--media-popover);
padding-inline: calc(var(--media-spacing) * 0);
padding-block: calc(var(--media-spacing) * 3);
color: var(--media-popover-foreground);
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 0 calc(1px + 0px) var(--media-border),
0 0 #0000;
box-shadow: var(--media-shadow-sm);
backdrop-filter: blur(16px) saturate(150%);
border-style: solid;
border-width: 0;
transition-property: opacity, filter, transform, scale;
transition-duration: 0.1s;
transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
overflow: visible;
}
.media-volume-popover:before {
pointer-events: auto;
content: "";
position: absolute;
}
.media-volume-popover:after {
pointer-events: none;
inset: calc(var(--media-spacing) * 0);
z-index: 10;
border-radius: inherit;
content: "";
position: absolute;
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 #0000,
inset 0 1px #ffffff1a,
inset 0 0 0 1px #ffffff0d;
}
.media-volume-popover[data-ending-style] {
opacity: 0;
filter: blur(4px);
transition-duration: 50ms;
transform: none;
}
.media-volume-popover[data-starting-style] {
transform: translate(var(--media-popup-translate-x-distance, 0), var(--media-popup-translate-y-distance, 0));
opacity: 0;
filter: blur(4px);
}
.media-volume-popover[data-side="bottom"] {
transform-origin: top;
--media-popup-translate-y-distance: calc(var(--media-popup-translate-distance) * -1);
}
.media-volume-popover[data-side="bottom"]:before {
inset-inline: calc(var(--media-spacing) * 0);
content: "";
height: var(--media-popover-side-offset);
bottom: 100%;
}
.media-volume-popover[data-side="left"] {
transform-origin: 100%;
--media-popup-translate-x-distance: var(--media-popup-translate-distance);
}
.media-volume-popover[data-side="left"]:before {
inset-block: calc(var(--media-spacing) * 0);
content: "";
width: var(--media-popover-side-offset);
left: 100%;
}
.media-volume-popover[data-side="right"] {
transform-origin: 0;
padding: calc(var(--media-spacing) * 0);
padding-inline: calc(var(--media-spacing) * 3);
backdrop-filter: none;
--media-popover-side-offset: 0rem;
--media-popup-translate-x-distance: calc(var(--media-popup-translate-distance) * -1);
background-color: #0000;
border-radius: 0;
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0,
0 0 #0000 !important;
}
.media-volume-popover[data-side="right"]:before {
inset-block: calc(var(--media-spacing) * 0);
content: "";
width: var(--media-popover-side-offset);
right: 100%;
}
.media-volume-popover[data-side="right"]:after {
content: "";
display: none;
}
.media-volume-popover[data-side="top"] {
transform-origin: bottom;
--media-popup-translate-y-distance: var(--media-popup-translate-distance);
}
.media-volume-popover[data-side="top"]:before {
inset-inline: calc(var(--media-spacing) * 0);
content: "";
height: var(--media-popover-side-offset);
top: 100%;
}
@media (prefers-reduced-motion: reduce) {
.media-volume-popover {
transition-duration: 0s !important;
}
.media-volume-popover[data-ending-style] {
filter: none !important;
transition-duration: 0s !important;
transform: none !important;
}
.media-volume-popover[data-starting-style] {
filter: none !important;
transform: none !important;
}
}
@media (prefers-contrast: more) {
.media-volume-popover {
background-color: var(--media-background);
backdrop-filter: none;
}
.media-volume-popover:after {
content: "";
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 #0000,
inset 0 1px #ffffff40,
inset 0 0 0 1px #ffffff20;
}
}
@media (forced-colors: active) {
.media-volume-popover {
color: canvastext;
background-color: canvas;
}
.media-volume-popover:after {
content: "";
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 #0000,
inset 0 1px canvastext,
inset 0 0 0 1px canvastext;
}
}
.media-volume-popover:where(.media-skin--minimal, .media-skin--minimal *):after {
content: "";
display: none;
}
.media-volume-popover:where(.media-skin--minimal, .media-skin--minimal *)[data-starting-style] {
filter: none;
}
.media-volume-popover:is([data-starting-style], [data-ending-style]) {
scale: 0.95;
}
@media (prefers-reduced-motion: reduce) {
.media-volume-popover:is([data-starting-style], [data-ending-style]) {
scale: 1 !important;
}
}
@media (prefers-reduced-transparency: reduce) {
.media-volume-popover {
background-color: var(--media-background);
backdrop-filter: none;
}
.media-volume-popover:after {
content: "";
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 #0000,
inset 0 1px #ffffff40,
inset 0 0 0 1px #ffffff20;
}
}
}
@scope (.media-skin--video) {
.media-volume-indicator {
pointer-events: none;
transform-origin: top;
color: inherit;
position: absolute;
}
.media-volume-indicator[data-ending-style],
.media-volume-indicator[data-starting-style] {
opacity: 0;
}
.media-volume-indicator:where(.media-skin:not(.media-skin--minimal), .media-skin:not(.media-skin--minimal) *) {
top: calc(var(--media-spacing) * 3);
background-color: oklab(0% none none / 0.25);
background-color: var(--media-popover);
width: min(80%, 12rem);
color: var(--media-popover-foreground);
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 0 calc(1px + 0px) var(--media-border),
0 0 #0000;
box-shadow: var(--media-shadow-sm);
backdrop-filter: blur(16px) saturate(150%);
border-radius: 9999px;
font-weight: 500;
transition-duration: 0.1s;
transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
transform: translateX(0);
}
.media-volume-indicator:where(
.media-skin:not(.media-skin--minimal),
.media-skin:not(.media-skin--minimal) *
):after {
pointer-events: none;
inset: calc(var(--media-spacing) * 0);
z-index: 10;
border-radius: inherit;
content: "";
position: absolute;
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 #0000,
inset 0 1px #ffffff1a,
inset 0 0 0 1px #ffffff0d;
}
.media-volume-indicator:where(
.media-skin:not(.media-skin--minimal),
.media-skin:not(.media-skin--minimal) *
)[data-ending-style],
.media-volume-indicator:where(
.media-skin:not(.media-skin--minimal),
.media-skin:not(.media-skin--minimal) *
)[data-starting-style] {
transition-duration: 0.25s;
transition-timing-function: cubic-bezier(0.4, 0, 1, 1);
}
@media (prefers-reduced-motion: no-preference) {
.media-volume-indicator:where(
.media-skin:not(.media-skin--minimal),
.media-skin:not(.media-skin--minimal) *
)[data-ending-style] {
translate: 0 -25%;
}
}
@media (prefers-contrast: more) {
.media-volume-indicator:where(.media-skin:not(.media-skin--minimal), .media-skin:not(.media-skin--minimal) *) {
background-color: var(--media-background);
backdrop-filter: none;
}
.media-volume-indicator:where(
.media-skin:not(.media-skin--minimal),
.media-skin:not(.media-skin--minimal) *
):after {
content: "";
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 #0000,
inset 0 1px #ffffff40,
inset 0 0 0 1px #ffffff20;
}
}
@media (forced-colors: active) {
.media-volume-indicator:where(.media-skin:not(.media-skin--minimal), .media-skin:not(.media-skin--minimal) *) {
color: canvastext;
background-color: canvas;
}
.media-volume-indicator:where(
.media-skin:not(.media-skin--minimal),
.media-skin:not(.media-skin--minimal) *
):after {
content: "";
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 #0000,
inset 0 1px canvastext,
inset 0 0 0 1px canvastext;
}
}
@media (pointer: coarse) {
.media-volume-indicator:where(.media-skin:not(.media-skin--minimal), .media-skin:not(.media-skin--minimal) *) {
will-change: scale, translate, opacity;
transition-property: scale, translate, opacity;
}
}
@media (pointer: fine) {
@media (prefers-reduced-motion: no-preference) {
.media-volume-indicator:where(.media-skin:not(.media-skin--minimal), .media-skin:not(.media-skin--minimal) *) {
will-change: scale, translate, filter, opacity;
transition-property: scale, translate, filter, opacity;
}
.media-volume-indicator:where(
.media-skin:not(.media-skin--minimal),
.media-skin:not(.media-skin--minimal) *
)[data-ending-style],
.media-volume-indicator:where(
.media-skin:not(.media-skin--minimal),
.media-skin:not(.media-skin--minimal) *
)[data-starting-style] {
filter: blur(8px);
scale: 0.9;
}
}
}
.media-volume-indicator:where(.media-skin--minimal, .media-skin--minimal *) {
inset-inline: calc(var(--media-spacing) * 0);
top: calc(var(--media-spacing) * 0);
background-image: linear-gradient(
to bottom,
oklch(0% 0 0 / 0.35),
oklch(0% 0 0 / 0.2) calc(var(--media-spacing) * 12),
transparent
);
padding-top: calc(var(--media-spacing) * 3);
padding-bottom: calc(var(--media-spacing) * 32);
text-shadow: 0 1px 0 var(--media-shadow-current-color);
justify-content: center;
transition-duration: 0.1s;
transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
display: flex;
}
.media-volume-indicator:where(.media-skin--minimal, .media-skin--minimal *)[data-ending-style],
.media-volume-indicator:where(.media-skin--minimal, .media-skin--minimal *)[data-starting-style] {
transition-duration: 0.4s;
transition-timing-function: cubic-bezier(0.4, 0, 1, 1);
}
@media (prefers-reduced-motion: no-preference) {
.media-volume-indicator:where(.media-skin--minimal, .media-skin--minimal *)[data-ending-style] {
translate: 0 -100%;
}
}
@media (pointer: coarse) {
.media-volume-indicator:where(.media-skin--minimal, .media-skin--minimal *) {
will-change: translate, opacity;
transition-property: translate, opacity;
}
}
@media (pointer: fine) {
.media-volume-indicator:where(.media-skin--minimal, .media-skin--minimal *) {
will-change: translate, filter, opacity;
transition-property: translate, filter, opacity;
}
@media (prefers-reduced-motion: no-preference) {
.media-volume-indicator:where(.media-skin--minimal, .media-skin--minimal *)[data-ending-style],
.media-volume-indicator:where(.media-skin--minimal, .media-skin--minimal *)[data-starting-style] {
filter: blur(8px);
}
}
}
@media (prefers-reduced-motion: no-preference) {
.media-volume-indicator:where(.media-skin:not(.media-skin--minimal), .media-skin:not(.media-skin--minimal) *):is(
[data-min],
[data-max]
):not([data-starting-style], [data-ending-style]) {
transition: transform 0.3s linear(0, -24 20%, 16 40%, -8 60%, 4 80%, 1);
transform: translateX(0.25px);
}
}
@media (prefers-reduced-transparency: reduce) {
.media-volume-indicator:where(.media-skin:not(.media-skin--minimal), .media-skin:not(.media-skin--minimal) *) {
background-color: var(--media-background);
backdrop-filter: none;
}
.media-volume-indicator:where(
.media-skin:not(.media-skin--minimal),
.media-skin:not(.media-skin--minimal) *
):after {
content: "";
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 #0000,
inset 0 1px #ffffff40,
inset 0 0 0 1px #ffffff20;
}
}
.media-volume-indicator-fill {
justify-content: space-between;
align-items: center;
gap: calc(var(--media-spacing) * 2);
border-radius: inherit;
padding-inline: calc(var(--media-spacing) * 2.5);
padding-block: calc(var(--media-spacing) * 1);
}
.media-volume-indicator-fill:where(.media-skin:not(.media-skin--minimal), .media-skin:not(.media-skin--minimal) *) {
background-image: linear-gradient(currentColor, currentColor);
background-size: var(--media-volume-fill, 0%) 100%;
background-position: 0;
background-repeat: no-repeat;
width: 100%;
transition-property: background-size;
transition-duration: 0.2s;
transition-timing-function: linear;
display: flex;
}
.media-volume-indicator-fill:where(.media-skin--minimal, .media-skin--minimal *) {
grid-template-columns: auto minmax(0, 1fr) auto;
width: min(80%, 14rem);
display: grid;
transform: translateX(0);
}
.media-volume-indicator-fill:where(.media-skin--minimal, .media-skin--minimal *):before {
height: calc(var(--media-spacing) * 0.75);
content: "";
width: 100%;
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 1px 0 var(--media-shadow-subtle-current-color);
background-color: currentColor;
border-radius: 9999px;
grid-row-start: 1;
grid-column-start: 2;
}
@supports (color: color-mix(in lab, red, red)) {
.media-volume-indicator-fill:where(.media-skin--minimal, .media-skin--minimal *):before {
background-color: color-mix(in oklab, currentcolor 20%, transparent);
}
}
.media-volume-indicator-fill:where(.media-skin--minimal, .media-skin--minimal *):after {
height: calc(var(--media-spacing) * 0.75);
width: var(--media-volume-fill, 0%);
background-color: var(--media-primary);
content: "";
border-radius: 9999px;
grid-row-start: 1;
grid-column-start: 2;
justify-self: flex-start;
transition-property: width;
transition-duration: 0.2s;
transition-timing-function: linear;
}
@media (prefers-reduced-motion: no-preference) {
@scope (.media-volume-indicator) {
&:is([data-min], [data-max]):not([data-starting-style], [data-ending-style])
.media-volume-indicator-fill:where(.media-skin--minimal, .media-skin--minimal *) {
transition: transform 0.3s linear(0, -24 20%, 16 40%, -8 60%, 4 80%, 1);
transform: translateX(0.25px);
}
}
}
@media (prefers-contrast: more) {
.media-volume-indicator-fill:where(.media-skin--minimal, .media-skin--minimal *) {
border-radius: calc(var(--media-spacing) * 2);
background-color: #000;
}
}
@media (prefers-reduced-transparency: reduce) {
.media-volume-indicator-fill:where(.media-skin--minimal, .media-skin--minimal *) {
border-radius: calc(var(--media-spacing) * 2);
background-color: #000;
}
}
.media-volume-indicator-high-icon {
flex-shrink: 0;
display: none;
}
@scope (.media-volume-indicator) {
&[data-level="high"] .media-volume-indicator-high-icon {
display: block;
}
}
.media-volume-indicator-high-icon:where(
.media-skin:not(.media-skin--minimal),
.media-skin:not(.media-skin--minimal) *
) {
mix-blend-mode: difference;
}
.media-volume-indicator-high-icon:where(.media-skin--minimal, .media-skin--minimal *) {
filter: drop-shadow(0 1px 0 var(--media-shadow-current-color));
grid-row-start: 1;
grid-column-start: 1;
}
.media-volume-indicator-low-icon {
flex-shrink: 0;
display: none;
}
@scope (.media-volume-indicator) {
&[data-level="low"] .media-volume-indicator-low-icon {
display: block;
}
}
.media-volume-indicator-low-icon:where(
.media-skin:not(.media-skin--minimal),
.media-skin:not(.media-skin--minimal) *
) {
mix-blend-mode: difference;
}
.media-volume-indicator-low-icon:where(.media-skin--minimal, .media-skin--minimal *) {
filter: drop-shadow(0 1px 0 var(--media-shadow-current-color));
grid-row-start: 1;
grid-column-start: 1;
}
.media-volume-indicator-off-icon {
flex-shrink: 0;
display: none;
}
@scope (.media-volume-indicator) {
&[data-level="off"] .media-volume-indicator-off-icon {
display: block;
}
}
.media-volume-indicator-off-icon:where(
.media-skin:not(.media-skin--minimal),
.media-skin:not(.media-skin--minimal) *
) {
mix-blend-mode: difference;
}
.media-volume-indicator-off-icon:where(.media-skin--minimal, .media-skin--minimal *) {
filter: drop-shadow(0 1px 0 var(--media-shadow-current-color));
grid-row-start: 1;
grid-column-start: 1;
}
.media-volume-indicator-value:where(
.media-skin:not(.media-skin--minimal),
.media-skin:not(.media-skin--minimal) *
) {
mix-blend-mode: difference;
margin-left: auto;
}
.media-volume-indicator-value:where(.media-skin--minimal, .media-skin--minimal *) {
grid-row-start: 1;
grid-column-start: 3;
}
}
@scope (.media-skin--video) {
.media-slider {
cursor: pointer;
border-radius: 99px;
outline-style: none;
flex: 1;
justify-content: center;
align-items: center;
display: flex;
position: relative;
}
.media-slider[data-orientation="horizontal"] {
height: var(--media-slider-height, calc(var(--media-spacing) * 8));
min-width: calc(var(--media-spacing) * 20);
}
.media-slider[data-orientation="vertical"] {
height: calc(var(--media-spacing) * 20);
width: calc(var(--media-spacing) * 8);
min-width: calc(var(--media-spacing) * 0);
}
.media-volume-slider-thumb {
width: calc(var(--media-spacing) * 3);
height: calc(var(--media-spacing) * 3);
opacity: 1;
scale: 1;
}
.media-volume-slider-thumb:where(.media-skin:not(.media-skin--minimal), .media-skin:not(.media-skin--minimal) *) {
outline-offset: -4px;
outline: 4px solid #0000;
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 0 1px #0000001a,
0 1px 3px #00000059,
0 1px 2px -1px #00000059;
}
.media-volume-slider-thumb:where(
.media-skin:not(.media-skin--minimal),
.media-skin:not(.media-skin--minimal) *
):after {
pointer-events: none;
inset: calc(var(--media-spacing) * -1);
border-radius: inherit;
opacity: 0;
content: "";
position: absolute;
scale: 0.5;
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 0 2px;
}
@media (hover: hover) {
.media-volume-slider-thumb:where(
.media-skin:not(.media-skin--minimal),
.media-skin:not(.media-skin--minimal) *
):hover {
outline-offset: 0px;
outline-color: currentColor;
}
@supports (color: color-mix(in lab, red, red)) {
.media-volume-slider-thumb:where(
.media-skin:not(.media-skin--minimal),
.media-skin:not(.media-skin--minimal) *
):hover {
outline-color: color-mix(in oklab, currentcolor 15%, transparent);
}
}
}
.media-volume-slider-thumb:where(
.media-skin:not(.media-skin--minimal),
.media-skin:not(.media-skin--minimal) *
):focus-visible {
outline-offset: 0px;
outline-color: currentColor;
}
@supports (color: color-mix(in lab, red, red)) {
.media-volume-slider-thumb:where(
.media-skin:not(.media-skin--minimal),
.media-skin:not(.media-skin--minimal) *
):focus-visible {
outline-color: color-mix(in oklab, currentcolor 15%, transparent);
}
}
.media-volume-slider-thumb:where(
.media-skin:not(.media-skin--minimal),
.media-skin:not(.media-skin--minimal) *
):focus-visible:after {
content: "";
opacity: 1;
scale: 1;
}
@media (prefers-reduced-motion: no-preference) {
.media-volume-slider-thumb:where(
.media-skin:not(.media-skin--minimal),
.media-skin:not(.media-skin--minimal) *
):after {
content: "";
transition-property: opacity, scale;
transition-duration: 0.15s;
transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
}
}
.media-volume-slider-thumb:where(.media-skin--minimal, .media-skin--minimal *) {
outline-offset: -2px;
outline: 2px solid #0000;
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 0 1px #00000026,
0 1px 3px #00000026,
0 1px 2px -1px #00000026;
}
.media-volume-slider-thumb:where(.media-skin--minimal, .media-skin--minimal *):focus-visible {
outline-offset: 2px;
outline-color: #fff;
}
}
@scope (.media-skin--video) {
.media-controls {
padding: calc(var(--media-spacing) * 1);
color: #fff;
transition-property: filter, opacity, scale, translate;
transition-duration: calc(var(--media-controls-transition-duration) / 2);
--media-popover-boundary-offset: 0.75rem;
--media-popover-side-offset: calc(var(--media-spacing) * 3);
--media-tooltip-boundary-offset: var(--media-popover-boundary-offset);
--media-tooltip-side-offset: var(--media-popover-side-offset);
text-shadow: 0 1px 0 var(--media-shadow-current-color);
transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
display: contents;
}
@container media-root (width >= 32rem) {
.media-controls {
inset-inline: calc(var(--media-spacing) * 2);
bottom: calc(var(--media-spacing) * 2);
z-index: 10;
border-radius: var(--media-control-radius);
background-color: var(--media-popover);
color: var(--media-popover-foreground);
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 0 calc(1px + 0px) var(--media-border),
0 0 #0000;
box-shadow: var(--media-shadow-sm);
backdrop-filter: blur(16px) saturate(150%);
align-items: center;
display: flex;
position: absolute;
}
.media-controls:not([data-visible]) {
pointer-events: none;
opacity: 0;
transition-duration: var(--media-controls-transition-duration);
}
.media-controls:after {
pointer-events: none;
inset: calc(var(--media-spacing) * 0);
z-index: 10;
border-radius: inherit;
content: "";
position: absolute;
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 #0000,
inset 0 1px #ffffff1a,
inset 0 0 0 1px #ffffff0d;
}
@media (prefers-reduced-motion: no-preference) {
.media-controls:not([data-visible]) {
translate: 0 calc(var(--media-spacing) * 1);
scale: 0.95;
}
}
@media (prefers-contrast: more) {
.media-controls {
background-color: var(--media-background);
backdrop-filter: none;
}
.media-controls:after {
content: "";
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 #0000,
inset 0 1px #ffffff40,
inset 0 0 0 1px #ffffff20;
}
}
}
@container media-root (width >= 42rem) {
.media-controls {
inset-inline: calc(var(--media-spacing) * 3);
bottom: calc(var(--media-spacing) * 3);
}
}
@container media-root (width >= 32rem) {
@media (forced-colors: active) {
.media-controls {
color: canvastext;
background-color: canvas;
}
.media-controls:after {
content: "";
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 #0000,
inset 0 1px canvastext,
inset 0 0 0 1px canvastext;
}
}
@media (pointer: fine) {
@media (prefers-reduced-motion: no-preference) {
.media-controls:not([data-visible]) {
filter: blur(8px);
}
}
}
@media (prefers-reduced-transparency: reduce) {
.media-controls {
background-color: var(--media-background);
backdrop-filter: none;
}
.media-controls:after {
content: "";
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 #0000,
inset 0 1px #ffffff40,
inset 0 0 0 1px #ffffff20;
}
}
}
.media-controls__backdrop {
pointer-events: none;
inset: calc(var(--media-spacing) * 0);
z-index: 10;
border-radius: inherit;
transition-property: opacity;
transition-duration: var(--media-controls-transition-duration);
background-image: linear-gradient(
to top,
oklab(0% none none / 0.5) 0%,
oklab(0% none none / 0.3) 25%,
#0000 100%
);
transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
position: absolute;
}
.media-controls__backdrop:not([data-visible]) {
opacity: 0;
}
@container media-root (width < 32rem) {
.media-controls-captions-button {
display: none;
}
}
.media-controls-primary {
inset-inline: calc(var(--media-spacing) * 2);
bottom: calc(var(--media-spacing) * 2);
z-index: 10;
transform-origin: bottom;
border-radius: var(--media-control-radius);
background-color: var(--media-popover);
padding: calc(var(--media-spacing) * 1);
color: var(--media-popover-foreground);
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 0 calc(1px + 0px) var(--media-border),
0 0 #0000;
box-shadow: var(--media-shadow-sm);
backdrop-filter: blur(16px) saturate(150%);
transition-property: filter, opacity, scale, translate;
transition-duration: calc(var(--media-controls-transition-duration) / 2);
align-items: center;
transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
display: flex;
position: absolute;
}
.media-controls-primary:after {
pointer-events: none;
inset: calc(var(--media-spacing) * 0);
z-index: 10;
border-radius: inherit;
content: "";
position: absolute;
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 #0000,
inset 0 1px #ffffff1a,
inset 0 0 0 1px #ffffff0d;
}
@media (prefers-contrast: more) {
.media-controls-primary {
background-color: var(--media-background);
backdrop-filter: none;
}
.media-controls-primary:after {
content: "";
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 #0000,
inset 0 1px #ffffff40,
inset 0 0 0 1px #ffffff20;
}
}
@container media-root (width < 32rem) {
@scope (.media-controls) {
&:not([data-visible]) .media-controls-primary {
pointer-events: none;
opacity: 0;
transition-duration: var(--media-controls-transition-duration);
}
}
@media (prefers-reduced-motion: no-preference) {
@scope (.media-controls) {
&:not([data-visible]) .media-controls-primary {
translate: 0 calc(var(--media-spacing) * 1);
scale: 0.95;
}
}
}
}
@container media-root (width >= 32rem) {
.media-controls-primary {
backdrop-filter: none;
background-color: #0000;
border-radius: 0;
display: contents;
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0,
0 0 #0000;
}
.media-controls-primary:after {
content: "";
display: none;
}
}
@media (forced-colors: active) {
.media-controls-primary {
color: canvastext;
background-color: canvas;
}
.media-controls-primary:after {
content: "";
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 #0000,
inset 0 1px canvastext,
inset 0 0 0 1px canvastext;
}
}
@container media-root (width < 32rem) {
@media (pointer: fine) {
@media (prefers-reduced-motion: no-preference) {
@scope (.media-controls) {
&:not([data-visible]) .media-controls-primary {
filter: blur(8px);
}
}
}
}
}
@media (prefers-reduced-transparency: reduce) {
.media-controls-primary {
background-color: var(--media-background);
backdrop-filter: none;
}
.media-controls-primary:after {
content: "";
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 #0000,
inset 0 1px #ffffff40,
inset 0 0 0 1px #ffffff20;
}
}
.media-controls-secondary {
top: calc(var(--media-spacing) * 2);
right: calc(var(--media-spacing) * 2);
z-index: 10;
transform-origin: top;
border-radius: var(--media-control-radius);
background-color: var(--media-popover);
padding: calc(var(--media-spacing) * 1);
color: var(--media-popover-foreground);
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 0 calc(1px + 0px) var(--media-border),
0 0 #0000;
box-shadow: var(--media-shadow-sm);
backdrop-filter: blur(16px) saturate(150%);
transition-property: filter, opacity, scale, translate;
transition-duration: calc(var(--media-controls-transition-duration) / 2);
align-items: center;
gap: 1px;
transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
display: flex;
position: absolute;
}
.media-controls-secondary:after {
pointer-events: none;
inset: calc(var(--media-spacing) * 0);
z-index: 10;
border-radius: inherit;
content: "";
position: absolute;
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 #0000,
inset 0 1px #ffffff1a,
inset 0 0 0 1px #ffffff0d;
}
@media (prefers-contrast: more) {
.media-controls-secondary {
background-color: var(--media-background);
backdrop-filter: none;
}
.media-controls-secondary:after {
content: "";
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 #0000,
inset 0 1px #ffffff40,
inset 0 0 0 1px #ffffff20;
}
}
@container media-root (width < 32rem) {
@scope (.media-controls) {
&:not([data-visible]) .media-controls-secondary {
pointer-events: none;
opacity: 0;
transition-duration: var(--media-controls-transition-duration);
}
}
@media (prefers-reduced-motion: no-preference) {
@scope (.media-controls) {
&:not([data-visible]) .media-controls-secondary {
translate: 0 calc(var(--media-spacing) * -1);
scale: 0.95;
}
}
}
}
@container media-root (width >= 32rem) {
.media-controls-secondary {
padding: calc(var(--media-spacing) * 0);
backdrop-filter: none;
background-color: #0000;
border-radius: 0;
display: flex;
position: static;
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0,
0 0 #0000;
}
.media-controls-secondary:after {
content: "";
display: none;
}
}
@media (forced-colors: active) {
.media-controls-secondary {
color: canvastext;
background-color: canvas;
}
.media-controls-secondary:after {
content: "";
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 #0000,
inset 0 1px canvastext,
inset 0 0 0 1px canvastext;
}
}
@container media-root (width < 32rem) {
@media (pointer: fine) {
@media (prefers-reduced-motion: no-preference) {
@scope (.media-controls) {
&:not([data-visible]) .media-controls-secondary {
filter: blur(8px);
}
}
}
}
}
@media (prefers-reduced-transparency: reduce) {
.media-controls-secondary {
background-color: var(--media-background);
backdrop-filter: none;
}
.media-controls-secondary:after {
content: "";
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 #0000,
inset 0 1px #ffffff40,
inset 0 0 0 1px #ffffff20;
}
}
@container media-root (width >= 32rem) {
.media-controls-settings-button {
margin-inline-start: 1px;
}
}
.media-controls-volume-button {
margin-inline-start: 1px;
}
.media-time-current-value {
font-variant-numeric: tabular-nums;
}
.media-time-remaining-value {
cursor: pointer;
font-variant-numeric: tabular-nums;
outline-offset: -2px;
border-radius: 0.25rem;
outline: 2px solid #0000;
transition-property: outline-color, outline-offset;
transition-duration: 0.1s;
transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
}
.media-time-remaining-value:focus-visible {
outline-offset: 2px;
outline-color: #fff;
}
@container media-time (width < 16rem) {
.media-time-remaining-value {
display: none;
}
}
.media-time-slider-group {
align-items: center;
gap: calc(var(--media-spacing) * 2.5);
padding-inline: calc(var(--media-spacing) * 2);
flex: 1;
display: flex;
container: media-time / inline-size;
}
@container media-root (width >= 32rem) {
.media-time-slider-group {
padding-inline: calc(var(--media-spacing) * 3);
}
}
}
@scope (.media-skin--video) {
.media-button-icon {
width: var(--media-icon-size, calc(var(--media-spacing) * 4.5));
height: var(--media-icon-size, calc(var(--media-spacing) * 4.5));
filter: drop-shadow(0 1px 0 var(--media-shadow-current-color));
grid-row-start: 1;
grid-column-start: 1;
transition-property: opacity, scale;
transition-duration: 0.15s;
transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
}
@media (prefers-reduced-motion: reduce) {
.media-button-icon {
transition-property: opacity;
transition-duration: 50ms;
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
}
}
.media-cast-button-enter-icon {
opacity: 0;
}
@scope (.media-cast-button) {
&:not([data-cast-state="connected"]) .media-cast-button-enter-icon {
opacity: 1;
scale: 1;
}
}
.media-cast-button-exit-icon {
opacity: 0;
}
@scope (.media-cast-button) {
&[data-cast-state="connected"] .media-cast-button-exit-icon {
opacity: 1;
scale: 1;
}
}
}
@scope (.media-skin--video) {
.media-slider-preview {
height: calc(var(--media-spacing) * 1);
--media-slider-preview-max-height: var(--media-slider-preview-max-width);
position: relative;
}
.media-slider-preview:before {
pointer-events: none;
z-index: 1;
content: "";
opacity: 0;
position: absolute;
translate: -50% -50%;
scale: 0.5;
}
.media-slider-preview[data-pointing]:not([data-dragging]):before {
content: "";
opacity: 1;
scale: 1;
}
@media (prefers-reduced-motion: no-preference) {
.media-slider-preview:before {
content: "";
transition-property: opacity, scale;
transition-duration: 0.2s;
transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
}
}
.media-slider-preview:where(.media-skin:not(.media-skin--minimal), .media-skin:not(.media-skin--minimal) *) {
min-width: var(--media-slider-preview-max-width);
--media-slider-preview-max-width: min(calc(var(--media-spacing) * 36), 100cqi);
}
.media-slider-preview:where(.media-skin:not(.media-skin--minimal), .media-skin:not(.media-skin--minimal) *):before {
width: calc(var(--media-spacing) * 1);
height: calc(var(--media-spacing) * 1);
border-radius: var(--media-control-radius);
content: "";
background-color: currentColor;
top: 50%;
left: 50%;
}
@container media-root (width >= 42rem) {
.media-slider-preview:where(.media-skin:not(.media-skin--minimal), .media-skin:not(.media-skin--minimal) *) {
--media-slider-preview-max-width: min(calc(var(--media-spacing) * 48), 100cqi);
}
}
.media-slider-preview:where(.media-skin--minimal, .media-skin--minimal *) {
--media-preview-end-inset: calc(100cqi - 100%);
--media-preview-left: clamp(
calc(var(--media-slider-preview-max-width) / 2),
var(--media-slider-pointer),
calc(100% - var(--media-slider-preview-max-width) / 2 + var(--media-preview-end-inset))
);
--media-slider-preview-max-width: min(calc(var(--media-spacing) * 28), 100cqi);
min-width: 100%;
}
.media-slider-preview:where(.media-skin--minimal, .media-skin--minimal *):before {
content: "";
background-color: currentColor;
}
@supports (color: color-mix(in lab, red, red)) {
.media-slider-preview:where(.media-skin--minimal, .media-skin--minimal *):before {
background-color: color-mix(in oklab, currentcolor 35%, transparent);
}
}
.media-slider-preview:where(.media-skin--minimal, .media-skin--minimal *)[data-orientation="horizontal"]:before {
top: 50%;
left: var(--media-slider-pointer);
height: calc(var(--media-spacing) * 5);
content: "";
width: 1px;
}
.media-slider-preview:where(.media-skin--minimal, .media-skin--minimal *)[data-orientation="vertical"]:before {
top: calc(100% - var(--media-slider-pointer));
content: "";
height: 1px;
width: calc(var(--media-spacing) * 5);
left: 50%;
}
@container media-root (width >= 32rem) {
.media-slider-preview:where(.media-skin--minimal, .media-skin--minimal *) {
--media-slider-preview-max-width: min(calc(var(--media-spacing) * 36), 100cqi);
}
}
@container media-root (width >= 42rem) {
.media-slider-preview:where(.media-skin--minimal, .media-skin--minimal *) {
--media-preview-left: var(--media-slider-pointer);
--media-slider-preview-max-width: min(calc(var(--media-spacing) * 48), 100cqi);
}
}
.media-slider-thumbnail {
pointer-events: none;
max-width: var(--media-slider-preview-max-width);
transform-origin: bottom;
translate: -50% calc(var(--media-spacing) * 2);
background-color: var(--media-popover);
color: var(--media-popover-foreground);
opacity: 0;
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 0 calc(1px + 0px) var(--media-border),
0 0 #0000;
box-shadow: var(--media-shadow-sm);
filter: blur(8px);
backdrop-filter: blur(16px) saturate(150%);
position: absolute;
overflow: hidden;
scale: 0.8;
}
:where(.media-slider):has(:focus-visible) .media-slider-thumbnail,
:where(.media-slider-preview)[data-pointing] .media-slider-thumbnail {
opacity: 1;
filter: none;
scale: 1;
}
.media-slider-thumbnail:after {
pointer-events: none;
inset: calc(var(--media-spacing) * 0);
z-index: 10;
border-radius: inherit;
content: "";
position: absolute;
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 #0000,
inset 0 1px #ffffff1a,
inset 0 0 0 1px #ffffff0d;
}
.media-slider-thumbnail:has([data-loading]) {
aspect-ratio: 16 / 9;
width: var(--media-slider-preview-max-width);
}
@media (prefers-reduced-motion: no-preference) {
.media-slider-thumbnail {
transition-property: filter, opacity, scale;
transition-duration: 0.15s;
transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
}
}
@media (prefers-contrast: more) {
.media-slider-thumbnail {
background-color: var(--media-background);
backdrop-filter: none;
}
.media-slider-thumbnail:after {
content: "";
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 #0000,
inset 0 1px #ffffff40,
inset 0 0 0 1px #ffffff20;
}
}
@media (forced-colors: active) {
.media-slider-thumbnail {
color: canvastext;
background-color: canvas;
}
.media-slider-thumbnail:after {
content: "";
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 #0000,
inset 0 1px canvastext,
inset 0 0 0 1px canvastext;
}
}
.media-slider-thumbnail:where(.media-skin:not(.media-skin--minimal), .media-skin:not(.media-skin--minimal) *) {
bottom: calc(100% + calc(var(--media-spacing) * 9));
background-color: oklab(0% none none / 0.9);
border-radius: 0.75rem;
left: 50%;
}
.media-slider-thumbnail:where(.media-skin--minimal, .media-skin--minimal *) {
bottom: calc(100% + calc(var(--media-spacing) * 14));
left: var(--media-preview-left, var(--media-slider-pointer));
background-color: oklab(0% none none / 0.9);
border-radius: 0.5rem;
}
.media-slider-thumbnail:where(.media-skin--minimal, .media-skin--minimal *):after {
content: "";
display: none;
}
@media (prefers-reduced-transparency: reduce) {
.media-slider-thumbnail {
background-color: var(--media-background);
backdrop-filter: none;
}
.media-slider-thumbnail:after {
content: "";
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 #0000,
inset 0 1px #ffffff40,
inset 0 0 0 1px #ffffff20;
}
}
.media-slider-thumbnail-image {
max-height: var(--media-slider-preview-max-height);
max-width: var(--media-slider-preview-max-width);
border-radius: inherit;
transition-property: opacity;
transition-duration: 0.15s;
transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
display: block;
position: relative;
overflow: clip;
}
.media-slider-thumbnail-image[data-loading] {
opacity: 0;
}
@media (prefers-reduced-motion: reduce) {
.media-slider-thumbnail-image {
transition-duration: 50ms;
}
}
.media-slider-thumbnail-spinner-icon {
width: var(--media-icon-size, calc(var(--media-spacing) * 4.5));
height: var(--media-icon-size, calc(var(--media-spacing) * 4.5));
opacity: 0;
filter: drop-shadow(0 1px 0 var(--media-shadow-current-color));
transition-property: opacity;
transition-duration: 0.15s;
transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
position: absolute;
top: 50%;
left: 50%;
translate: -50% -50%;
}
@scope (.media-slider-thumbnail) {
&:not(:has([role="img"][data-loading])) .media-slider-thumbnail-spinner-icon {
--media-spinner-animation: none;
}
}
@scope (.media-slider-thumbnail) {
&:has([role="img"][data-loading]) .media-slider-thumbnail-spinner-icon {
opacity: 1;
}
}
@media (prefers-reduced-motion: reduce) {
.media-slider-thumbnail-spinner-icon {
--media-spinner-animation: none;
}
}
.media-time-slider-chapter {
inset: calc(var(--media-spacing) * 0);
min-height: calc(var(--media-spacing) * 0);
min-width: calc(var(--media-spacing) * 0);
--media-chapter-inset-end: 0.5;
--media-chapter-inset-start: 0.5;
justify-content: center;
align-items: center;
display: flex;
position: absolute;
}
.media-time-slider-chapter:first-child {
--media-chapter-inset-start: 0;
}
.media-time-slider-chapter:last-child {
--media-chapter-inset-end: 0;
}
.media-time-slider-chapter[data-orientation="horizontal"] {
clip-path: inset(0 calc(100% - var(--media-slider-chapter-end)) 0 var(--media-slider-chapter-start));
}
.media-time-slider-chapter[data-orientation="vertical"] {
clip-path: inset(calc(100% - var(--media-slider-chapter-end)) 0 var(--media-slider-chapter-start) 0);
}
.media-time-slider-chapter-title {
max-width: var(--media-slider-preview-max-width);
min-width: calc(var(--media-spacing) * 0);
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
}
.media-time-slider-chapter-title:empty {
display: none;
}
.media-time-slider-chapter-title:where(
.media-skin:not(.media-skin--minimal),
.media-skin:not(.media-skin--minimal) *
) {
padding-inline: calc(var(--media-spacing) * 6);
}
.media-time-slider-chapter-track[data-orientation="horizontal"] {
clip-path: inset(
0 calc(100% - var(--media-slider-chapter-end) + var(--media-spacing) * var(--media-chapter-inset-end)) 0
calc(var(--media-slider-chapter-start) + var(--media-spacing) * var(--media-chapter-inset-start)) round
var(--media-control-radius)
);
}
@scope (.media-time-slider-chapter) {
&[data-highlighted] .media-time-slider-chapter-track[data-orientation="horizontal"] {
height: calc(var(--media-spacing) * 1.75);
}
}
.media-time-slider-chapter-track[data-orientation="vertical"] {
clip-path: inset(
calc(100% - var(--media-slider-chapter-end) + var(--media-spacing) * var(--media-chapter-inset-end)) 0
calc(var(--media-slider-chapter-start) + var(--media-spacing) * var(--media-chapter-inset-start)) 0 round
var(--media-control-radius)
);
}
@scope (.media-time-slider-chapter) {
&[data-highlighted] .media-time-slider-chapter-track[data-orientation="vertical"] {
width: calc(var(--media-spacing) * 1.75);
}
}
@media (prefers-reduced-motion: no-preference) {
.media-time-slider-chapter-track {
transition-property: height, width;
transition-duration: 0.2s;
transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
}
}
.media-time-slider-chapters {
width: 100%;
height: 100%;
min-height: calc(var(--media-spacing) * 0);
min-width: calc(var(--media-spacing) * 0);
border-radius: inherit;
flex: 1;
align-items: center;
display: flex;
position: relative;
}
.media-time-slider-preview-content {
max-width: var(--media-slider-preview-max-width);
transform-origin: bottom;
translate: -50% calc(var(--media-spacing) * 2);
font-variant-numeric: tabular-nums;
opacity: 0;
filter: blur(8px);
display: flex;
position: absolute;
scale: 0.8;
}
:where(.media-slider):has(:focus-visible) .media-time-slider-preview-content,
:where(.media-slider-preview)[data-pointing] .media-time-slider-preview-content {
opacity: 1;
filter: none;
scale: 1;
}
@media (prefers-reduced-motion: no-preference) {
.media-time-slider-preview-content {
transition-property: filter, opacity, scale;
transition-duration: 0.15s;
transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
}
}
.media-time-slider-preview-content:where(
.media-skin:not(.media-skin--minimal),
.media-skin:not(.media-skin--minimal) *
) {
bottom: calc(100% + calc(var(--media-spacing) * 12.5));
flex-direction: column;
align-items: center;
left: 50%;
}
.media-time-slider-preview-content:where(.media-skin--minimal, .media-skin--minimal *) {
bottom: calc(100% + calc(var(--media-spacing) * 7));
left: var(--media-preview-left, var(--media-slider-pointer));
justify-content: center;
gap: calc(var(--media-spacing) * 2);
padding-inline: calc(var(--media-spacing) * 3);
flex-direction: row-reverse;
}
.media-time-slider-thumb {
width: calc(var(--media-spacing) * 3);
height: calc(var(--media-spacing) * 3);
opacity: 0;
}
.media-time-slider-thumb:focus-visible,
.media-time-slider-thumb[data-interactive] {
opacity: 1;
}
@media (pointer: fine) {
@media (hover: hover) {
@scope (.media-slider) {
&:hover .media-time-slider-thumb {
opacity: 1;
scale: 1;
}
}
}
}
.media-time-slider-thumb:where(.media-skin:not(.media-skin--minimal), .media-skin:not(.media-skin--minimal) *) {
outline-offset: -4px;
outline: 4px solid #0000;
scale: 0.8;
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 0 1px #0000001a,
0 1px 3px #00000059,
0 1px 2px -1px #00000059;
}
.media-time-slider-thumb:where(
.media-skin:not(.media-skin--minimal),
.media-skin:not(.media-skin--minimal) *
):after {
pointer-events: none;
inset: calc(var(--media-spacing) * -1);
border-radius: inherit;
opacity: 0;
content: "";
position: absolute;
scale: 0.5;
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 0 2px;
}
@media (hover: hover) {
.media-time-slider-thumb:where(
.media-skin:not(.media-skin--minimal),
.media-skin:not(.media-skin--minimal) *
):hover {
outline-offset: 0px;
outline-color: currentColor;
}
@supports (color: color-mix(in lab, red, red)) {
.media-time-slider-thumb:where(
.media-skin:not(.media-skin--minimal),
.media-skin:not(.media-skin--minimal) *
):hover {
outline-color: color-mix(in oklab, currentcolor 15%, transparent);
}
}
}
.media-time-slider-thumb:where(
.media-skin:not(.media-skin--minimal),
.media-skin:not(.media-skin--minimal) *
):focus-visible {
outline-offset: 0px;
outline-color: currentColor;
}
@supports (color: color-mix(in lab, red, red)) {
.media-time-slider-thumb:where(
.media-skin:not(.media-skin--minimal),
.media-skin:not(.media-skin--minimal) *
):focus-visible {
outline-color: color-mix(in oklab, currentcolor 15%, transparent);
}
}
.media-time-slider-thumb:where(
.media-skin:not(.media-skin--minimal),
.media-skin:not(.media-skin--minimal) *
):focus-visible:after {
content: "";
opacity: 1;
scale: 1;
}
@media (prefers-reduced-motion: no-preference) {
.media-time-slider-thumb:where(
.media-skin:not(.media-skin--minimal),
.media-skin:not(.media-skin--minimal) *
):after {
content: "";
transition-property: opacity, scale;
transition-duration: 0.15s;
transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
}
}
.media-time-slider-thumb:where(.media-skin--minimal, .media-skin--minimal *) {
outline-offset: -2px;
outline: 2px solid #0000;
scale: 0.7;
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 0 1px #00000026,
0 1px 3px #00000026,
0 1px 2px -1px #00000026;
}
.media-time-slider-thumb:where(.media-skin--minimal, .media-skin--minimal *):focus-visible {
outline-offset: 2px;
outline-color: #fff;
}
.media-time-slider-thumb:where(.media-skin--minimal, .media-skin--minimal *)[data-interactive] {
scale: 1;
}
.media-time-slider-value {
font-variant-numeric: tabular-nums;
}
}
@scope (.media-skin--video) {
.media-container,
:scope.media-container {
isolation: isolate;
border-radius: var(--media-video-border-radius);
background-color: var(--media-background);
width: 100%;
height: 100%;
font-family:
Inter Variable,
Inter,
ui-sans-serif,
system-ui,
sans-serif;
font-size: calc(var(--media-spacing) * 3.25);
-webkit-font-smoothing: auto;
-moz-osx-font-smoothing: auto;
outline-offset: -4px;
--media-shadow-current-color: oklch(from currentColor 0 0 0/clamp(0, calc((l - 0.5) * 0.5), 0.15));
--media-shadow-subtle-current-color: oklch(from var(--media-shadow-current-color) l c h/calc(alpha * 0.4));
--spacing: var(--media-spacing);
outline: 2px solid #0000;
line-height: 1.5;
transition-property: outline-offset, outline-color;
transition-duration: 0.1s;
transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
display: block;
position: relative;
overflow: clip;
container: media-root / size;
}
.media-container:after,
:scope.media-container:after {
pointer-events: none;
inset: calc(var(--media-spacing) * 0);
z-index: 10;
border-radius: inherit;
content: "";
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 #0000,
inset 0 0 0 1px var(--media-border);
position: absolute;
}
.media-container:focus-visible,
:scope.media-container:focus-visible {
outline-offset: 2px;
outline-color: var(--media-focus-ring-color, light-dark(#000, #fff));
}
@media (prefers-reduced-motion: reduce) {
.media-container,
:scope.media-container {
transition-duration: 50ms;
}
}
@media (forced-colors: active) {
.media-container:after,
:scope.media-container:after {
content: "";
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 #0000,
inset 0 0 0 1px canvastext;
}
.media-container:focus-visible,
:scope.media-container:focus-visible {
outline-color: canvastext;
}
}
@media (pointer: fine) {
.media-container:not([data-controls-visible]),
:scope.media-container:not([data-controls-visible]) {
cursor: none;
}
}
.media-container:fullscreen,
:scope.media-container:fullscreen {
--media-object-fit: contain;
--media-video-border-radius: 0;
}
.media-container:fullscreen:after,
:scope.media-container:fullscreen:after {
content: "";
display: none;
}
@media (width >= 1280px) {
.media-container:fullscreen,
:scope.media-container:fullscreen {
--media-scale: 1.25;
}
}
@media (width >= 1536px) {
.media-container:fullscreen,
:scope.media-container:fullscreen {
--media-scale: 1.5;
}
}
@media (width >= 1920px) {
.media-container:fullscreen,
:scope.media-container:fullscreen {
--media-scale: 1.75;
}
}
}
@scope (.media-skin--video) {
.media-dialog-actions {
gap: calc(var(--media-spacing) * 2);
flex-shrink: 0;
display: flex;
}
.media-dialog-backdrop {
inset: calc(var(--media-spacing) * 0);
z-index: 40;
opacity: 1;
backdrop-filter: blur(16px) saturate(150%);
background-color: oklab(0% none none / 0.2);
transition: opacity 0.15s cubic-bezier(0, 0, 0.2, 1) 0.1s;
position: absolute;
}
.media-dialog-backdrop:not([data-open]) {
display: none;
}
.media-dialog-backdrop[data-ending-style] {
opacity: 0;
transition-delay: 0s;
}
.media-dialog-backdrop[data-starting-style] {
opacity: 0;
}
@media (prefers-reduced-motion: reduce) {
.media-dialog-backdrop {
transition-duration: 50ms;
transition-delay: 0s;
}
}
.media-dialog-backdrop:where(.media-skin:not(.media-skin--minimal), .media-skin:not(.media-skin--minimal) *) {
transition-duration: 0.35s;
}
.media-dialog-backdrop:where(
.media-skin:not(.media-skin--minimal),
.media-skin:not(.media-skin--minimal) *
)[data-ending-style] {
transition-duration: 0.25s;
}
@media (prefers-reduced-motion: reduce) {
.media-dialog-backdrop:where(
.media-skin:not(.media-skin--minimal),
.media-skin:not(.media-skin--minimal) *
)[data-ending-style] {
transition-duration: 50ms;
}
}
.media-dialog-backdrop:where(.media-skin--minimal, .media-skin--minimal *) {
backdrop-filter: saturate(120%);
transition-duration: 0.15s;
}
.media-dialog-backdrop:where(.media-skin--minimal, .media-skin--minimal *)[data-ending-style] {
transition-duration: 50ms;
}
@media (prefers-reduced-motion: reduce) {
.media-dialog-backdrop:where(.media-skin--minimal, .media-skin--minimal *)[data-ending-style] {
transition-duration: 50ms;
}
}
.media-dialog-close {
height: var(--media-control-size);
width: 100%;
padding-inline: calc(var(--media-spacing) * 4);
padding-block: calc(var(--media-spacing) * 2);
flex: 1;
font-weight: 500;
background-color: var(--media-primary) !important;
color: var(--media-accent-foreground) !important;
}
.media-dialog-content {
min-height: calc(var(--media-spacing) * 0);
gap: calc(var(--media-spacing) * 2);
flex-direction: column;
display: flex;
overflow-y: auto;
}
.media-dialog-content:where(.media-skin:not(.media-skin--minimal), .media-skin:not(.media-skin--minimal) *) {
padding-inline: calc(var(--media-spacing) * 2);
padding-top: calc(var(--media-spacing) * 2);
padding-bottom: calc(var(--media-spacing) * 1.5);
}
.media-dialog-content:where(.media-skin--minimal, .media-skin--minimal *) {
padding-block: calc(var(--media-spacing) * 1.5);
}
.media-dialog-description {
margin: calc(var(--media-spacing) * 0);
overflow-wrap: anywhere;
opacity: 0.7;
}
.media-dialog-popup {
z-index: 50;
gap: calc(var(--media-spacing) * 3);
outline-style: none;
flex-direction: column;
max-height: calc(100% - 0.5rem);
transition:
opacity 0.15s cubic-bezier(0, 0, 0.2, 1) 0.1s,
scale 0.15s cubic-bezier(0, 0, 0.2, 1) 0.1s;
display: flex;
position: absolute;
top: 50%;
left: 50%;
translate: -50% -50%;
}
.media-dialog-popup:not([data-open]) {
display: none;
}
.media-dialog-popup[data-ending-style] {
opacity: 0;
transition-delay: 0s;
scale: 0.95;
}
.media-dialog-popup[data-starting-style] {
opacity: 0;
scale: 0.95;
}
@media (prefers-reduced-motion: reduce) {
.media-dialog-popup {
transition-duration: 50ms;
transition-delay: 0s;
}
}
.media-dialog-popup:where(.media-skin:not(.media-skin--minimal), .media-skin:not(.media-skin--minimal) *) {
width: calc(100% - 1.5rem);
max-width: calc(var(--media-spacing) * 72);
background-color: var(--media-popover);
padding: calc(var(--media-spacing) * 3);
color: #fff;
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 0 calc(1px + 0px) var(--media-border),
0 0 #0000;
box-shadow: var(--media-shadow-sm);
backdrop-filter: blur(16px) saturate(150%);
text-shadow: 0 1px #00000040;
border-radius: 1.75rem;
transition-duration: 0.35s;
}
.media-dialog-popup:where(.media-skin:not(.media-skin--minimal), .media-skin:not(.media-skin--minimal) *):after {
pointer-events: none;
inset: calc(var(--media-spacing) * 0);
z-index: 10;
border-radius: inherit;
content: "";
position: absolute;
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 #0000,
inset 0 1px #ffffff1a,
inset 0 0 0 1px #ffffff0d;
}
.media-dialog-popup:where(
.media-skin:not(.media-skin--minimal),
.media-skin:not(.media-skin--minimal) *
)[data-ending-style] {
transition-duration: 0.25s;
}
@media (prefers-reduced-motion: reduce) {
.media-dialog-popup:where(
.media-skin:not(.media-skin--minimal),
.media-skin:not(.media-skin--minimal) *
)[data-ending-style] {
transition-duration: 50ms;
}
}
@media (prefers-contrast: more) {
.media-dialog-popup:where(.media-skin:not(.media-skin--minimal), .media-skin:not(.media-skin--minimal) *) {
background-color: var(--media-background);
backdrop-filter: none;
}
.media-dialog-popup:where(.media-skin:not(.media-skin--minimal), .media-skin:not(.media-skin--minimal) *):after {
content: "";
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 #0000,
inset 0 1px #ffffff40,
inset 0 0 0 1px #ffffff20;
}
}
@media (forced-colors: active) {
.media-dialog-popup:where(.media-skin:not(.media-skin--minimal), .media-skin:not(.media-skin--minimal) *) {
color: canvastext;
background-color: canvas;
}
.media-dialog-popup:where(.media-skin:not(.media-skin--minimal), .media-skin:not(.media-skin--minimal) *):after {
content: "";
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 #0000,
inset 0 1px canvastext,
inset 0 0 0 1px canvastext;
}
}
.media-dialog-popup:where(.media-skin--minimal, .media-skin--minimal *) {
width: 100%;
max-width: calc(var(--media-spacing) * 64);
padding: calc(var(--media-spacing) * 4);
color: #fff;
text-shadow: 0 1px #00000080;
transition-duration: 0.15s;
}
.media-dialog-popup:where(.media-skin--minimal, .media-skin--minimal *)[data-ending-style] {
transition-duration: 50ms;
}
@media (prefers-reduced-motion: reduce) {
.media-dialog-popup:where(.media-skin--minimal, .media-skin--minimal *)[data-ending-style] {
transition-duration: 50ms;
}
}
@media (prefers-reduced-transparency: reduce) {
.media-dialog-popup:where(.media-skin:not(.media-skin--minimal), .media-skin:not(.media-skin--minimal) *) {
background-color: var(--media-background);
backdrop-filter: none;
}
.media-dialog-popup:where(.media-skin:not(.media-skin--minimal), .media-skin:not(.media-skin--minimal) *):after {
content: "";
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 #0000,
inset 0 1px #ffffff40,
inset 0 0 0 1px #ffffff20;
}
}
.media-dialog-title {
margin: calc(var(--media-spacing) * 0);
font-size: calc(var(--media-spacing) * 3.75);
font-weight: 600;
line-height: 1.25;
}
}
@scope (.media-skin--video) {
.media-airplay-button:not([data-airplay-state="connected"]) {
--media-icon-airplay-fill-animation: none;
--media-icon-airplay-triangle-animation: none;
}
@media (prefers-reduced-motion: reduce) {
.media-airplay-button {
--media-icon-airplay-fill-animation: none;
--media-icon-airplay-triangle-animation: none;
}
}
.media-airplay-button-enter-icon {
opacity: 0;
}
@scope (.media-airplay-button) {
&:not([data-airplay-state="connected"]) .media-airplay-button-enter-icon {
opacity: 1;
scale: 1;
}
}
.media-airplay-button-exit-icon {
opacity: 0;
}
@scope (.media-airplay-button) {
&[data-airplay-state="connected"] .media-airplay-button-exit-icon {
opacity: 1;
scale: 1;
}
}
@media (prefers-reduced-motion: reduce) {
}
}
@scope (.media-skin--video) {
@media (prefers-reduced-motion: reduce) {
}
.media-play-button-pause-icon {
opacity: 0;
scale: 0;
}
@scope (.media-play-button) {
&[data-started]:not([data-paused]):not([data-ended]) .media-play-button-pause-icon {
opacity: 1;
scale: 1;
}
}
@media (prefers-reduced-motion: reduce) {
.media-play-button-pause-icon {
scale: 1;
}
}
.media-play-button-play-icon {
opacity: 0;
scale: 0;
}
@scope (.media-play-button) {
&:not([data-ended]):not([data-started]) .media-play-button-play-icon,
&:not([data-ended])[data-paused] .media-play-button-play-icon {
opacity: 1;
scale: 1;
}
}
@media (prefers-reduced-motion: reduce) {
.media-play-button-play-icon {
scale: 1;
}
}
.media-play-button-restart-icon {
opacity: 0;
scale: 0;
}
@scope (.media-play-button) {
&[data-ended] .media-play-button-restart-icon {
opacity: 1;
scale: 1;
}
}
@media (prefers-reduced-motion: reduce) {
.media-play-button-restart-icon {
scale: 1;
}
}
}
@scope (.media-skin--video) {
.media-seek-indicator {
place-content: center;
gap: calc(var(--media-spacing) * 1);
padding: calc(var(--media-spacing) * 4);
text-align: center;
grid-row-start: 1;
grid-column-start: 2;
display: grid;
}
.media-seek-indicator[data-direction="backward"] {
grid-column-start: 1;
justify-self: flex-start;
}
.media-seek-indicator[data-direction="forward"] {
grid-column-start: 3;
justify-self: flex-end;
}
@container media-root (width >= 42rem) {
.media-seek-indicator {
padding: calc(var(--media-spacing) * 6);
}
}
.media-seek-indicator-icon {
width: calc(var(--media-icon-size, calc(var(--media-spacing) * 4.5)) * 1.5);
height: calc(var(--media-icon-size, calc(var(--media-spacing) * 4.5)) * 1.5);
display: none;
}
@scope (.media-seek-indicator) {
&[data-direction] .media-seek-indicator-icon {
display: block;
}
}
@scope (.media-seek-indicator) {
&[data-direction="backward"] .media-seek-indicator-icon {
scale: -1 1;
}
}
@media (prefers-reduced-motion: no-preference) {
.media-seek-indicator-icon {
transition-property: translate, opacity;
transition-duration: 0.2s;
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
}
@scope (.media-seek-indicator) {
&[data-ending-style] .media-seek-indicator-icon,
&[data-starting-style] .media-seek-indicator-icon {
opacity: 0;
}
}
@scope (.media-seek-indicator) {
&[data-direction="backward"][data-starting-style] .media-seek-indicator-icon {
translate: 60%;
}
}
@scope (.media-seek-indicator) {
&[data-direction="forward"][data-starting-style] .media-seek-indicator-icon {
translate: -60%;
}
}
}
.media-seek-indicator-value {
font-variant-numeric: tabular-nums;
}
}
@scope (.media-skin--video) {
.media-playback-status-indicator {
padding: calc(var(--media-spacing) * 4);
text-align: center;
grid-row-start: 1;
grid-column-start: 2;
place-content: center;
transition-property: opacity, scale;
transition-duration: 0.2s;
transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
display: grid;
}
.media-playback-status-indicator[data-ending-style] {
opacity: 0;
transition-duration: 0.1s;
transition-timing-function: cubic-bezier(0.4, 0, 1, 1);
scale: 0.85;
}
.media-playback-status-indicator[data-starting-style] {
opacity: 0;
scale: 0.85;
}
@media (prefers-reduced-motion: reduce) {
.media-playback-status-indicator {
transition-property: opacity;
transition-duration: 50ms;
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
}
.media-playback-status-indicator[data-ending-style],
.media-playback-status-indicator[data-starting-style] {
scale: 1;
}
}
.media-playback-status-indicator:where(
.media-skin:not(.media-skin--minimal),
.media-skin:not(.media-skin--minimal) *
) {
backdrop-filter: blur(8px);
background-color: oklab(0% none none / 0.35);
border-radius: 9999px;
}
.media-playback-status-indicator-pause-icon {
opacity: 0;
grid-row-start: 1;
grid-column-start: 1;
transition-property: opacity, scale;
transition-duration: 0.15s;
transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
scale: 0;
}
@scope (.media-playback-status-indicator) {
&[data-status="pause"] .media-playback-status-indicator-pause-icon {
opacity: 1;
scale: 1;
}
}
@media (prefers-reduced-motion: reduce) {
.media-playback-status-indicator-pause-icon {
transition-property: opacity;
transition-duration: 50ms;
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
scale: 1;
}
}
.media-playback-status-indicator-pause-icon:where(
.media-skin:not(.media-skin--minimal),
.media-skin:not(.media-skin--minimal) *
) {
width: calc(var(--media-icon-size, calc(var(--media-spacing) * 4.5)) * 1.5);
height: calc(var(--media-icon-size, calc(var(--media-spacing) * 4.5)) * 1.5);
}
.media-playback-status-indicator-pause-icon:where(.media-skin--minimal, .media-skin--minimal *) {
width: calc(var(--media-icon-size, calc(var(--media-spacing) * 4.5)) * 2);
height: calc(var(--media-icon-size, calc(var(--media-spacing) * 4.5)) * 2);
}
.media-playback-status-indicator-play-icon {
opacity: 0;
grid-row-start: 1;
grid-column-start: 1;
transition-property: opacity, scale;
transition-duration: 0.15s;
transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
scale: 0;
}
@scope (.media-playback-status-indicator) {
&[data-status="play"] .media-playback-status-indicator-play-icon {
opacity: 1;
scale: 1;
}
}
@media (prefers-reduced-motion: reduce) {
.media-playback-status-indicator-play-icon {
transition-property: opacity;
transition-duration: 50ms;
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
scale: 1;
}
}
.media-playback-status-indicator-play-icon:where(
.media-skin:not(.media-skin--minimal),
.media-skin:not(.media-skin--minimal) *
) {
width: calc(var(--media-icon-size, calc(var(--media-spacing) * 4.5)) * 1.5);
height: calc(var(--media-icon-size, calc(var(--media-spacing) * 4.5)) * 1.5);
}
@scope (.media-playback-status-indicator) {
&[data-status="play"]
.media-playback-status-indicator-play-icon:where(
.media-skin:not(.media-skin--minimal),
.media-skin:not(.media-skin--minimal) *
) {
translate: 1px;
}
}
.media-playback-status-indicator-play-icon:where(.media-skin--minimal, .media-skin--minimal *) {
width: calc(var(--media-icon-size, calc(var(--media-spacing) * 4.5)) * 2);
height: calc(var(--media-icon-size, calc(var(--media-spacing) * 4.5)) * 2);
}
.media-status-indicator {
pointer-events: none;
transform-origin: top;
color: inherit;
position: absolute;
}
.media-status-indicator[data-ending-style],
.media-status-indicator[data-starting-style] {
opacity: 0;
}
.media-status-indicator:where(.media-skin:not(.media-skin--minimal), .media-skin:not(.media-skin--minimal) *) {
top: calc(var(--media-spacing) * 3);
background-color: oklab(0% none none / 0.25);
background-color: var(--media-popover);
color: var(--media-popover-foreground);
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 0 calc(1px + 0px) var(--media-border),
0 0 #0000;
box-shadow: var(--media-shadow-sm);
backdrop-filter: blur(16px) saturate(150%);
border-radius: 9999px;
font-weight: 500;
transition-duration: 0.1s;
transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
}
.media-status-indicator:where(
.media-skin:not(.media-skin--minimal),
.media-skin:not(.media-skin--minimal) *
):after {
pointer-events: none;
inset: calc(var(--media-spacing) * 0);
z-index: 10;
border-radius: inherit;
content: "";
position: absolute;
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 #0000,
inset 0 1px #ffffff1a,
inset 0 0 0 1px #ffffff0d;
}
.media-status-indicator:where(
.media-skin:not(.media-skin--minimal),
.media-skin:not(.media-skin--minimal) *
)[data-ending-style],
.media-status-indicator:where(
.media-skin:not(.media-skin--minimal),
.media-skin:not(.media-skin--minimal) *
)[data-starting-style] {
transition-duration: 0.25s;
transition-timing-function: cubic-bezier(0.4, 0, 1, 1);
}
@media (prefers-reduced-motion: no-preference) {
.media-status-indicator:where(
.media-skin:not(.media-skin--minimal),
.media-skin:not(.media-skin--minimal) *
)[data-ending-style] {
translate: 0 -25%;
}
}
@media (prefers-contrast: more) {
.media-status-indicator:where(.media-skin:not(.media-skin--minimal), .media-skin:not(.media-skin--minimal) *) {
background-color: var(--media-background);
backdrop-filter: none;
}
.media-status-indicator:where(
.media-skin:not(.media-skin--minimal),
.media-skin:not(.media-skin--minimal) *
):after {
content: "";
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 #0000,
inset 0 1px #ffffff40,
inset 0 0 0 1px #ffffff20;
}
}
@media (forced-colors: active) {
.media-status-indicator:where(.media-skin:not(.media-skin--minimal), .media-skin:not(.media-skin--minimal) *) {
color: canvastext;
background-color: canvas;
}
.media-status-indicator:where(
.media-skin:not(.media-skin--minimal),
.media-skin:not(.media-skin--minimal) *
):after {
content: "";
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 #0000,
inset 0 1px canvastext,
inset 0 0 0 1px canvastext;
}
}
@media (pointer: coarse) {
.media-status-indicator:where(.media-skin:not(.media-skin--minimal), .media-skin:not(.media-skin--minimal) *) {
will-change: scale, translate, opacity;
transition-property: scale, translate, opacity;
}
}
@media (pointer: fine) {
@media (prefers-reduced-motion: no-preference) {
.media-status-indicator:where(.media-skin:not(.media-skin--minimal), .media-skin:not(.media-skin--minimal) *) {
will-change: scale, translate, filter, opacity;
transition-property: scale, translate, filter, opacity;
}
.media-status-indicator:where(
.media-skin:not(.media-skin--minimal),
.media-skin:not(.media-skin--minimal) *
)[data-ending-style],
.media-status-indicator:where(
.media-skin:not(.media-skin--minimal),
.media-skin:not(.media-skin--minimal) *
)[data-starting-style] {
filter: blur(8px);
scale: 0.9;
}
}
}
.media-status-indicator:where(.media-skin--minimal, .media-skin--minimal *) {
inset-inline: calc(var(--media-spacing) * 0);
top: calc(var(--media-spacing) * 0);
background-image: linear-gradient(
to bottom,
oklch(0% 0 0 / 0.35),
oklch(0% 0 0 / 0.2) calc(var(--media-spacing) * 12),
transparent
);
padding-top: calc(var(--media-spacing) * 3);
padding-bottom: calc(var(--media-spacing) * 32);
text-shadow: 0 1px 0 var(--media-shadow-current-color);
justify-content: center;
transition-duration: 0.1s;
transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
display: flex;
}
.media-status-indicator:where(.media-skin--minimal, .media-skin--minimal *)[data-ending-style],
.media-status-indicator:where(.media-skin--minimal, .media-skin--minimal *)[data-starting-style] {
transition-duration: 0.4s;
transition-timing-function: cubic-bezier(0.4, 0, 1, 1);
}
@media (prefers-reduced-motion: no-preference) {
.media-status-indicator:where(.media-skin--minimal, .media-skin--minimal *)[data-ending-style] {
translate: 0 -100%;
}
}
@media (pointer: coarse) {
.media-status-indicator:where(.media-skin--minimal, .media-skin--minimal *) {
will-change: translate, opacity;
transition-property: translate, opacity;
}
}
@media (pointer: fine) {
.media-status-indicator:where(.media-skin--minimal, .media-skin--minimal *) {
will-change: translate, filter, opacity;
transition-property: translate, filter, opacity;
}
@media (prefers-reduced-motion: no-preference) {
.media-status-indicator:where(.media-skin--minimal, .media-skin--minimal *)[data-ending-style],
.media-status-indicator:where(.media-skin--minimal, .media-skin--minimal *)[data-starting-style] {
filter: blur(8px);
}
}
}
@media (prefers-reduced-transparency: reduce) {
.media-status-indicator:where(.media-skin:not(.media-skin--minimal), .media-skin:not(.media-skin--minimal) *) {
background-color: var(--media-background);
backdrop-filter: none;
}
.media-status-indicator:where(
.media-skin:not(.media-skin--minimal),
.media-skin:not(.media-skin--minimal) *
):after {
content: "";
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 #0000,
inset 0 1px #ffffff40,
inset 0 0 0 1px #ffffff20;
}
}
.media-status-indicator-captions-off-icon {
flex-shrink: 0;
display: none;
}
@scope (.media-status-indicator) {
&[data-status="captions-off"] .media-status-indicator-captions-off-icon {
display: block;
}
}
.media-status-indicator-captions-off-icon:where(
.media-skin:not(.media-skin--minimal),
.media-skin:not(.media-skin--minimal) *
) {
mix-blend-mode: difference;
}
.media-status-indicator-captions-off-icon:where(.media-skin--minimal, .media-skin--minimal *) {
filter: drop-shadow(0 1px 0 var(--media-shadow-current-color));
}
.media-status-indicator-captions-on-icon {
flex-shrink: 0;
display: none;
}
@scope (.media-status-indicator) {
&[data-status="captions-on"] .media-status-indicator-captions-on-icon {
display: block;
}
}
.media-status-indicator-captions-on-icon:where(
.media-skin:not(.media-skin--minimal),
.media-skin:not(.media-skin--minimal) *
) {
mix-blend-mode: difference;
}
.media-status-indicator-captions-on-icon:where(.media-skin--minimal, .media-skin--minimal *) {
filter: drop-shadow(0 1px 0 var(--media-shadow-current-color));
}
.media-status-indicator-content {
justify-content: space-between;
align-items: center;
gap: calc(var(--media-spacing) * 2);
padding-inline: calc(var(--media-spacing) * 2.5);
padding-block: calc(var(--media-spacing) * 1);
display: flex;
}
.media-status-indicator-content:where(
.media-skin:not(.media-skin--minimal),
.media-skin:not(.media-skin--minimal) *
) {
width: 100%;
}
@media (prefers-contrast: more) {
.media-status-indicator-content:where(.media-skin--minimal, .media-skin--minimal *) {
border-radius: calc(var(--media-spacing) * 2);
background-color: #000;
}
}
@media (prefers-reduced-transparency: reduce) {
.media-status-indicator-content:where(.media-skin--minimal, .media-skin--minimal *) {
border-radius: calc(var(--media-spacing) * 2);
background-color: #000;
}
}
.media-status-indicator-fullscreen-enter-icon {
flex-shrink: 0;
display: none;
}
@scope (.media-status-indicator) {
&[data-status="fullscreen"] .media-status-indicator-fullscreen-enter-icon {
display: block;
}
}
.media-status-indicator-fullscreen-enter-icon:where(
.media-skin:not(.media-skin--minimal),
.media-skin:not(.media-skin--minimal) *
) {
mix-blend-mode: difference;
}
.media-status-indicator-fullscreen-enter-icon:where(.media-skin--minimal, .media-skin--minimal *) {
filter: drop-shadow(0 1px 0 var(--media-shadow-current-color));
}
.media-status-indicator-fullscreen-exit-icon {
flex-shrink: 0;
display: none;
}
@scope (.media-status-indicator) {
&[data-status="exit-fullscreen"] .media-status-indicator-fullscreen-exit-icon {
display: block;
}
}
.media-status-indicator-fullscreen-exit-icon:where(
.media-skin:not(.media-skin--minimal),
.media-skin:not(.media-skin--minimal) *
) {
mix-blend-mode: difference;
}
.media-status-indicator-fullscreen-exit-icon:where(.media-skin--minimal, .media-skin--minimal *) {
filter: drop-shadow(0 1px 0 var(--media-shadow-current-color));
}
.media-status-indicator-pip-enter-icon {
flex-shrink: 0;
display: none;
}
@scope (.media-status-indicator) {
&[data-status="pip"] .media-status-indicator-pip-enter-icon {
display: block;
}
}
.media-status-indicator-pip-enter-icon:where(
.media-skin:not(.media-skin--minimal),
.media-skin:not(.media-skin--minimal) *
) {
mix-blend-mode: difference;
}
.media-status-indicator-pip-enter-icon:where(.media-skin--minimal, .media-skin--minimal *) {
filter: drop-shadow(0 1px 0 var(--media-shadow-current-color));
}
.media-status-indicator-pip-exit-icon {
flex-shrink: 0;
display: none;
}
@scope (.media-status-indicator) {
&[data-status="exit-pip"] .media-status-indicator-pip-exit-icon {
display: block;
}
}
.media-status-indicator-pip-exit-icon:where(
.media-skin:not(.media-skin--minimal),
.media-skin:not(.media-skin--minimal) *
) {
mix-blend-mode: difference;
}
.media-status-indicator-pip-exit-icon:where(.media-skin--minimal, .media-skin--minimal *) {
filter: drop-shadow(0 1px 0 var(--media-shadow-current-color));
}
.media-status-indicator-value {
margin-left: auto;
}
.media-status-indicator-value:where(
.media-skin:not(.media-skin--minimal),
.media-skin:not(.media-skin--minimal) *
) {
mix-blend-mode: difference;
}
}
@scope (.media-skin--video) {
.media-status-announcer {
clip-path: inset(50%);
white-space: nowrap;
border-width: 0;
width: 1px;
height: 1px;
margin: -1px;
padding: 0;
position: absolute;
overflow: hidden;
}
}
@scope (.media-skin--video) {
@media (prefers-reduced-motion: reduce) {
}
.media-captions-button-off-icon {
opacity: 0;
}
@scope (.media-captions-button) {
&:not([data-active]) .media-captions-button-off-icon {
opacity: 1;
scale: 1;
}
}
.media-captions-button-on-icon {
opacity: 0;
}
@scope (.media-captions-button) {
&[data-active] .media-captions-button-on-icon {
opacity: 1;
scale: 1;
}
}
}
@scope (.media-skin--video) {
@media (prefers-reduced-motion: reduce) {
}
.media-mute-button-high-icon {
opacity: 0;
}
@scope (.media-mute-button) {
&:not([data-muted]):not([data-volume-level="low"]) .media-mute-button-high-icon {
opacity: 1;
scale: 1;
}
}
.media-mute-button-low-icon {
opacity: 0;
}
@scope (.media-mute-button) {
&:not([data-muted])[data-volume-level="low"] .media-mute-button-low-icon {
opacity: 1;
scale: 1;
}
}
.media-mute-button-off-icon {
opacity: 0;
}
@scope (.media-mute-button) {
&[data-muted] .media-mute-button-off-icon {
opacity: 1;
scale: 1;
}
}
}
@scope (.media-skin--video) {
@media (prefers-reduced-motion: reduce) {
}
.media-fullscreen-button-enter-icon {
opacity: 0;
}
@scope (.media-fullscreen-button) {
&:not([data-fullscreen]) .media-fullscreen-button-enter-icon {
opacity: 1;
scale: 1;
}
}
.media-fullscreen-button-exit-icon {
opacity: 0;
}
@scope (.media-fullscreen-button) {
&[data-fullscreen] .media-fullscreen-button-exit-icon {
opacity: 1;
scale: 1;
}
}
}
@scope (.media-skin--video) {
.media-poster {
pointer-events: none;
inset: calc(var(--media-spacing) * 0);
border-radius: inherit;
object-fit: var(--media-object-fit, contain);
object-position: var(--media-object-position, center);
width: 100%;
height: 100%;
transition-property: opacity;
transition-duration: 0.25s;
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
position: absolute;
}
.media-poster:not([data-visible]) {
opacity: 0;
}
.media-poster ::slotted(img) {
inset: calc(var(--media-spacing) * 0);
border-radius: inherit;
object-fit: var(--media-object-fit, contain);
object-position: var(--media-object-position, center);
width: 100%;
height: 100%;
position: absolute;
}
.media-poster ::slotted(img:not([src]):not([srcset])) {
visibility: hidden;
}
.media-poster img {
inset: calc(var(--media-spacing) * 0);
border-radius: inherit;
object-fit: var(--media-object-fit, contain);
object-position: var(--media-object-position, center);
width: 100%;
height: 100%;
position: absolute;
}
.media-poster:is(img):not([src]):not([srcset]),
.media-poster > slot > img:not([src]):not([srcset]) {
visibility: hidden;
}
}
@scope (.media-skin--video) {
.media-slider-buffer {
pointer-events: none;
border-radius: inherit;
background-color: currentColor;
position: absolute;
}
@supports (color: color-mix(in lab, red, red)) {
.media-slider-buffer {
background-color: color-mix(in oklab, currentcolor 20%, transparent);
}
}
@scope (.media-slider) {
&[data-dragging] .media-slider-buffer,
&[data-seeking] .media-slider-buffer {
transition-duration: 0s;
}
}
.media-slider-buffer[data-orientation="horizontal"] {
inset-block: calc(var(--media-spacing) * 0);
left: calc(var(--media-spacing) * 0);
width: 100%;
clip-path: inset(0 calc(100% - var(--media-slider-buffer)) 0 0 round 99px);
}
.media-slider-buffer[data-orientation="vertical"] {
inset-inline: calc(var(--media-spacing) * 0);
bottom: calc(var(--media-spacing) * 0);
height: 100%;
clip-path: inset(calc(100% - var(--media-slider-buffer)) 0 0 0 round 99px);
}
@media (prefers-reduced-motion: no-preference) {
.media-slider-buffer {
transition-property: clip-path;
transition-duration: 0.1s;
transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
}
}
.media-slider-fill {
pointer-events: none;
border-radius: inherit;
background-color: var(--media-primary);
position: absolute;
}
@scope (.media-slider) {
&[data-dragging] .media-slider-fill,
&[data-seeking] .media-slider-fill {
transition-duration: 0s;
}
}
.media-slider-fill[data-orientation="horizontal"] {
inset-block: calc(var(--media-spacing) * 0);
left: calc(var(--media-spacing) * 0);
width: 100%;
clip-path: inset(0 calc(100% - var(--media-slider-fill)) 0 0 round 99px);
}
@scope (.media-slider) {
&[data-dragging] .media-slider-fill[data-orientation="horizontal"] {
clip-path: inset(0 calc(100% - var(--media-slider-pointer)) 0 0 round 99px);
}
}
.media-slider-fill[data-orientation="vertical"] {
inset-inline: calc(var(--media-spacing) * 0);
bottom: calc(var(--media-spacing) * 0);
height: 100%;
clip-path: inset(calc(100% - var(--media-slider-fill)) 0 0 0 round 99px);
}
@scope (.media-slider) {
&[data-dragging] .media-slider-fill[data-orientation="vertical"] {
clip-path: inset(calc(100% - var(--media-slider-pointer)) 0 0 0 round 99px);
}
}
@media (prefers-reduced-motion: no-preference) {
.media-slider-fill {
transition-property: clip-path;
transition-duration: 0.1s;
transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
}
}
.media-slider-thumb {
top: 50%;
left: var(--media-slider-fill);
z-index: 10;
border-radius: var(--media-control-radius);
-webkit-user-select: none;
user-select: none;
background-color: currentColor;
transition-property: none;
position: absolute;
translate: -50% -50%;
}
@scope (.media-slider) {
&[data-dragging] .media-slider-thumb {
scale: 0.9;
}
}
@scope (.media-slider) {
&[data-dragging] .media-slider-thumb[data-orientation="horizontal"] {
left: var(--media-slider-pointer);
}
}
.media-slider-thumb[data-orientation="vertical"] {
top: calc(100% - var(--media-slider-fill));
left: 50%;
}
@scope (.media-slider) {
&[data-dragging] .media-slider-thumb[data-orientation="vertical"] {
top: calc(100% - var(--media-slider-pointer));
}
}
@media (prefers-reduced-motion: no-preference) {
.media-slider-thumb {
transition-property: opacity, height, width, outline-offset, left, top, scale;
transition-duration: 0.1s;
transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
}
@scope (.media-slider) {
&[data-dragging] .media-slider-thumb {
transition-property: opacity, height, width, outline-offset, scale;
transition-duration: 0.15s;
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
}
}
}
.media-slider-track {
isolation: isolate;
-webkit-user-select: none;
user-select: none;
background-color: currentColor;
border-radius: 99px;
width: 100%;
position: relative;
overflow: hidden;
}
@supports (color: color-mix(in lab, red, red)) {
.media-slider-track {
background-color: color-mix(in oklab, currentcolor 20%, transparent);
}
}
.media-slider-track[data-orientation="horizontal"] {
height: calc(var(--media-spacing) * 1);
}
.media-slider-track[data-orientation="vertical"] {
height: 100%;
width: calc(var(--media-spacing) * 1);
}
}
@scope (.media-skin--video) {
@media (prefers-reduced-motion: reduce) {
}
.media-pip-button-enter-icon {
opacity: 0;
}
@scope (.media-pip-button) {
&:not([data-pip]) .media-pip-button-enter-icon {
opacity: 1;
scale: 1;
}
}
.media-pip-button-exit-icon {
opacity: 0;
}
@scope (.media-pip-button) {
&[data-pip] .media-pip-button-exit-icon {
opacity: 1;
scale: 1;
}
}
}
@scope (.media-skin--video) {
.media-menu-item-indicator {
opacity: 0;
flex-shrink: 0;
margin-inline-start: auto;
margin-inline-end: calc(var(--media-spacing) * -1);
}
@scope (.media-menu-radio-item) {
&[aria-checked="true"] .media-menu-item-indicator {
opacity: 1;
}
}
.media-menu-radio-item {
cursor: pointer;
justify-content: space-between;
align-items: center;
gap: calc(var(--media-spacing) * 1.5);
border-radius: var(--media-menu-item-border-radius);
padding-inline: calc(var(--media-spacing) * 2);
padding-block: calc(var(--media-spacing) * 1.5);
text-align: start;
white-space: nowrap;
color: inherit;
font-variant-numeric: tabular-nums;
outline-offset: -2px;
-webkit-user-select: none;
user-select: none;
text-shadow: 0 1px 0 var(--media-shadow-current-color);
outline: 2px solid #0000;
transition-property: background-color, color;
transition-duration: 0.1s;
transition-timing-function: ease-in-out;
display: flex;
position: relative;
}
@media (hover: hover) {
.media-menu-radio-item:hover {
background-color: var(--media-accent);
color: var(--media-accent-foreground);
}
}
.media-menu-radio-item:focus-visible {
outline-offset: 2px;
outline-color: #fff;
}
.media-menu-radio-item[aria-disabled="true"] {
pointer-events: none;
cursor: not-allowed;
opacity: 0.5;
}
.media-menu-radio-item[data-highlighted] {
background-color: var(--media-accent);
color: var(--media-accent-foreground);
}
.media-menu-radio-item[data-availability="unavailable"],
.media-menu-radio-item[data-availability="unsupported"] {
display: none;
}
@supports (top: anchor(top)) {
.media-menu-radio-item {
transition-duration: 50ms;
}
@media (hover: hover) {
.media-menu-radio-item:hover {
transition-duration: 0.2s;
}
}
.media-menu-radio-item[data-highlighted] {
anchor-name: --media-menu-item-highlight-anchor;
background-color: #0000;
transition-duration: 0.2s;
}
}
@media (prefers-reduced-motion: reduce) {
.media-menu-radio-item {
transition-duration: 50ms;
}
}
.media-menu-radio-item-icon {
width: var(--media-icon-size, calc(var(--media-spacing) * 4.5));
height: var(--media-icon-size, calc(var(--media-spacing) * 4.5));
color: var(--media-muted-foreground);
filter: drop-shadow(0 1px 0 var(--media-shadow-current-color));
flex-shrink: 0;
}
@media (hover: hover) {
@scope (.media-menu-radio-item) {
&:hover .media-menu-radio-item-icon {
color: inherit;
}
}
}
@scope (.media-menu-radio-item) {
&[data-highlighted] .media-menu-radio-item-icon {
color: inherit;
}
}
}
@scope (.media-skin--video) {
.media-menu-back-chevron {
width: calc(var(--media-spacing) * 3.5);
height: calc(var(--media-spacing) * 3.5);
width: var(--media-icon-size, calc(var(--media-spacing) * 4.5));
height: var(--media-icon-size, calc(var(--media-spacing) * 4.5));
color: var(--media-muted-foreground);
filter: drop-shadow(0 1px 0 var(--media-shadow-current-color));
flex-shrink: 0;
rotate: 180deg;
}
@media (hover: hover) {
@scope (.media-menu-back-item) {
&:hover .media-menu-back-chevron {
color: inherit;
}
}
}
@scope (.media-menu-back-item) {
&[data-highlighted] .media-menu-back-chevron {
color: inherit;
}
}
.media-menu-back-chevron:dir(rtl) {
rotate: 0deg;
scale: 1;
}
.media-menu-forward-chevron {
width: calc(var(--media-spacing) * 3.5);
height: calc(var(--media-spacing) * 3.5);
width: var(--media-icon-size, calc(var(--media-spacing) * 4.5));
height: var(--media-icon-size, calc(var(--media-spacing) * 4.5));
color: var(--media-muted-foreground);
filter: drop-shadow(0 1px 0 var(--media-shadow-current-color));
flex-shrink: 0;
}
@media (hover: hover) {
@scope (.media-menu-trigger-item) {
&:hover .media-menu-forward-chevron {
color: inherit;
}
}
}
@scope (.media-menu-trigger-item) {
&[data-highlighted] .media-menu-forward-chevron {
color: inherit;
}
}
.media-menu-forward-chevron:dir(rtl) {
scale: -1 1;
}
}
@scope (.media-skin--video) {
@media (prefers-reduced-motion: reduce) {
}
}
@scope (.media-skin--video) {
.media-video-status-indicators {
pointer-events: none;
inset: calc(var(--media-spacing) * 0);
color: #fff;
grid-template-columns: repeat(3, minmax(0, 1fr));
place-items: center;
display: grid;
position: absolute;
}
}
@scope (.media-skin--video) {
@media (hover: hover) {
}
@supports (top: anchor(top)) {
@media (hover: hover) {
}
}
@media (prefers-reduced-motion: reduce) {
}
@supports (top: anchor(top)) {
}
@supports (color: color-mix(in lab, red, red)) {
}
@supports (top: anchor(top)) {
}
@media (prefers-contrast: more) {
}
@media (forced-colors: active) {
}
@media (prefers-reduced-transparency: reduce) {
}
@media (hover: hover) {
}
@supports (top: anchor(top)) {
@media (hover: hover) {
}
}
@media (prefers-reduced-motion: reduce) {
}
@media (hover: hover) {
@scope (.media-menu-trigger-item) {
}
}
@scope (.media-menu-trigger-item) {
}
}
@scope (.media-skin--video) {
@supports (top: anchor(top)) {
}
.media-menu-popup {
margin: calc(var(--media-spacing) * 0);
height: var(--media-menu-height);
max-height: min(
var(--media-menu-available-height, calc(var(--media-spacing) * 56)),
calc(var(--media-spacing) * 56)
);
width: var(--media-menu-width);
max-width: var(--media-menu-available-width);
min-width: calc(var(--media-spacing) * 44);
overscroll-behavior: none;
background-color: var(--media-popover);
padding: calc(var(--media-spacing) * 1);
color: var(--media-popover-foreground);
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 0 calc(1px + 0px) var(--media-border),
0 0 #0000;
box-shadow: var(--media-shadow-sm);
backdrop-filter: blur(16px) saturate(150%);
border-style: solid;
border-width: 0;
transition-property: opacity, filter, transform, scale, width, height;
transition-duration: 0.1s, 0.1s, 0.1s, 0.1s, 0.25s, 0.25s;
transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
overflow: visible;
overflow: hidden !important;
}
.media-menu-popup:before {
pointer-events: auto;
content: "";
position: absolute;
}
.media-menu-popup:after {
pointer-events: none;
inset: calc(var(--media-spacing) * 0);
z-index: 10;
border-radius: inherit;
content: "";
position: absolute;
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 #0000,
inset 0 1px #ffffff1a,
inset 0 0 0 1px #ffffff0d;
}
.media-menu-popup[data-ending-style] {
opacity: 0;
filter: blur(4px);
transition-property: opacity, filter, transform, scale;
transition-duration: 0.1s;
transform: none;
}
.media-menu-popup[data-starting-style] {
transform: translate(var(--media-popup-translate-x-distance, 0), var(--media-popup-translate-y-distance, 0));
opacity: 0;
filter: blur(4px);
transition-property: opacity, filter, transform, scale;
transition-duration: 0.1s;
}
.media-menu-popup[data-side="bottom"] {
transform-origin: top;
--media-popup-translate-y-distance: calc(var(--media-popup-translate-distance) * -1);
}
.media-menu-popup[data-side="bottom"]:before {
inset-inline: calc(var(--media-spacing) * 0);
content: "";
height: var(--media-popover-side-offset);
bottom: 100%;
}
.media-menu-popup[data-side="left"] {
transform-origin: 100%;
--media-popup-translate-x-distance: var(--media-popup-translate-distance);
}
.media-menu-popup[data-side="left"]:before {
inset-block: calc(var(--media-spacing) * 0);
content: "";
width: var(--media-popover-side-offset);
left: 100%;
}
.media-menu-popup[data-side="right"] {
transform-origin: 0;
--media-popup-translate-x-distance: calc(var(--media-popup-translate-distance) * -1);
}
.media-menu-popup[data-side="right"]:before {
inset-block: calc(var(--media-spacing) * 0);
content: "";
width: var(--media-popover-side-offset);
right: 100%;
}
.media-menu-popup[data-side="top"] {
transform-origin: bottom;
--media-popup-translate-y-distance: var(--media-popup-translate-distance);
}
.media-menu-popup[data-side="top"]:before {
inset-inline: calc(var(--media-spacing) * 0);
content: "";
height: var(--media-popover-side-offset);
top: 100%;
}
@media (prefers-reduced-motion: reduce) {
.media-menu-popup {
--media-menu-transition-duration: 0s;
transition-duration: 0s !important;
}
.media-menu-popup[data-ending-style],
.media-menu-popup[data-starting-style] {
filter: none !important;
transform: none !important;
}
}
@media (prefers-contrast: more) {
.media-menu-popup {
background-color: var(--media-background);
backdrop-filter: none;
}
.media-menu-popup:after {
content: "";
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 #0000,
inset 0 1px #ffffff40,
inset 0 0 0 1px #ffffff20;
}
}
@media (forced-colors: active) {
.media-menu-popup {
color: canvastext;
background-color: canvas;
}
.media-menu-popup:after {
content: "";
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 #0000,
inset 0 1px canvastext,
inset 0 0 0 1px canvastext;
}
}
.media-menu-popup:where(.media-skin:not(.media-skin--minimal), .media-skin:not(.media-skin--minimal) *) {
border-radius: calc(var(--media-spacing) * 3);
}
.media-menu-popup:where(.media-skin--minimal, .media-skin--minimal *) {
border-radius: calc(var(--media-spacing) * 2.5);
}
.media-menu-popup:where(.media-skin--minimal, .media-skin--minimal *):after {
content: "";
display: none;
}
.media-menu-popup:where(.media-skin--minimal, .media-skin--minimal *)[data-starting-style] {
filter: none;
}
.media-menu-popup:is([data-starting-style], [data-ending-style]) {
scale: 0.95;
}
@media (prefers-reduced-motion: reduce) {
.media-menu-popup:is([data-starting-style], [data-ending-style]) {
scale: 1 !important;
}
}
@media (prefers-reduced-transparency: reduce) {
.media-menu-popup {
background-color: var(--media-background);
backdrop-filter: none;
}
.media-menu-popup:after {
content: "";
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 #0000,
inset 0 1px #ffffff40,
inset 0 0 0 1px #ffffff20;
}
}
.media-settings-menu-trigger-icon {
transition-property: transform, translate, scale, rotate;
transition-duration: 0.15s;
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
}
@scope (.media-settings-menu-trigger) {
&[aria-expanded="true"] .media-settings-menu-trigger-icon {
rotate: 90deg;
}
}
@media (prefers-reduced-motion: reduce) {
.media-settings-menu-trigger-icon {
transition-property: none !important;
transition-duration: 0s !important;
}
}
.media-settings-menu-trigger-label {
clip-path: inset(50%);
white-space: nowrap;
border-width: 0;
width: 1px;
height: 1px;
margin: -1px;
padding: 0;
position: absolute;
overflow: hidden;
}
}
}
@layer utilities;
<media-container class="media-container media-skin media-skin--minimal media-skin--video">
<!-- Add a compatible media element here. -->
<media-poster class="media-poster">
<img alt="" decoding="async">
</img>
</media-poster>
<media-buffering-indicator class="media-buffering-indicator">
<span class="contents theme-minimal:hidden">
<media-icon name="spinner" class="media-buffering-indicator-spinner-icon">
</media-icon>
</span>
<span class="hidden theme-minimal:contents">
<media-icon family="minimal" name="spinner" class="media-buffering-indicator-spinner-icon">
</media-icon>
</span>
</media-buffering-indicator>
<media-error-dialog class="media-dialog-root">
<media-dialog-backdrop class="media-dialog-backdrop">
</media-dialog-backdrop>
<media-dialog-popup class="media-dialog-popup">
<div class="media-dialog-content">
<media-dialog-title class="media-dialog-title">
</media-dialog-title>
<media-dialog-description class="media-dialog-description">
</media-dialog-description>
</div>
<div class="media-dialog-actions">
<media-dialog-close class="media-button media-dialog-close">
</media-dialog-close>
</div>
</media-dialog-popup>
</media-error-dialog>
<media-controls>
<media-controls-backdrop class="media-controls__backdrop">
</media-controls-backdrop>
<media-controls-content class="media-controls media-controls">
<media-tooltip-group>
<media-controls-group class="media-controls-start">
<media-play-button class="media-button media-play-button" id="vjs-sps9KiPk-ev-trigger">
<span class="contents theme-minimal:hidden">
<media-icon name="restart" class="media-button-icon media-play-button-restart-icon">
</media-icon>
</span>
<span class="hidden theme-minimal:contents">
<media-icon family="minimal" name="restart" class="media-button-icon media-play-button-restart-icon">
</media-icon>
</span>
<span class="contents theme-minimal:hidden">
<media-icon name="play" class="media-button-icon media-play-button-play-icon">
</media-icon>
</span>
<span class="hidden theme-minimal:contents">
<media-icon family="minimal" name="play" class="media-button-icon media-play-button-play-icon">
</media-icon>
</span>
<span class="contents theme-minimal:hidden">
<media-icon name="pause" class="media-button-icon media-play-button-pause-icon">
</media-icon>
</span>
<span class="hidden theme-minimal:contents">
<media-icon family="minimal" name="pause" class="media-button-icon media-play-button-pause-icon">
</media-icon>
</span>
</media-play-button>
<media-tooltip trigger="vjs-sps9KiPk-ev-trigger" side="top" class="media-tooltip">
<media-tooltip-label>
</media-tooltip-label>
<media-tooltip-shortcut class="media-tooltip-shortcut">
</media-tooltip-shortcut>
</media-tooltip>
<media-mute-button class="media-button media-mute-button" commandfor="vjs-CqfzDJ5Q-q1-popup" id="vjs-sps9KiPk-ev-2-trigger">
<span class="contents theme-minimal:hidden">
<media-icon name="volume-off" class="media-button-icon media-mute-button-off-icon">
</media-icon>
</span>
<span class="hidden theme-minimal:contents">
<media-icon family="minimal" name="volume-off" class="media-button-icon media-mute-button-off-icon">
</media-icon>
</span>
<span class="contents theme-minimal:hidden">
<media-icon name="volume-low" class="media-button-icon media-mute-button-low-icon">
</media-icon>
</span>
<span class="hidden theme-minimal:contents">
<media-icon family="minimal" name="volume-low" class="media-button-icon media-mute-button-low-icon">
</media-icon>
</span>
<span class="contents theme-minimal:hidden">
<media-icon name="volume-high" class="media-button-icon media-mute-button-high-icon">
</media-icon>
</span>
<span class="hidden theme-minimal:contents">
<media-icon family="minimal" name="volume-high" class="media-button-icon media-mute-button-high-icon">
</media-icon>
</span>
</media-mute-button>
<media-tooltip trigger="vjs-sps9KiPk-ev-2-trigger" delay="0" sticky side="top" class="media-tooltip">
<media-tooltip-label>
</media-tooltip-label>
<media-tooltip-shortcut class="media-tooltip-shortcut">
</media-tooltip-shortcut>
</media-tooltip>
<media-volume-popover open-on-hover delay="200" close-delay="100" side="right" class="media-volume-popover" id="vjs-CqfzDJ5Q-q1-popup">
<media-volume-slider class="media-slider media-volume-slider" thumb-alignment="edge" orientation="horizontal">
<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-volume-slider-thumb">
</media-slider-thumb>
</media-volume-slider>
</media-volume-popover>
</media-controls-group>
<media-controls-group class="media-time-slider-group">
<media-time-group class="media-time-group">
<media-time class="media-time-current-value" type="current" toggle>
</media-time>
<media-time-separator class="media-time-separator">
</media-time-separator>
<media-time class="media-time-duration-value" type="duration">
</media-time>
</media-time-group>
<media-time-slider class="media-slider media-time-slider">
<media-time-slider-chapters class="media-time-slider-chapters">
<template>
<div class="media-time-slider-chapter">
<media-slider-track class="media-slider-track media-time-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-time-slider-thumb">
</media-slider-thumb>
<media-slider-preview class="media-slider-preview" overflow="clamp">
<div class="media-slider-thumbnail">
<media-slider-thumbnail class="media-slider-thumbnail-image">
</media-slider-thumbnail>
<span class="contents theme-minimal:hidden">
<media-icon name="spinner" class="media-slider-thumbnail-spinner-icon">
</media-icon>
</span>
<span class="hidden theme-minimal:contents">
<media-icon family="minimal" name="spinner" class="media-slider-thumbnail-spinner-icon">
</media-icon>
</span>
</div>
<div class="media-time-slider-preview-content">
<media-time-slider-chapter-title class="media-time-slider-chapter-title">
</media-time-slider-chapter-title>
<media-slider-value class="media-time-slider-value" type="pointer">
</media-slider-value>
</div>
</media-slider-preview>
</media-time-slider>
</media-controls-group>
<media-controls-group class="media-controls-end">
<media-captions-button class="media-button media-captions-button" id="vjs-sps9KiPk-ev-3-trigger">
<span class="contents theme-minimal:hidden">
<media-icon name="captions-off" class="media-button-icon media-captions-button-off-icon">
</media-icon>
</span>
<span class="hidden theme-minimal:contents">
<media-icon family="minimal" name="captions-off" class="media-button-icon media-captions-button-off-icon">
</media-icon>
</span>
<span class="contents theme-minimal:hidden">
<media-icon name="captions-on" class="media-button-icon media-captions-button-on-icon">
</media-icon>
</span>
<span class="hidden theme-minimal:contents">
<media-icon family="minimal" name="captions-on" class="media-button-icon media-captions-button-on-icon">
</media-icon>
</span>
</media-captions-button>
<media-tooltip trigger="vjs-sps9KiPk-ev-3-trigger" side="top" class="media-tooltip">
<media-tooltip-label>
</media-tooltip-label>
<media-tooltip-shortcut class="media-tooltip-shortcut">
</media-tooltip-shortcut>
</media-tooltip>
<button commandfor="vjs-I0OqnkTx-t2-popup" class="media-button media-settings-menu-trigger" id="vjs-sps9KiPk-ev-4-trigger">
<span class="contents theme-minimal:hidden">
<media-icon name="gear" class="media-button-icon media-settings-menu-trigger-icon">
</media-icon>
</span>
<span class="hidden theme-minimal:contents">
<media-icon family="minimal" name="gear" class="media-button-icon media-settings-menu-trigger-icon">
</media-icon>
</span>
<media-text class="media-settings-menu-trigger-label" token="menu.settings">Settings</media-text>
</button>
<media-tooltip trigger="vjs-sps9KiPk-ev-4-trigger" side="top" class="media-tooltip">
<media-text token="menu.settings">Settings</media-text>
</media-tooltip>
<media-menu side="top" align="center" class="media-menu-popup" id="vjs-I0OqnkTx-t2-popup">
<media-menu-content class="media-menu-content">
<media-menu-item commandfor="vjs-i3quCNP0-qh-content" class="media-menu-trigger-item">
<span class="contents theme-minimal:hidden">
<media-icon name="switches" class="media-menu-trigger-item-icon">
</media-icon>
</span>
<span class="hidden theme-minimal:contents">
<media-icon family="minimal" name="switches" class="media-menu-trigger-item-icon">
</media-icon>
</span>
<media-text token="menu.quality">Quality</media-text>
<span class="media-menu-hint">
<span data-part="value" class="media-menu-hint-label">
</span>
<span class="contents theme-minimal:hidden">
<media-icon name="chevron" class="media-menu-forward-chevron">
</media-icon>
</span>
<span class="hidden theme-minimal:contents">
<media-icon family="minimal" name="chevron" class="media-menu-forward-chevron">
</media-icon>
</span>
</span>
</media-menu-item>
<media-menu-content class="media-menu-content" id="vjs-i3quCNP0-qh-content">
<media-menu-item class="media-menu-back-item">
<span class="contents theme-minimal:hidden">
<media-icon name="chevron" class="media-menu-back-chevron">
</media-icon>
</span>
<span class="hidden theme-minimal:contents">
<media-icon family="minimal" name="chevron" class="media-menu-back-chevron">
</media-icon>
</span>
<media-text token="menu.quality">Quality</media-text>
</media-menu-item>
<media-menu-separator class="media-menu-separator">
</media-menu-separator>
<media-quality-radio-group class="media-menu-radio-group">
<template>
<media-menu-radio-item class="media-menu-radio-item">
<span>
<span data-part="label">
</span>
<sup data-part="tier" class="media-menu-tier">
</sup>
</span>
<span data-part="badge" class="media-menu-badge">
</span>
<media-menu-item-indicator force-mount class="media-menu-item-indicator">
<span class="contents theme-minimal:hidden">
<media-icon name="check" class="media-menu-radio-item-icon">
</media-icon>
</span>
<span class="hidden theme-minimal:contents">
<media-icon family="minimal" name="check" class="media-menu-radio-item-icon">
</media-icon>
</span>
</media-menu-item-indicator>
</media-menu-radio-item>
</template>
</media-quality-radio-group>
</media-menu-content>
<media-menu-item commandfor="vjs-Ssk6GEro-q8-content" class="media-menu-trigger-item">
<span class="contents theme-minimal:hidden">
<media-icon name="speech" class="media-menu-trigger-item-icon">
</media-icon>
</span>
<span class="hidden theme-minimal:contents">
<media-icon family="minimal" name="speech" class="media-menu-trigger-item-icon">
</media-icon>
</span>
<media-text token="menu.audio">Audio</media-text>
<span class="media-menu-hint">
<span data-part="value" class="media-menu-hint-label">
</span>
<span class="contents theme-minimal:hidden">
<media-icon name="chevron" class="media-menu-forward-chevron">
</media-icon>
</span>
<span class="hidden theme-minimal:contents">
<media-icon family="minimal" name="chevron" class="media-menu-forward-chevron">
</media-icon>
</span>
</span>
</media-menu-item>
<media-menu-content class="media-menu-content" id="vjs-Ssk6GEro-q8-content">
<media-menu-item class="media-menu-back-item">
<span class="contents theme-minimal:hidden">
<media-icon name="chevron" class="media-menu-back-chevron">
</media-icon>
</span>
<span class="hidden theme-minimal:contents">
<media-icon family="minimal" name="chevron" class="media-menu-back-chevron">
</media-icon>
</span>
<media-text token="menu.audio">Audio</media-text>
</media-menu-item>
<media-menu-separator class="media-menu-separator">
</media-menu-separator>
<media-audio-track-radio-group class="media-menu-radio-group">
<template>
<media-menu-radio-item class="media-menu-radio-item">
<span data-part="label">
</span>
<media-menu-item-indicator force-mount class="media-menu-item-indicator">
<span class="contents theme-minimal:hidden">
<media-icon name="check" class="media-menu-radio-item-icon">
</media-icon>
</span>
<span class="hidden theme-minimal:contents">
<media-icon family="minimal" name="check" class="media-menu-radio-item-icon">
</media-icon>
</span>
</media-menu-item-indicator>
</media-menu-radio-item>
</template>
</media-audio-track-radio-group>
</media-menu-content>
<media-menu-item commandfor="vjs-gLYTWOMr-qf-content" class="media-menu-trigger-item">
<span class="contents theme-minimal:hidden">
<media-icon name="speed" class="media-menu-trigger-item-icon">
</media-icon>
</span>
<span class="hidden theme-minimal:contents">
<media-icon family="minimal" name="speed" class="media-menu-trigger-item-icon">
</media-icon>
</span>
<media-text token="menu.speed">Speed</media-text>
<span class="media-menu-hint">
<span data-part="value" class="media-menu-hint-label">
</span>
<span class="contents theme-minimal:hidden">
<media-icon name="chevron" class="media-menu-forward-chevron">
</media-icon>
</span>
<span class="hidden theme-minimal:contents">
<media-icon family="minimal" name="chevron" class="media-menu-forward-chevron">
</media-icon>
</span>
</span>
</media-menu-item>
<media-menu-content class="media-menu-content" id="vjs-gLYTWOMr-qf-content">
<media-menu-item class="media-menu-back-item">
<span class="contents theme-minimal:hidden">
<media-icon name="chevron" class="media-menu-back-chevron">
</media-icon>
</span>
<span class="hidden theme-minimal:contents">
<media-icon family="minimal" name="chevron" class="media-menu-back-chevron">
</media-icon>
</span>
<media-text token="menu.speed">Speed</media-text>
</media-menu-item>
<media-menu-separator class="media-menu-separator">
</media-menu-separator>
<media-playback-rate-radio-group class="media-menu-radio-group">
<template>
<media-menu-radio-item class="media-menu-radio-item">
<span data-part="label">
</span>
<media-menu-item-indicator force-mount class="media-menu-item-indicator">
<span class="contents theme-minimal:hidden">
<media-icon name="check" class="media-menu-radio-item-icon">
</media-icon>
</span>
<span class="hidden theme-minimal:contents">
<media-icon family="minimal" name="check" class="media-menu-radio-item-icon">
</media-icon>
</span>
</media-menu-item-indicator>
</media-menu-radio-item>
</template>
</media-playback-rate-radio-group>
</media-menu-content>
<media-menu-item commandfor="vjs-MMUeOFna-rk-content" class="media-menu-trigger-item">
<span class="contents theme-minimal:hidden">
<media-icon name="captions-off" class="media-menu-trigger-item-icon">
</media-icon>
</span>
<span class="hidden theme-minimal:contents">
<media-icon family="minimal" name="captions-off" class="media-menu-trigger-item-icon">
</media-icon>
</span>
<media-text token="menu.captions">Captions</media-text>
<span class="media-menu-hint">
<span data-part="value" class="media-menu-hint-label">
</span>
<span class="contents theme-minimal:hidden">
<media-icon name="chevron" class="media-menu-forward-chevron">
</media-icon>
</span>
<span class="hidden theme-minimal:contents">
<media-icon family="minimal" name="chevron" class="media-menu-forward-chevron">
</media-icon>
</span>
</span>
</media-menu-item>
<media-menu-content class="media-menu-content" id="vjs-MMUeOFna-rk-content">
<media-menu-item class="media-menu-back-item">
<span class="contents theme-minimal:hidden">
<media-icon name="chevron" class="media-menu-back-chevron">
</media-icon>
</span>
<span class="hidden theme-minimal:contents">
<media-icon family="minimal" name="chevron" class="media-menu-back-chevron">
</media-icon>
</span>
<media-text token="menu.captions">Captions</media-text>
</media-menu-item>
<media-menu-separator class="media-menu-separator">
</media-menu-separator>
<media-captions-radio-group class="media-menu-radio-group">
<template>
<media-menu-radio-item class="media-menu-radio-item">
<span data-part="label">
</span>
<media-menu-item-indicator force-mount class="media-menu-item-indicator">
<span class="contents theme-minimal:hidden">
<media-icon name="check" class="media-menu-radio-item-icon">
</media-icon>
</span>
<span class="hidden theme-minimal:contents">
<media-icon family="minimal" name="check" class="media-menu-radio-item-icon">
</media-icon>
</span>
</media-menu-item-indicator>
</media-menu-radio-item>
</template>
</media-captions-radio-group>
</media-menu-content>
</media-menu-content>
</media-menu>
<media-controls-group class="media-controls-trailing">
<media-cast-button class="media-button media-cast-button" id="vjs-sps9KiPk-ev-5-trigger">
<span class="contents theme-minimal:hidden">
<media-icon name="cast-enter" class="media-button-icon media-cast-button-enter-icon">
</media-icon>
</span>
<span class="hidden theme-minimal:contents">
<media-icon family="minimal" name="cast-enter" class="media-button-icon media-cast-button-enter-icon">
</media-icon>
</span>
<span class="contents theme-minimal:hidden">
<media-icon name="cast-exit" class="media-button-icon media-cast-button-exit-icon">
</media-icon>
</span>
<span class="hidden theme-minimal:contents">
<media-icon family="minimal" name="cast-exit" class="media-button-icon media-cast-button-exit-icon">
</media-icon>
</span>
</media-cast-button>
<media-tooltip trigger="vjs-sps9KiPk-ev-5-trigger" side="top" class="media-tooltip">
<media-tooltip-label>
</media-tooltip-label>
<media-tooltip-shortcut class="media-tooltip-shortcut">
</media-tooltip-shortcut>
</media-tooltip>
<media-airplay-button class="media-button media-airplay-button" id="vjs-sps9KiPk-ev-6-trigger">
<span class="contents theme-minimal:hidden">
<media-icon name="airplay-enter" class="media-button-icon media-airplay-button-enter-icon">
</media-icon>
</span>
<span class="hidden theme-minimal:contents">
<media-icon family="minimal" name="airplay-enter" class="media-button-icon media-airplay-button-enter-icon">
</media-icon>
</span>
<span class="contents theme-minimal:hidden">
<media-icon name="airplay-exit" class="media-button-icon media-airplay-button-exit-icon">
</media-icon>
</span>
<span class="hidden theme-minimal:contents">
<media-icon family="minimal" name="airplay-exit" class="media-button-icon media-airplay-button-exit-icon">
</media-icon>
</span>
</media-airplay-button>
<media-tooltip trigger="vjs-sps9KiPk-ev-6-trigger" side="top" class="media-tooltip">
<media-tooltip-label>
</media-tooltip-label>
<media-tooltip-shortcut class="media-tooltip-shortcut">
</media-tooltip-shortcut>
</media-tooltip>
<media-pip-button class="media-button media-pip-button" id="vjs-sps9KiPk-ev-7-trigger">
<span class="contents theme-minimal:hidden">
<media-icon name="pip-enter" class="media-button-icon media-pip-button-enter-icon">
</media-icon>
</span>
<span class="hidden theme-minimal:contents">
<media-icon family="minimal" name="pip-enter" class="media-button-icon media-pip-button-enter-icon">
</media-icon>
</span>
<span class="contents theme-minimal:hidden">
<media-icon name="pip-exit" class="media-button-icon media-pip-button-exit-icon">
</media-icon>
</span>
<span class="hidden theme-minimal:contents">
<media-icon family="minimal" name="pip-exit" class="media-button-icon media-pip-button-exit-icon">
</media-icon>
</span>
</media-pip-button>
<media-tooltip trigger="vjs-sps9KiPk-ev-7-trigger" side="top" class="media-tooltip">
<media-tooltip-label>
</media-tooltip-label>
<media-tooltip-shortcut class="media-tooltip-shortcut">
</media-tooltip-shortcut>
</media-tooltip>
<media-fullscreen-button class="media-button media-fullscreen-button" id="vjs-sps9KiPk-ev-8-trigger">
<span class="contents theme-minimal:hidden">
<media-icon name="fullscreen-enter" class="media-button-icon media-fullscreen-button-enter-icon">
</media-icon>
</span>
<span class="hidden theme-minimal:contents">
<media-icon family="minimal" name="fullscreen-enter" class="media-button-icon media-fullscreen-button-enter-icon">
</media-icon>
</span>
<span class="contents theme-minimal:hidden">
<media-icon name="fullscreen-exit" class="media-button-icon media-fullscreen-button-exit-icon">
</media-icon>
</span>
<span class="hidden theme-minimal:contents">
<media-icon family="minimal" name="fullscreen-exit" class="media-button-icon media-fullscreen-button-exit-icon">
</media-icon>
</span>
</media-fullscreen-button>
<media-tooltip trigger="vjs-sps9KiPk-ev-8-trigger" side="top" class="media-tooltip">
<media-tooltip-label>
</media-tooltip-label>
<media-tooltip-shortcut class="media-tooltip-shortcut">
</media-tooltip-shortcut>
</media-tooltip>
</media-controls-group>
</media-controls-group>
</media-tooltip-group>
</media-controls-content>
</media-controls>
<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-hotkey keys="f" action="toggleFullscreen">
</media-hotkey>
<media-hotkey keys="c" action="toggleSubtitles">
</media-hotkey>
<media-hotkey keys="i" action="togglePictureInPicture">
</media-hotkey>
<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>
<media-status-announcer class="media-status-announcer">
</media-status-announcer>
<div class="media-video-status-indicators">
<media-volume-indicator class="media-volume-indicator">
<media-volume-indicator-fill class="media-volume-indicator-fill">
<span class="contents theme-minimal:hidden">
<media-icon name="volume-high" class="media-volume-indicator-high-icon">
</media-icon>
</span>
<span class="hidden theme-minimal:contents">
<media-icon family="minimal" name="volume-high" class="media-volume-indicator-high-icon">
</media-icon>
</span>
<span class="contents theme-minimal:hidden">
<media-icon name="volume-low" class="media-volume-indicator-low-icon">
</media-icon>
</span>
<span class="hidden theme-minimal:contents">
<media-icon family="minimal" name="volume-low" class="media-volume-indicator-low-icon">
</media-icon>
</span>
<span class="contents theme-minimal:hidden">
<media-icon name="volume-off" class="media-volume-indicator-off-icon">
</media-icon>
</span>
<span class="hidden theme-minimal:contents">
<media-icon family="minimal" name="volume-off" class="media-volume-indicator-off-icon">
</media-icon>
</span>
<media-volume-indicator-value class="media-volume-indicator-value">
</media-volume-indicator-value>
</media-volume-indicator-fill>
</media-volume-indicator>
<media-status-indicator actions="toggleSubtitles,toggleFullscreen,togglePictureInPicture" class="media-status-indicator">
<div class="media-status-indicator-content">
<span class="contents theme-minimal:hidden">
<media-icon name="captions-on" class="media-status-indicator-captions-on-icon">
</media-icon>
</span>
<span class="hidden theme-minimal:contents">
<media-icon family="minimal" name="captions-on" class="media-status-indicator-captions-on-icon">
</media-icon>
</span>
<span class="contents theme-minimal:hidden">
<media-icon name="captions-off" class="media-status-indicator-captions-off-icon">
</media-icon>
</span>
<span class="hidden theme-minimal:contents">
<media-icon family="minimal" name="captions-off" class="media-status-indicator-captions-off-icon">
</media-icon>
</span>
<span class="contents theme-minimal:hidden">
<media-icon name="fullscreen-enter" class="media-status-indicator-fullscreen-enter-icon">
</media-icon>
</span>
<span class="hidden theme-minimal:contents">
<media-icon family="minimal" name="fullscreen-enter" class="media-status-indicator-fullscreen-enter-icon">
</media-icon>
</span>
<span class="contents theme-minimal:hidden">
<media-icon name="fullscreen-exit" class="media-status-indicator-fullscreen-exit-icon">
</media-icon>
</span>
<span class="hidden theme-minimal:contents">
<media-icon family="minimal" name="fullscreen-exit" class="media-status-indicator-fullscreen-exit-icon">
</media-icon>
</span>
<span class="contents theme-minimal:hidden">
<media-icon name="pip-enter" class="media-status-indicator-pip-enter-icon">
</media-icon>
</span>
<span class="hidden theme-minimal:contents">
<media-icon family="minimal" name="pip-enter" class="media-status-indicator-pip-enter-icon">
</media-icon>
</span>
<span class="contents theme-minimal:hidden">
<media-icon name="pip-exit" class="media-status-indicator-pip-exit-icon">
</media-icon>
</span>
<span class="hidden theme-minimal:contents">
<media-icon family="minimal" name="pip-exit" class="media-status-indicator-pip-exit-icon">
</media-icon>
</span>
<media-status-indicator-value class="media-status-indicator-value">
</media-status-indicator-value>
</div>
</media-status-indicator>
<media-seek-indicator class="media-seek-indicator">
<span class="contents theme-minimal:hidden">
<media-icon name="chevron" class="media-seek-indicator-icon">
</media-icon>
</span>
<span class="hidden theme-minimal:contents">
<media-icon family="minimal" name="chevron" class="media-seek-indicator-icon">
</media-icon>
</span>
<media-seek-indicator-value class="media-seek-indicator-value">
</media-seek-indicator-value>
</media-seek-indicator>
<media-status-indicator actions="togglePaused" class="media-playback-status-indicator">
<span class="contents theme-minimal:hidden">
<media-icon name="play" class="media-playback-status-indicator-play-icon">
</media-icon>
</span>
<span class="hidden theme-minimal:contents">
<media-icon family="minimal" name="play" class="media-playback-status-indicator-play-icon">
</media-icon>
</span>
<span class="contents theme-minimal:hidden">
<media-icon name="pause" class="media-playback-status-indicator-pause-icon">
</media-icon>
</span>
<span class="hidden theme-minimal:contents">
<media-icon family="minimal" name="pause" class="media-playback-status-indicator-pause-icon">
</media-icon>
</span>
</media-status-indicator>
</div>
</media-container>@layer base {
.media-skin {
--media-background: oklch(0% 0 0);
--media-foreground: oklch(100% 0 0);
--media-controls: oklch(0% 0 0 / 0.35);
--media-controls-foreground: var(--media-foreground);
--media-popover: oklch(100% 0 0 / 0.1);
--media-popover-foreground: var(--media-foreground);
--media-primary: var(--media-accent-color, var(--media-default-accent-color));
--media-primary-foreground: var(
--media-accent-text-color,
contrast-color(var(--media-accent-color, var(--media-default-accent-color)))
);
--media-accent: var(--media-accent-color, color-mix(in oklab, var(--media-default-accent-color) 10%, transparent));
--media-accent-foreground: var(
--media-accent-text-color,
contrast-color(var(--media-accent-color, var(--media-internal-accent-text-base, oklch(0% 0 0))))
);
--media-muted: oklch(100% 0 0 / 0.15);
--media-muted-foreground: oklch(100% 0 0 / 0.65);
--media-border: oklch(0% 0 0 / 0.1);
--media-ring: var(--media-focus-ring-color, oklch(100% 0 0));
--media-shadow-sm: 0 1px 2px oklch(0% 0 0 / 0.15);
--media-caption-controls-y: calc(var(--media-spacing) * -14);
--media-control-corner-shape: round;
--media-control-radius: calc(infinity * 1px);
--media-control-size: calc(var(--media-spacing) * 9);
--media-controls-transition-duration: 0.1s;
--media-default-accent-color: oklch(100% 0 0);
--media-focus-ring-color: oklch(100% 0 0);
--media-menu-item-border-radius: calc(var(--media-spacing) * 2);
--media-menu-transition-duration: 0.25s;
--media-popup-translate-distance: calc(var(--media-scale-unit, 16px) * 0.5);
--media-video-border-radius: var(--media-border-radius, 28px);
--media-scale: 1;
--media-scrollbar-thumb-color: oklch(from currentColor l c h / 0.3);
--media-spacing: calc(var(--media-scale-unit, 16px) * var(--media-scale) / 4);
scrollbar-color: var(--media-scrollbar-thumb-color) transparent;
scrollbar-width: thin;
}
.media-skin::-webkit-scrollbar-thumb {
background: var(--media-scrollbar-thumb-color);
border-radius: 9999px;
}
.media-skin--minimal {
--media-caption-controls-y: calc(var(--media-spacing) * -18);
--media-control-corner-shape: squircle;
--media-control-radius: calc(var(--media-spacing) * 2);
--media-control-size: calc(var(--media-spacing) * 9.5);
--media-popover: oklch(0% 0 0 / 0.5);
--media-border: oklch(100% 0 0 / 0.1);
--media-shadow-sm: 0 1px 2px oklch(0% 0 0 / 0.2);
--media-menu-item-border-radius: calc(var(--media-spacing) * 1.5);
--media-popup-translate-distance: calc(var(--media-spacing) * 2);
--media-video-border-radius: var(--media-border-radius, 12px);
}
:is(.media-skin--audio, .media-skin--live-audio) {
--media-background: light-dark(oklch(100% 0 0), oklch(0% 0 0));
--media-foreground: light-dark(oklch(0% 0 0), oklch(100% 0 0));
--media-controls: light-dark(oklch(100% 0 0 / 0.5), oklch(0% 0 0 / 0.4));
--media-controls-foreground: var(--media-foreground);
--media-popover: var(--media-controls);
--media-popover-foreground: var(--media-foreground);
--media-primary: var(--media-accent-color, var(--media-foreground));
--media-primary-foreground: var(--media-accent-text-color, contrast-color(var(--media-primary)));
--media-border: light-dark(oklch(0% 0 0 / 0.1), oklch(100% 0 0 / 0.1));
--media-ring: var(--media-foreground);
--media-default-accent-color: light-dark(oklch(0% 0 0), oklch(100% 0 0));
--media-internal-accent-text-base: light-dark(oklch(100% 0 0), oklch(0% 0 0));
--media-focus-ring-color: light-dark(oklch(0% 0 0), oklch(100% 0 0));
}
:is(.media-skin--audio, .media-skin--live-audio).media-skin--minimal {
--media-controls: var(--media-background);
--media-popover: var(--media-background);
}
@media (pointer: fine) {
.media-skin:not([data-controls-visible]) {
--media-controls-transition-duration: 0.3s;
}
}
@media (pointer: coarse) {
.media-skin:not([data-controls-visible]) {
--media-controls-transition-duration: 0.15s;
}
}
@media (prefers-reduced-motion: reduce) {
.media-skin {
--media-controls-transition-duration: 50ms;
}
}
@media (prefers-reduced-transparency: reduce), (prefers-contrast: more) {
.media-skin {
--media-scrollbar-thumb-color: oklch(from currentColor l c h / 0.8);
scrollbar-width: auto;
}
}
@scope (.media-skin) {
:scope,
*,
:before,
:after {
box-sizing: border-box;
}
button {
font: inherit;
color: inherit;
text-transform: none;
letter-spacing: inherit;
appearance: none;
background: none;
margin: 0;
}
img,
svg,
media-icon {
max-width: 100%;
margin: 0;
display: block;
}
svg[fill="currentColor"] {
fill: currentColor;
}
svg[fill="none"] {
fill: none;
}
svg[stroke="currentColor"] {
stroke: currentColor;
}
video {
border-radius: inherit;
object-fit: var(--media-object-fit, contain);
object-position: var(--media-object-position, center);
width: 100%;
max-width: 100%;
height: 100%;
display: block;
}
media-icon > svg {
width: 100%;
height: 100%;
}
media-tooltip-group,
media-dialog,
media-alert-dialog,
media-error-dialog,
media-controls {
display: contents;
}
[hidden][hidden] {
display: none !important;
}
}
@media (prefers-reduced-motion: no-preference) {
.media-skin {
interpolate-size: allow-keywords;
}
}
}
@layer components {
@scope (.media-skin) {
:scope {
--media-caption-track-duration: var(--media-controls-transition-duration);
--media-caption-track-delay: 25ms;
--media-caption-track-y: calc(var(--media-spacing) * -2);
}
video::-webkit-media-text-track-container {
z-index: 1;
scale: 0.98;
translate: 0 var(--media-caption-track-y);
transition: translate var(--media-caption-track-duration) ease-out;
transition-delay: var(--media-caption-track-delay);
font-family: inherit;
}
:scope[data-controls-visible] {
--media-caption-track-y: var(--media-caption-controls-y);
}
@container media-root (width > 672px) {
:scope.media-skin--minimal[data-controls-visible] {
--media-caption-track-y: calc(var(--media-spacing) * -12);
}
}
}
@scope (.media-skin--minimal.media-skin--video) {
.media-button-icon {
width: var(--media-icon-size, calc(var(--media-spacing) * 4.5));
height: var(--media-icon-size, calc(var(--media-spacing) * 4.5));
filter: drop-shadow(0 1px 0 var(--media-shadow-current-color));
grid-row-start: 1;
grid-column-start: 1;
transition-property: opacity, scale;
transition-duration: 0.15s;
transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
}
@media (prefers-reduced-motion: reduce) {
.media-button-icon {
transition-property: opacity;
transition-duration: 50ms;
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
}
}
.media-play-button-pause-icon {
opacity: 0;
scale: 0;
}
@scope (.media-play-button) {
&[data-started]:not([data-paused]):not([data-ended]) .media-play-button-pause-icon {
opacity: 1;
scale: 1;
}
}
@media (prefers-reduced-motion: reduce) {
.media-play-button-pause-icon {
scale: 1;
}
}
.media-play-button-play-icon {
opacity: 0;
scale: 0;
}
@scope (.media-play-button) {
&:not([data-ended]):not([data-started]) .media-play-button-play-icon,
&:not([data-ended])[data-paused] .media-play-button-play-icon {
opacity: 1;
scale: 1;
}
}
@media (prefers-reduced-motion: reduce) {
.media-play-button-play-icon {
scale: 1;
}
}
.media-play-button-restart-icon {
opacity: 0;
scale: 0;
}
@scope (.media-play-button) {
&[data-ended] .media-play-button-restart-icon {
opacity: 1;
scale: 1;
}
}
@media (prefers-reduced-motion: reduce) {
.media-play-button-restart-icon {
scale: 1;
}
}
}
@scope (.media-skin--minimal.media-skin--video) {
.media-container,
:scope.media-container {
isolation: isolate;
border-radius: var(--media-video-border-radius);
background-color: var(--media-background);
width: 100%;
height: 100%;
font-family:
Inter Variable,
Inter,
ui-sans-serif,
system-ui,
sans-serif;
font-size: calc(var(--media-spacing) * 3.25);
-webkit-font-smoothing: auto;
-moz-osx-font-smoothing: auto;
outline-offset: -4px;
--media-shadow-current-color: oklch(from currentColor 0 0 0/clamp(0, calc((l - 0.5) * 0.5), 0.15));
--media-shadow-subtle-current-color: oklch(from var(--media-shadow-current-color) l c h/calc(alpha * 0.4));
--spacing: var(--media-spacing);
outline: 2px solid #0000;
line-height: 1.5;
transition-property: outline-offset, outline-color;
transition-duration: 0.1s;
transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
display: block;
position: relative;
overflow: clip;
container: media-root / size;
}
.media-container:after,
:scope.media-container:after {
pointer-events: none;
inset: calc(var(--media-spacing) * 0);
z-index: 10;
border-radius: inherit;
content: "";
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 #0000,
inset 0 0 0 1px var(--media-border);
position: absolute;
}
.media-container:focus-visible,
:scope.media-container:focus-visible {
outline-offset: 2px;
outline-color: var(--media-focus-ring-color, light-dark(#000, #fff));
}
@media (prefers-reduced-motion: reduce) {
.media-container,
:scope.media-container {
transition-duration: 50ms;
}
}
@media (forced-colors: active) {
.media-container:after,
:scope.media-container:after {
content: "";
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 #0000,
inset 0 0 0 1px canvastext;
}
.media-container:focus-visible,
:scope.media-container:focus-visible {
outline-color: canvastext;
}
}
@media (pointer: fine) {
.media-container:not([data-controls-visible]),
:scope.media-container:not([data-controls-visible]) {
cursor: none;
}
}
.media-container:fullscreen,
:scope.media-container:fullscreen {
--media-object-fit: contain;
--media-video-border-radius: 0;
}
.media-container:fullscreen:after,
:scope.media-container:fullscreen:after {
content: "";
display: none;
}
@media (width >= 1280px) {
.media-container:fullscreen,
:scope.media-container:fullscreen {
--media-scale: 1.25;
}
}
@media (width >= 1536px) {
.media-container:fullscreen,
:scope.media-container:fullscreen {
--media-scale: 1.5;
}
}
@media (width >= 1920px) {
.media-container:fullscreen,
:scope.media-container:fullscreen {
--media-scale: 1.75;
}
}
}
@scope (.media-skin--minimal.media-skin--video) {
.media-menu-back-item {
margin-bottom: calc(var(--media-spacing) * 0.5);
cursor: pointer;
align-items: center;
gap: calc(var(--media-spacing) * 1.5);
border-radius: var(--media-menu-item-border-radius);
width: 100%;
padding-inline: calc(var(--media-spacing) * 2);
padding-block: calc(var(--media-spacing) * 1.5);
text-align: start;
white-space: nowrap;
outline-offset: -2px;
-webkit-user-select: none;
user-select: none;
text-shadow: 0 1px 0 var(--media-shadow-current-color);
outline: 2px solid #0000;
transition-property: background-color, color;
transition-duration: 0.1s;
transition-timing-function: ease-in-out;
display: flex;
position: relative;
}
@media (hover: hover) {
.media-menu-back-item:hover {
background-color: var(--media-accent);
color: var(--media-accent-foreground);
}
}
.media-menu-back-item:focus-visible {
outline-offset: 2px;
outline-color: #fff;
}
.media-menu-back-item[data-highlighted] {
background-color: var(--media-accent);
color: var(--media-accent-foreground);
}
@supports (top: anchor(top)) {
.media-menu-back-item {
transition-duration: 50ms;
}
@media (hover: hover) {
.media-menu-back-item:hover {
transition-duration: 0.2s;
}
}
.media-menu-back-item[data-highlighted] {
transition-duration: 0.2s;
}
}
@media (prefers-reduced-motion: reduce) {
.media-menu-back-item {
transition-duration: 50ms;
}
}
.media-menu-content {
max-height: inherit;
overscroll-behavior: none;
transition-property: translate, filter;
transition-duration: var(--media-menu-transition-duration);
anchor-scope: --media-menu-item-highlight-anchor;
outline-style: none;
transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
position: absolute;
overflow: auto;
}
.media-menu-content:not([data-submenu]) {
inset-inline: calc(var(--media-spacing) * 1);
top: calc(var(--media-spacing) * 1);
gap: calc(var(--media-spacing) * 0.5);
flex-direction: column;
display: flex;
}
.media-menu-content[data-submenu] {
inset-inline: calc(var(--media-spacing) * 0);
top: calc(var(--media-spacing) * 0);
z-index: 10;
max-height: inherit;
padding: calc(var(--media-spacing) * 1);
}
.media-menu-content[data-submenu][data-ending-style],
.media-menu-content[data-submenu][data-starting-style] {
pointer-events: none;
filter: blur(8px);
overflow: hidden;
translate: 100%;
}
.media-menu-content:not([data-submenu])[data-child-open] {
filter: blur(8px);
translate: -100%;
}
.media-menu-content:not([data-submenu])[data-child-open]:before {
content: "";
display: none;
}
@supports (top: anchor(top)) {
.media-menu-content:before {
pointer-events: none;
inset: anchor(inside);
border-radius: var(--media-menu-item-border-radius);
background-color: var(--media-accent);
overflow-anchor: none;
content: "";
position-anchor: --media-menu-item-highlight-anchor;
transition-property: inset;
transition-duration: 0.1s;
transition-timing-function: ease-in-out;
position: absolute;
}
.media-menu-content:has([data-highlighted=""]):before {
content: "";
transition-duration: 0s;
}
}
.media-menu-content[data-submenu][data-ending-style]:dir(rtl),
.media-menu-content[data-submenu][data-starting-style]:dir(rtl) {
translate: -100%;
}
.media-menu-content:not([data-submenu])[data-child-open]:dir(rtl) {
translate: 100%;
}
.media-menu-hint {
min-width: calc(var(--media-spacing) * 0);
align-items: center;
gap: calc(var(--media-spacing) * 1);
color: currentColor;
margin-inline-start: auto;
padding-inline-start: calc(var(--media-spacing) * 2);
display: inline-flex;
}
@supports (color: color-mix(in lab, red, red)) {
.media-menu-hint {
color: color-mix(in oklab, currentcolor 65%, transparent);
}
}
.media-menu-hint-label {
max-width: calc(var(--media-spacing) * 24);
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
}
.media-menu-radio-group {
max-height: inherit;
gap: calc(var(--media-spacing) * 0.5);
anchor-scope: --media-menu-item-highlight-anchor;
flex-direction: column;
display: flex;
}
@supports (top: anchor(top)) {
.media-menu-radio-group:before {
pointer-events: none;
inset: anchor(inside);
border-radius: var(--media-menu-item-border-radius);
background-color: var(--media-accent);
overflow-anchor: none;
content: "";
position-anchor: --media-menu-item-highlight-anchor;
transition-property: inset;
transition-duration: 0.1s;
transition-timing-function: ease-in-out;
position: absolute;
}
.media-menu-radio-group:has([data-highlighted=""]):before {
content: "";
transition-duration: 0s;
}
}
.media-menu-separator {
margin-block: calc(var(--media-spacing) * 1);
border-bottom-style: solid;
border-bottom-width: 1px;
border-color: var(--media-border);
display: block;
}
@media (prefers-contrast: more) {
.media-menu-separator {
border-color: oklab(100% 0 5.96046e-8 / 0.25);
}
}
@media (forced-colors: active) {
.media-menu-separator {
border-color: canvastext;
}
}
@media (prefers-reduced-transparency: reduce) {
.media-menu-separator {
border-color: oklab(100% 0 5.96046e-8 / 0.25);
}
}
.media-menu-trigger-item {
cursor: pointer;
justify-content: space-between;
align-items: center;
gap: calc(var(--media-spacing) * 1.5);
border-radius: var(--media-menu-item-border-radius);
padding-inline: calc(var(--media-spacing) * 2);
padding-block: calc(var(--media-spacing) * 1.5);
text-align: start;
white-space: nowrap;
color: inherit;
font-variant-numeric: tabular-nums;
outline-offset: -2px;
-webkit-user-select: none;
user-select: none;
text-shadow: 0 1px 0 var(--media-shadow-current-color);
outline: 2px solid #0000;
transition-property: background-color, color;
transition-duration: 0.1s;
transition-timing-function: ease-in-out;
display: flex;
position: relative;
}
@media (hover: hover) {
.media-menu-trigger-item:hover {
background-color: var(--media-accent);
color: var(--media-accent-foreground);
}
}
.media-menu-trigger-item:focus-visible {
outline-offset: 2px;
outline-color: #fff;
}
.media-menu-trigger-item[aria-disabled="true"] {
pointer-events: none;
cursor: not-allowed;
opacity: 0.5;
}
.media-menu-trigger-item[data-highlighted] {
background-color: var(--media-accent);
color: var(--media-accent-foreground);
}
.media-menu-trigger-item[data-availability="unavailable"],
.media-menu-trigger-item[data-availability="unsupported"] {
display: none;
}
@supports (top: anchor(top)) {
.media-menu-trigger-item {
transition-duration: 50ms;
}
@media (hover: hover) {
.media-menu-trigger-item:hover {
transition-duration: 0.2s;
}
}
.media-menu-trigger-item[data-highlighted] {
anchor-name: --media-menu-item-highlight-anchor;
background-color: #0000;
transition-duration: 0.2s;
}
}
@media (prefers-reduced-motion: reduce) {
.media-menu-trigger-item {
transition-duration: 50ms;
}
}
.media-menu-trigger-item-icon {
width: var(--media-icon-size, calc(var(--media-spacing) * 4.5));
height: var(--media-icon-size, calc(var(--media-spacing) * 4.5));
color: var(--media-muted-foreground);
filter: drop-shadow(0 1px 0 var(--media-shadow-current-color));
flex-shrink: 0;
}
@media (hover: hover) {
@scope (.media-menu-trigger-item) {
&:hover .media-menu-trigger-item-icon {
color: inherit;
}
}
}
@scope (.media-menu-trigger-item) {
&[data-highlighted] .media-menu-trigger-item-icon {
color: inherit;
}
}
}
@scope (.media-skin--minimal.media-skin--video) {
@media (prefers-reduced-motion: reduce) {
}
.media-captions-button-off-icon {
opacity: 0;
}
@scope (.media-captions-button) {
&:not([data-active]) .media-captions-button-off-icon {
opacity: 1;
scale: 1;
}
}
.media-captions-button-on-icon {
opacity: 0;
}
@scope (.media-captions-button) {
&[data-active] .media-captions-button-on-icon {
opacity: 1;
scale: 1;
}
}
}
@scope (.media-skin--minimal.media-skin--video) {
.media-menu-item-indicator {
opacity: 0;
flex-shrink: 0;
margin-inline-start: auto;
margin-inline-end: calc(var(--media-spacing) * -1);
}
@scope (.media-menu-radio-item) {
&[aria-checked="true"] .media-menu-item-indicator {
opacity: 1;
}
}
.media-menu-radio-item {
cursor: pointer;
justify-content: space-between;
align-items: center;
gap: calc(var(--media-spacing) * 1.5);
border-radius: var(--media-menu-item-border-radius);
padding-inline: calc(var(--media-spacing) * 2);
padding-block: calc(var(--media-spacing) * 1.5);
text-align: start;
white-space: nowrap;
color: inherit;
font-variant-numeric: tabular-nums;
outline-offset: -2px;
-webkit-user-select: none;
user-select: none;
text-shadow: 0 1px 0 var(--media-shadow-current-color);
outline: 2px solid #0000;
transition-property: background-color, color;
transition-duration: 0.1s;
transition-timing-function: ease-in-out;
display: flex;
position: relative;
}
@media (hover: hover) {
.media-menu-radio-item:hover {
background-color: var(--media-accent);
color: var(--media-accent-foreground);
}
}
.media-menu-radio-item:focus-visible {
outline-offset: 2px;
outline-color: #fff;
}
.media-menu-radio-item[aria-disabled="true"] {
pointer-events: none;
cursor: not-allowed;
opacity: 0.5;
}
.media-menu-radio-item[data-highlighted] {
background-color: var(--media-accent);
color: var(--media-accent-foreground);
}
.media-menu-radio-item[data-availability="unavailable"],
.media-menu-radio-item[data-availability="unsupported"] {
display: none;
}
@supports (top: anchor(top)) {
.media-menu-radio-item {
transition-duration: 50ms;
}
@media (hover: hover) {
.media-menu-radio-item:hover {
transition-duration: 0.2s;
}
}
.media-menu-radio-item[data-highlighted] {
anchor-name: --media-menu-item-highlight-anchor;
background-color: #0000;
transition-duration: 0.2s;
}
}
@media (prefers-reduced-motion: reduce) {
.media-menu-radio-item {
transition-duration: 50ms;
}
}
.media-menu-radio-item-icon {
width: var(--media-icon-size, calc(var(--media-spacing) * 4.5));
height: var(--media-icon-size, calc(var(--media-spacing) * 4.5));
color: var(--media-muted-foreground);
filter: drop-shadow(0 1px 0 var(--media-shadow-current-color));
flex-shrink: 0;
}
@media (hover: hover) {
@scope (.media-menu-radio-item) {
&:hover .media-menu-radio-item-icon {
color: inherit;
}
}
}
@scope (.media-menu-radio-item) {
&[data-highlighted] .media-menu-radio-item-icon {
color: inherit;
}
}
}
@scope (.media-skin--minimal.media-skin--video) {
.media-menu-back-chevron {
width: calc(var(--media-spacing) * 3.5);
height: calc(var(--media-spacing) * 3.5);
width: var(--media-icon-size, calc(var(--media-spacing) * 4.5));
height: var(--media-icon-size, calc(var(--media-spacing) * 4.5));
color: var(--media-muted-foreground);
filter: drop-shadow(0 1px 0 var(--media-shadow-current-color));
flex-shrink: 0;
rotate: 180deg;
}
@media (hover: hover) {
@scope (.media-menu-back-item) {
&:hover .media-menu-back-chevron {
color: inherit;
}
}
}
@scope (.media-menu-back-item) {
&[data-highlighted] .media-menu-back-chevron {
color: inherit;
}
}
.media-menu-back-chevron:dir(rtl) {
rotate: 0deg;
scale: 1;
}
.media-menu-forward-chevron {
width: calc(var(--media-spacing) * 3.5);
height: calc(var(--media-spacing) * 3.5);
width: var(--media-icon-size, calc(var(--media-spacing) * 4.5));
height: var(--media-icon-size, calc(var(--media-spacing) * 4.5));
color: var(--media-muted-foreground);
filter: drop-shadow(0 1px 0 var(--media-shadow-current-color));
flex-shrink: 0;
}
@media (hover: hover) {
@scope (.media-menu-trigger-item) {
&:hover .media-menu-forward-chevron {
color: inherit;
}
}
}
@scope (.media-menu-trigger-item) {
&[data-highlighted] .media-menu-forward-chevron {
color: inherit;
}
}
.media-menu-forward-chevron:dir(rtl) {
scale: -1 1;
}
}
@scope (.media-skin--minimal.media-skin--video) {
@media (prefers-reduced-motion: reduce) {
}
.media-cast-button-enter-icon {
opacity: 0;
}
@scope (.media-cast-button) {
&:not([data-cast-state="connected"]) .media-cast-button-enter-icon {
opacity: 1;
scale: 1;
}
}
.media-cast-button-exit-icon {
opacity: 0;
}
@scope (.media-cast-button) {
&[data-cast-state="connected"] .media-cast-button-exit-icon {
opacity: 1;
scale: 1;
}
}
}
@scope (.media-skin--minimal.media-skin--video) {
.media-tooltip {
margin: calc(var(--media-spacing) * 0);
background-color: var(--media-popover);
font-size: calc(var(--media-spacing) * 3.25);
white-space: nowrap;
color: var(--media-popover-foreground);
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 0 calc(1px + 0px) var(--media-border),
0 0 #0000;
box-shadow: var(--media-shadow-sm);
backdrop-filter: blur(16px) saturate(150%);
border-style: solid;
border-width: 0;
transition-property: opacity, filter, transform, scale;
transition-duration: 0.1s;
transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
overflow: visible;
}
.media-tooltip:before {
pointer-events: auto;
content: "";
position: absolute;
}
.media-tooltip:after {
pointer-events: none;
inset: calc(var(--media-spacing) * 0);
z-index: 10;
border-radius: inherit;
content: "";
position: absolute;
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 #0000,
inset 0 1px #ffffff1a,
inset 0 0 0 1px #ffffff0d;
}
.media-tooltip[data-ending-style] {
opacity: 0;
filter: blur(4px);
transition-duration: 50ms;
transform: none;
}
.media-tooltip[data-open] {
align-items: center;
gap: calc(var(--media-spacing) * 1);
display: flex;
}
.media-tooltip[data-starting-style] {
transform: translate(var(--media-popup-translate-x-distance, 0), var(--media-popup-translate-y-distance, 0));
opacity: 0;
filter: blur(4px);
}
.media-tooltip[data-side="bottom"] {
transform-origin: top;
--media-popup-translate-y-distance: calc(var(--media-popup-translate-distance) * -1);
}
.media-tooltip[data-side="bottom"]:before {
inset-inline: calc(var(--media-spacing) * 0);
content: "";
height: var(--media-tooltip-side-offset);
bottom: 100%;
}
.media-tooltip[data-side="left"] {
transform-origin: 100%;
--media-popup-translate-x-distance: var(--media-popup-translate-distance);
}
.media-tooltip[data-side="left"]:before {
inset-block: calc(var(--media-spacing) * 0);
content: "";
width: var(--media-tooltip-side-offset);
left: 100%;
}
.media-tooltip[data-side="right"] {
transform-origin: 0;
--media-popup-translate-x-distance: calc(var(--media-popup-translate-distance) * -1);
}
.media-tooltip[data-side="right"]:before {
inset-block: calc(var(--media-spacing) * 0);
content: "";
width: var(--media-tooltip-side-offset);
right: 100%;
}
.media-tooltip[data-side="top"] {
transform-origin: bottom;
--media-popup-translate-y-distance: var(--media-popup-translate-distance);
}
.media-tooltip[data-side="top"]:before {
inset-inline: calc(var(--media-spacing) * 0);
content: "";
height: var(--media-tooltip-side-offset);
top: 100%;
}
@media (prefers-reduced-motion: reduce) {
.media-tooltip {
transition-duration: 0s !important;
}
.media-tooltip[data-ending-style] {
filter: none !important;
transition-duration: 0s !important;
transform: none !important;
}
.media-tooltip[data-starting-style] {
filter: none !important;
transform: none !important;
}
}
@media (prefers-contrast: more) {
.media-tooltip {
background-color: var(--media-background);
backdrop-filter: none;
}
.media-tooltip:after {
content: "";
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 #0000,
inset 0 1px #ffffff40,
inset 0 0 0 1px #ffffff20;
}
}
@media (forced-colors: active) {
.media-tooltip {
color: canvastext;
background-color: canvas;
}
.media-tooltip:after {
content: "";
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 #0000,
inset 0 1px canvastext,
inset 0 0 0 1px canvastext;
}
}
.media-tooltip:where(.media-skin:not(.media-skin--minimal), .media-skin:not(.media-skin--minimal) *) {
padding-inline: calc(var(--media-spacing) * 2.5);
padding-block: calc(var(--media-spacing) * 1);
border-radius: 9999px;
}
.media-tooltip:where(.media-skin--minimal, .media-skin--minimal *) {
border-radius: calc(var(--media-spacing) * 2);
padding-inline: calc(var(--media-spacing) * 2);
padding-block: calc(var(--media-spacing) * 1);
}
.media-tooltip:where(.media-skin--minimal, .media-skin--minimal *):after {
content: "";
display: none;
}
.media-tooltip:where(.media-skin--minimal, .media-skin--minimal *)[data-starting-style] {
filter: none;
}
.media-tooltip:is([data-starting-style], [data-ending-style]) {
scale: 0.95;
}
@media (prefers-reduced-motion: reduce) {
.media-tooltip:is([data-starting-style], [data-ending-style]) {
scale: 1 !important;
}
}
@media (prefers-reduced-transparency: reduce) {
.media-tooltip {
background-color: var(--media-background);
backdrop-filter: none;
}
.media-tooltip:after {
content: "";
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 #0000,
inset 0 1px #ffffff40,
inset 0 0 0 1px #ffffff20;
}
}
.media-tooltip-shortcut {
border-radius: calc(var(--media-spacing) * 1);
background-color: var(--media-muted);
text-align: center;
min-width: 1.5em;
font-family: inherit;
font-size: calc(var(--media-spacing) * 2.75);
padding: 0.1em;
font-weight: 600;
line-height: 1.25;
}
.media-tooltip-shortcut:where(.media-skin--minimal, .media-skin--minimal *) {
margin-inline-end: calc(var(--media-spacing) * -1);
}
}
@scope (.media-skin--minimal.media-skin--video) {
.media-status-announcer {
clip-path: inset(50%);
white-space: nowrap;
border-width: 0;
width: 1px;
height: 1px;
margin: -1px;
padding: 0;
position: absolute;
overflow: hidden;
}
}
@scope (.media-skin--minimal.media-skin--video) {
.media-slider {
cursor: pointer;
border-radius: 99px;
outline-style: none;
flex: 1;
justify-content: center;
align-items: center;
display: flex;
position: relative;
}
.media-slider[data-orientation="horizontal"] {
height: var(--media-slider-height, calc(var(--media-spacing) * 8));
min-width: calc(var(--media-spacing) * 20);
}
.media-slider[data-orientation="vertical"] {
height: calc(var(--media-spacing) * 20);
width: calc(var(--media-spacing) * 8);
min-width: calc(var(--media-spacing) * 0);
}
.media-slider-preview {
height: calc(var(--media-spacing) * 1);
--media-slider-preview-max-height: var(--media-slider-preview-max-width);
position: relative;
}
.media-slider-preview:before {
pointer-events: none;
z-index: 1;
content: "";
opacity: 0;
position: absolute;
translate: -50% -50%;
scale: 0.5;
}
.media-slider-preview[data-pointing]:not([data-dragging]):before {
content: "";
opacity: 1;
scale: 1;
}
@media (prefers-reduced-motion: no-preference) {
.media-slider-preview:before {
content: "";
transition-property: opacity, scale;
transition-duration: 0.2s;
transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
}
}
.media-slider-preview:where(.media-skin:not(.media-skin--minimal), .media-skin:not(.media-skin--minimal) *) {
min-width: var(--media-slider-preview-max-width);
--media-slider-preview-max-width: min(calc(var(--media-spacing) * 36), 100cqi);
}
.media-slider-preview:where(.media-skin:not(.media-skin--minimal), .media-skin:not(.media-skin--minimal) *):before {
width: calc(var(--media-spacing) * 1);
height: calc(var(--media-spacing) * 1);
border-radius: var(--media-control-radius);
content: "";
background-color: currentColor;
top: 50%;
left: 50%;
}
@container media-root (width >= 42rem) {
.media-slider-preview:where(.media-skin:not(.media-skin--minimal), .media-skin:not(.media-skin--minimal) *) {
--media-slider-preview-max-width: min(calc(var(--media-spacing) * 48), 100cqi);
}
}
.media-slider-preview:where(.media-skin--minimal, .media-skin--minimal *) {
--media-preview-end-inset: calc(100cqi - 100%);
--media-preview-left: clamp(
calc(var(--media-slider-preview-max-width) / 2),
var(--media-slider-pointer),
calc(100% - var(--media-slider-preview-max-width) / 2 + var(--media-preview-end-inset))
);
--media-slider-preview-max-width: min(calc(var(--media-spacing) * 28), 100cqi);
min-width: 100%;
}
.media-slider-preview:where(.media-skin--minimal, .media-skin--minimal *):before {
content: "";
background-color: currentColor;
}
@supports (color: color-mix(in lab, red, red)) {
.media-slider-preview:where(.media-skin--minimal, .media-skin--minimal *):before {
background-color: color-mix(in oklab, currentcolor 35%, transparent);
}
}
.media-slider-preview:where(.media-skin--minimal, .media-skin--minimal *)[data-orientation="horizontal"]:before {
top: 50%;
left: var(--media-slider-pointer);
height: calc(var(--media-spacing) * 5);
content: "";
width: 1px;
}
.media-slider-preview:where(.media-skin--minimal, .media-skin--minimal *)[data-orientation="vertical"]:before {
top: calc(100% - var(--media-slider-pointer));
content: "";
height: 1px;
width: calc(var(--media-spacing) * 5);
left: 50%;
}
@container media-root (width >= 32rem) {
.media-slider-preview:where(.media-skin--minimal, .media-skin--minimal *) {
--media-slider-preview-max-width: min(calc(var(--media-spacing) * 36), 100cqi);
}
}
@container media-root (width >= 42rem) {
.media-slider-preview:where(.media-skin--minimal, .media-skin--minimal *) {
--media-preview-left: var(--media-slider-pointer);
--media-slider-preview-max-width: min(calc(var(--media-spacing) * 48), 100cqi);
}
}
.media-slider-thumbnail {
pointer-events: none;
max-width: var(--media-slider-preview-max-width);
transform-origin: bottom;
translate: -50% calc(var(--media-spacing) * 2);
background-color: var(--media-popover);
color: var(--media-popover-foreground);
opacity: 0;
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 0 calc(1px + 0px) var(--media-border),
0 0 #0000;
box-shadow: var(--media-shadow-sm);
filter: blur(8px);
backdrop-filter: blur(16px) saturate(150%);
position: absolute;
overflow: hidden;
scale: 0.8;
}
:where(.media-slider):has(:focus-visible) .media-slider-thumbnail,
:where(.media-slider-preview)[data-pointing] .media-slider-thumbnail {
opacity: 1;
filter: none;
scale: 1;
}
.media-slider-thumbnail:after {
pointer-events: none;
inset: calc(var(--media-spacing) * 0);
z-index: 10;
border-radius: inherit;
content: "";
position: absolute;
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 #0000,
inset 0 1px #ffffff1a,
inset 0 0 0 1px #ffffff0d;
}
.media-slider-thumbnail:has([data-loading]) {
aspect-ratio: 16 / 9;
width: var(--media-slider-preview-max-width);
}
@media (prefers-reduced-motion: no-preference) {
.media-slider-thumbnail {
transition-property: filter, opacity, scale;
transition-duration: 0.15s;
transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
}
}
@media (prefers-contrast: more) {
.media-slider-thumbnail {
background-color: var(--media-background);
backdrop-filter: none;
}
.media-slider-thumbnail:after {
content: "";
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 #0000,
inset 0 1px #ffffff40,
inset 0 0 0 1px #ffffff20;
}
}
@media (forced-colors: active) {
.media-slider-thumbnail {
color: canvastext;
background-color: canvas;
}
.media-slider-thumbnail:after {
content: "";
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 #0000,
inset 0 1px canvastext,
inset 0 0 0 1px canvastext;
}
}
.media-slider-thumbnail:where(.media-skin:not(.media-skin--minimal), .media-skin:not(.media-skin--minimal) *) {
bottom: calc(100% + calc(var(--media-spacing) * 9));
background-color: oklab(0% none none / 0.9);
border-radius: 0.75rem;
left: 50%;
}
.media-slider-thumbnail:where(.media-skin--minimal, .media-skin--minimal *) {
bottom: calc(100% + calc(var(--media-spacing) * 14));
left: var(--media-preview-left, var(--media-slider-pointer));
background-color: oklab(0% none none / 0.9);
border-radius: 0.5rem;
}
.media-slider-thumbnail:where(.media-skin--minimal, .media-skin--minimal *):after {
content: "";
display: none;
}
@media (prefers-reduced-transparency: reduce) {
.media-slider-thumbnail {
background-color: var(--media-background);
backdrop-filter: none;
}
.media-slider-thumbnail:after {
content: "";
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 #0000,
inset 0 1px #ffffff40,
inset 0 0 0 1px #ffffff20;
}
}
.media-slider-thumbnail-image {
max-height: var(--media-slider-preview-max-height);
max-width: var(--media-slider-preview-max-width);
border-radius: inherit;
transition-property: opacity;
transition-duration: 0.15s;
transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
display: block;
position: relative;
overflow: clip;
}
.media-slider-thumbnail-image[data-loading] {
opacity: 0;
}
@media (prefers-reduced-motion: reduce) {
.media-slider-thumbnail-image {
transition-duration: 50ms;
}
}
.media-slider-thumbnail-spinner-icon {
width: var(--media-icon-size, calc(var(--media-spacing) * 4.5));
height: var(--media-icon-size, calc(var(--media-spacing) * 4.5));
opacity: 0;
filter: drop-shadow(0 1px 0 var(--media-shadow-current-color));
transition-property: opacity;
transition-duration: 0.15s;
transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
position: absolute;
top: 50%;
left: 50%;
translate: -50% -50%;
}
@scope (.media-slider-thumbnail) {
&:not(:has([role="img"][data-loading])) .media-slider-thumbnail-spinner-icon {
--media-spinner-animation: none;
}
}
@scope (.media-slider-thumbnail) {
&:has([role="img"][data-loading]) .media-slider-thumbnail-spinner-icon {
opacity: 1;
}
}
@media (prefers-reduced-motion: reduce) {
.media-slider-thumbnail-spinner-icon {
--media-spinner-animation: none;
}
}
.media-time-slider-chapter {
inset: calc(var(--media-spacing) * 0);
min-height: calc(var(--media-spacing) * 0);
min-width: calc(var(--media-spacing) * 0);
--media-chapter-inset-end: 0.5;
--media-chapter-inset-start: 0.5;
justify-content: center;
align-items: center;
display: flex;
position: absolute;
}
.media-time-slider-chapter:first-child {
--media-chapter-inset-start: 0;
}
.media-time-slider-chapter:last-child {
--media-chapter-inset-end: 0;
}
.media-time-slider-chapter[data-orientation="horizontal"] {
clip-path: inset(0 calc(100% - var(--media-slider-chapter-end)) 0 var(--media-slider-chapter-start));
}
.media-time-slider-chapter[data-orientation="vertical"] {
clip-path: inset(calc(100% - var(--media-slider-chapter-end)) 0 var(--media-slider-chapter-start) 0);
}
.media-time-slider-chapter-title {
max-width: var(--media-slider-preview-max-width);
min-width: calc(var(--media-spacing) * 0);
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
}
.media-time-slider-chapter-title:empty {
display: none;
}
.media-time-slider-chapter-title:where(
.media-skin:not(.media-skin--minimal),
.media-skin:not(.media-skin--minimal) *
) {
padding-inline: calc(var(--media-spacing) * 6);
}
.media-time-slider-chapter-track[data-orientation="horizontal"] {
clip-path: inset(
0 calc(100% - var(--media-slider-chapter-end) + var(--media-spacing) * var(--media-chapter-inset-end)) 0
calc(var(--media-slider-chapter-start) + var(--media-spacing) * var(--media-chapter-inset-start)) round
var(--media-control-radius)
);
}
@scope (.media-time-slider-chapter) {
&[data-highlighted] .media-time-slider-chapter-track[data-orientation="horizontal"] {
height: calc(var(--media-spacing) * 1.75);
}
}
.media-time-slider-chapter-track[data-orientation="vertical"] {
clip-path: inset(
calc(100% - var(--media-slider-chapter-end) + var(--media-spacing) * var(--media-chapter-inset-end)) 0
calc(var(--media-slider-chapter-start) + var(--media-spacing) * var(--media-chapter-inset-start)) 0 round
var(--media-control-radius)
);
}
@scope (.media-time-slider-chapter) {
&[data-highlighted] .media-time-slider-chapter-track[data-orientation="vertical"] {
width: calc(var(--media-spacing) * 1.75);
}
}
@media (prefers-reduced-motion: no-preference) {
.media-time-slider-chapter-track {
transition-property: height, width;
transition-duration: 0.2s;
transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
}
}
.media-time-slider-chapters {
width: 100%;
height: 100%;
min-height: calc(var(--media-spacing) * 0);
min-width: calc(var(--media-spacing) * 0);
border-radius: inherit;
flex: 1;
align-items: center;
display: flex;
position: relative;
}
.media-time-slider-preview-content {
max-width: var(--media-slider-preview-max-width);
transform-origin: bottom;
translate: -50% calc(var(--media-spacing) * 2);
font-variant-numeric: tabular-nums;
opacity: 0;
filter: blur(8px);
display: flex;
position: absolute;
scale: 0.8;
}
:where(.media-slider):has(:focus-visible) .media-time-slider-preview-content,
:where(.media-slider-preview)[data-pointing] .media-time-slider-preview-content {
opacity: 1;
filter: none;
scale: 1;
}
@media (prefers-reduced-motion: no-preference) {
.media-time-slider-preview-content {
transition-property: filter, opacity, scale;
transition-duration: 0.15s;
transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
}
}
.media-time-slider-preview-content:where(
.media-skin:not(.media-skin--minimal),
.media-skin:not(.media-skin--minimal) *
) {
bottom: calc(100% + calc(var(--media-spacing) * 12.5));
flex-direction: column;
align-items: center;
left: 50%;
}
.media-time-slider-preview-content:where(.media-skin--minimal, .media-skin--minimal *) {
bottom: calc(100% + calc(var(--media-spacing) * 7));
left: var(--media-preview-left, var(--media-slider-pointer));
justify-content: center;
gap: calc(var(--media-spacing) * 2);
padding-inline: calc(var(--media-spacing) * 3);
flex-direction: row-reverse;
}
.media-time-slider-thumb {
width: calc(var(--media-spacing) * 3);
height: calc(var(--media-spacing) * 3);
opacity: 0;
}
.media-time-slider-thumb:focus-visible,
.media-time-slider-thumb[data-interactive] {
opacity: 1;
}
@media (pointer: fine) {
@media (hover: hover) {
@scope (.media-slider) {
&:hover .media-time-slider-thumb {
opacity: 1;
scale: 1;
}
}
}
}
.media-time-slider-thumb:where(.media-skin:not(.media-skin--minimal), .media-skin:not(.media-skin--minimal) *) {
outline-offset: -4px;
outline: 4px solid #0000;
scale: 0.8;
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 0 1px #0000001a,
0 1px 3px #00000059,
0 1px 2px -1px #00000059;
}
.media-time-slider-thumb:where(
.media-skin:not(.media-skin--minimal),
.media-skin:not(.media-skin--minimal) *
):after {
pointer-events: none;
inset: calc(var(--media-spacing) * -1);
border-radius: inherit;
opacity: 0;
content: "";
position: absolute;
scale: 0.5;
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 0 2px;
}
@media (hover: hover) {
.media-time-slider-thumb:where(
.media-skin:not(.media-skin--minimal),
.media-skin:not(.media-skin--minimal) *
):hover {
outline-offset: 0px;
outline-color: currentColor;
}
@supports (color: color-mix(in lab, red, red)) {
.media-time-slider-thumb:where(
.media-skin:not(.media-skin--minimal),
.media-skin:not(.media-skin--minimal) *
):hover {
outline-color: color-mix(in oklab, currentcolor 15%, transparent);
}
}
}
.media-time-slider-thumb:where(
.media-skin:not(.media-skin--minimal),
.media-skin:not(.media-skin--minimal) *
):focus-visible {
outline-offset: 0px;
outline-color: currentColor;
}
@supports (color: color-mix(in lab, red, red)) {
.media-time-slider-thumb:where(
.media-skin:not(.media-skin--minimal),
.media-skin:not(.media-skin--minimal) *
):focus-visible {
outline-color: color-mix(in oklab, currentcolor 15%, transparent);
}
}
.media-time-slider-thumb:where(
.media-skin:not(.media-skin--minimal),
.media-skin:not(.media-skin--minimal) *
):focus-visible:after {
content: "";
opacity: 1;
scale: 1;
}
@media (prefers-reduced-motion: no-preference) {
.media-time-slider-thumb:where(
.media-skin:not(.media-skin--minimal),
.media-skin:not(.media-skin--minimal) *
):after {
content: "";
transition-property: opacity, scale;
transition-duration: 0.15s;
transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
}
}
.media-time-slider-thumb:where(.media-skin--minimal, .media-skin--minimal *) {
outline-offset: -2px;
outline: 2px solid #0000;
scale: 0.7;
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 0 1px #00000026,
0 1px 3px #00000026,
0 1px 2px -1px #00000026;
}
.media-time-slider-thumb:where(.media-skin--minimal, .media-skin--minimal *):focus-visible {
outline-offset: 2px;
outline-color: #fff;
}
.media-time-slider-thumb:where(.media-skin--minimal, .media-skin--minimal *)[data-interactive] {
scale: 1;
}
.media-time-slider-value {
font-variant-numeric: tabular-nums;
}
}
@scope (.media-skin--minimal.media-skin--video) {
.media-controls {
inset-inline: calc(var(--media-spacing) * 1);
bottom: calc(var(--media-spacing) * 1);
z-index: 20;
align-items: center;
column-gap: calc(var(--media-spacing) * 2);
padding: calc(var(--media-spacing) * 1);
color: #fff;
transition-property: filter, opacity, translate;
transition-duration: calc(var(--media-controls-transition-duration) / 2);
--media-popover-boundary-offset: calc(var(--media-spacing) * 2);
--media-popover-side-offset: calc(var(--media-spacing) * 5);
--media-tooltip-boundary-offset: var(--media-popover-boundary-offset);
--media-tooltip-side-offset: var(--media-popover-side-offset);
text-shadow: 0 1px 0 var(--media-shadow-current-color);
background-color: #0000;
border-radius: 0.75rem;
flex-wrap: wrap;
transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
display: flex;
position: absolute;
}
.media-controls:not([data-visible]) {
pointer-events: none;
opacity: 0;
transition-duration: var(--media-controls-transition-duration);
}
@media (prefers-reduced-motion: no-preference) {
.media-controls:not([data-visible]) {
translate: 0 100%;
}
}
@media (prefers-contrast: more) {
.media-controls {
background-color: #000;
}
}
@container media-root (width >= 42rem) {
.media-controls {
inset-inline: calc(var(--media-spacing) * 2);
bottom: calc(var(--media-spacing) * 2);
--media-popover-side-offset: calc(var(--media-spacing) * 3);
flex-wrap: nowrap;
}
}
@media (pointer: fine) {
@media (prefers-reduced-motion: no-preference) {
.media-controls:not([data-visible]) {
filter: blur(8px);
}
}
}
@media (prefers-reduced-transparency: reduce) {
.media-controls {
background-color: #000;
}
}
.media-controls__backdrop {
pointer-events: none;
inset: calc(var(--media-spacing) * 0);
z-index: 10;
border-radius: inherit;
background-image: linear-gradient(
to top,
oklab(0% none none / 0.7) 0%,
oklab(0% none none / 0.5) calc(var(--media-spacing) * 30),
transparent 100%
);
transition-property: opacity;
transition-duration: var(--media-controls-transition-duration);
transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
position: absolute;
}
.media-controls__backdrop:not([data-visible]) {
opacity: 0;
}
.media-controls-end {
flex: 1;
justify-content: flex-end;
align-items: center;
gap: 1px;
display: flex;
}
@container media-root (width < 42rem) {
.media-controls-end {
transition: mask-position 50ms ease-out;
mask-position: 100% 0;
mask-size: 400% 100%;
mask-repeat: no-repeat;
}
@scope (.media-controls) {
&:has([data-volume-level][aria-expanded="true"]) .media-controls-end {
mask-image: linear-gradient(to right, #0000 10%, #000 25% 100%);
mask-position: 0 0;
}
}
}
@container media-root (width >= 42rem) {
.media-controls-end {
flex: none;
}
}
.media-controls-start {
flex: 1;
align-items: center;
gap: 1px;
display: flex;
}
@container media-root (width >= 42rem) {
.media-controls-start {
flex: none;
}
}
.media-controls-trailing {
align-items: center;
gap: 1px;
display: flex;
}
.media-time-current-value {
cursor: pointer;
font-variant-numeric: tabular-nums;
outline-offset: -2px;
border-radius: 0.25rem;
outline: 2px solid #0000;
transition-property: outline-color, outline-offset;
transition-duration: 0.1s;
transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
display: none;
}
.media-time-current-value:focus-visible {
outline-offset: 2px;
outline-color: #fff;
}
@supports (corner-shape: squircle) {
.media-time-current-value {
corner-shape: squircle;
border-radius: 1rem;
}
}
@container media-root (width >= 42rem) {
.media-time-current-value {
display: inline;
}
}
.media-time-duration-value {
font-variant-numeric: tabular-nums;
}
@container media-root (width >= 42rem) {
.media-time-duration-value {
color: currentColor;
}
@supports (color: color-mix(in lab, red, red)) {
.media-time-duration-value {
color: color-mix(in oklab, currentcolor 60%, transparent);
}
}
}
.media-time-group {
align-items: center;
gap: calc(var(--media-spacing) * 1);
display: flex;
}
.media-time-separator {
display: none;
}
@container media-root (width >= 42rem) {
.media-time-separator {
color: currentColor;
display: inline;
}
@supports (color: color-mix(in lab, red, red)) {
.media-time-separator {
color: color-mix(in oklab, currentcolor 60%, transparent);
}
}
}
.media-time-slider-group {
align-items: center;
gap: calc(var(--media-spacing) * 3);
padding-inline: calc(var(--media-spacing) * 1.5);
--media-slider-height: calc(var(--media-spacing) * 5);
flex-direction: row-reverse;
flex: 0 0 100%;
order: -1;
display: flex;
container: media-time-controls / inline-size;
}
@container media-root (width >= 42rem) {
.media-time-slider-group {
min-width: calc(var(--media-spacing) * 0);
--media-slider-height: calc(var(--media-spacing) * 8);
flex-direction: row;
flex: 1;
order: 0;
transition: mask-position 50ms ease-out;
mask-position: 100% 0;
mask-size: 200% 100%;
mask-repeat: no-repeat;
}
@scope (.media-controls) {
&:has([data-volume-level][aria-expanded="true"]) .media-time-slider-group {
mask-image: linear-gradient(to right, #0000 10%, #000 25% 100%);
mask-position: 0 0;
}
}
}
}
@scope (.media-skin--minimal.media-skin--video) {
@media (hover: hover) {
}
@supports (top: anchor(top)) {
@media (hover: hover) {
}
}
@media (prefers-reduced-motion: reduce) {
}
.media-menu-badge {
border-radius: var(--media-control-radius);
background-color: var(--media-accent);
padding-inline: calc(var(--media-spacing) * 1.5);
font-size: 0.7em;
font-weight: 600;
}
@supports (top: anchor(top)) {
}
@supports (color: color-mix(in lab, red, red)) {
}
@supports (top: anchor(top)) {
}
@media (prefers-contrast: more) {
}
@media (forced-colors: active) {
}
@media (prefers-reduced-transparency: reduce) {
}
.media-menu-tier {
color: currentColor;
padding-inline-start: calc(var(--media-spacing) * 0.5);
padding-top: 1px;
font-size: 0.7em;
font-weight: 600;
line-height: 1;
}
@supports (color: color-mix(in lab, red, red)) {
.media-menu-tier {
color: color-mix(in oklab, currentcolor 70%, transparent);
}
}
@media (hover: hover) {
}
@supports (top: anchor(top)) {
@media (hover: hover) {
}
}
@media (prefers-reduced-motion: reduce) {
}
@media (hover: hover) {
@scope (.media-menu-trigger-item) {
}
}
@scope (.media-menu-trigger-item) {
}
}
@scope (.media-skin--minimal.media-skin--video) {
@supports (top: anchor(top)) {
}
.media-menu-popup {
margin: calc(var(--media-spacing) * 0);
height: var(--media-menu-height);
max-height: min(
var(--media-menu-available-height, calc(var(--media-spacing) * 56)),
calc(var(--media-spacing) * 56)
);
width: var(--media-menu-width);
max-width: var(--media-menu-available-width);
min-width: calc(var(--media-spacing) * 44);
overscroll-behavior: none;
background-color: var(--media-popover);
padding: calc(var(--media-spacing) * 1);
color: var(--media-popover-foreground);
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 0 calc(1px + 0px) var(--media-border),
0 0 #0000;
box-shadow: var(--media-shadow-sm);
backdrop-filter: blur(16px) saturate(150%);
border-style: solid;
border-width: 0;
transition-property: opacity, filter, transform, scale, width, height;
transition-duration: 0.1s, 0.1s, 0.1s, 0.1s, 0.25s, 0.25s;
transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
overflow: visible;
overflow: hidden !important;
}
.media-menu-popup:before {
pointer-events: auto;
content: "";
position: absolute;
}
.media-menu-popup:after {
pointer-events: none;
inset: calc(var(--media-spacing) * 0);
z-index: 10;
border-radius: inherit;
content: "";
position: absolute;
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 #0000,
inset 0 1px #ffffff1a,
inset 0 0 0 1px #ffffff0d;
}
.media-menu-popup[data-ending-style] {
opacity: 0;
filter: blur(4px);
transition-property: opacity, filter, transform, scale;
transition-duration: 0.1s;
transform: none;
}
.media-menu-popup[data-starting-style] {
transform: translate(var(--media-popup-translate-x-distance, 0), var(--media-popup-translate-y-distance, 0));
opacity: 0;
filter: blur(4px);
transition-property: opacity, filter, transform, scale;
transition-duration: 0.1s;
}
.media-menu-popup[data-side="bottom"] {
transform-origin: top;
--media-popup-translate-y-distance: calc(var(--media-popup-translate-distance) * -1);
}
.media-menu-popup[data-side="bottom"]:before {
inset-inline: calc(var(--media-spacing) * 0);
content: "";
height: var(--media-popover-side-offset);
bottom: 100%;
}
.media-menu-popup[data-side="left"] {
transform-origin: 100%;
--media-popup-translate-x-distance: var(--media-popup-translate-distance);
}
.media-menu-popup[data-side="left"]:before {
inset-block: calc(var(--media-spacing) * 0);
content: "";
width: var(--media-popover-side-offset);
left: 100%;
}
.media-menu-popup[data-side="right"] {
transform-origin: 0;
--media-popup-translate-x-distance: calc(var(--media-popup-translate-distance) * -1);
}
.media-menu-popup[data-side="right"]:before {
inset-block: calc(var(--media-spacing) * 0);
content: "";
width: var(--media-popover-side-offset);
right: 100%;
}
.media-menu-popup[data-side="top"] {
transform-origin: bottom;
--media-popup-translate-y-distance: var(--media-popup-translate-distance);
}
.media-menu-popup[data-side="top"]:before {
inset-inline: calc(var(--media-spacing) * 0);
content: "";
height: var(--media-popover-side-offset);
top: 100%;
}
@media (prefers-reduced-motion: reduce) {
.media-menu-popup {
--media-menu-transition-duration: 0s;
transition-duration: 0s !important;
}
.media-menu-popup[data-ending-style],
.media-menu-popup[data-starting-style] {
filter: none !important;
transform: none !important;
}
}
@media (prefers-contrast: more) {
.media-menu-popup {
background-color: var(--media-background);
backdrop-filter: none;
}
.media-menu-popup:after {
content: "";
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 #0000,
inset 0 1px #ffffff40,
inset 0 0 0 1px #ffffff20;
}
}
@media (forced-colors: active) {
.media-menu-popup {
color: canvastext;
background-color: canvas;
}
.media-menu-popup:after {
content: "";
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 #0000,
inset 0 1px canvastext,
inset 0 0 0 1px canvastext;
}
}
.media-menu-popup:where(.media-skin:not(.media-skin--minimal), .media-skin:not(.media-skin--minimal) *) {
border-radius: calc(var(--media-spacing) * 3);
}
.media-menu-popup:where(.media-skin--minimal, .media-skin--minimal *) {
border-radius: calc(var(--media-spacing) * 2.5);
}
.media-menu-popup:where(.media-skin--minimal, .media-skin--minimal *):after {
content: "";
display: none;
}
.media-menu-popup:where(.media-skin--minimal, .media-skin--minimal *)[data-starting-style] {
filter: none;
}
.media-menu-popup:is([data-starting-style], [data-ending-style]) {
scale: 0.95;
}
@media (prefers-reduced-motion: reduce) {
.media-menu-popup:is([data-starting-style], [data-ending-style]) {
scale: 1 !important;
}
}
@media (prefers-reduced-transparency: reduce) {
.media-menu-popup {
background-color: var(--media-background);
backdrop-filter: none;
}
.media-menu-popup:after {
content: "";
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 #0000,
inset 0 1px #ffffff40,
inset 0 0 0 1px #ffffff20;
}
}
.media-settings-menu-trigger-icon {
transition-property: transform, translate, scale, rotate;
transition-duration: 0.15s;
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
}
@scope (.media-settings-menu-trigger) {
&[aria-expanded="true"] .media-settings-menu-trigger-icon {
rotate: 90deg;
}
}
@media (prefers-reduced-motion: reduce) {
.media-settings-menu-trigger-icon {
transition-property: none !important;
transition-duration: 0s !important;
}
}
.media-settings-menu-trigger-label {
clip-path: inset(50%);
white-space: nowrap;
border-width: 0;
width: 1px;
height: 1px;
margin: -1px;
padding: 0;
position: absolute;
overflow: hidden;
}
}
@scope (.media-skin--minimal.media-skin--video) {
.media-volume-slider-thumb {
width: calc(var(--media-spacing) * 3);
height: calc(var(--media-spacing) * 3);
opacity: 1;
scale: 1;
}
.media-volume-slider-thumb:where(.media-skin:not(.media-skin--minimal), .media-skin:not(.media-skin--minimal) *) {
outline-offset: -4px;
outline: 4px solid #0000;
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 0 1px #0000001a,
0 1px 3px #00000059,
0 1px 2px -1px #00000059;
}
.media-volume-slider-thumb:where(
.media-skin:not(.media-skin--minimal),
.media-skin:not(.media-skin--minimal) *
):after {
pointer-events: none;
inset: calc(var(--media-spacing) * -1);
border-radius: inherit;
opacity: 0;
content: "";
position: absolute;
scale: 0.5;
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 0 2px;
}
@media (hover: hover) {
.media-volume-slider-thumb:where(
.media-skin:not(.media-skin--minimal),
.media-skin:not(.media-skin--minimal) *
):hover {
outline-offset: 0px;
outline-color: currentColor;
}
@supports (color: color-mix(in lab, red, red)) {
.media-volume-slider-thumb:where(
.media-skin:not(.media-skin--minimal),
.media-skin:not(.media-skin--minimal) *
):hover {
outline-color: color-mix(in oklab, currentcolor 15%, transparent);
}
}
}
.media-volume-slider-thumb:where(
.media-skin:not(.media-skin--minimal),
.media-skin:not(.media-skin--minimal) *
):focus-visible {
outline-offset: 0px;
outline-color: currentColor;
}
@supports (color: color-mix(in lab, red, red)) {
.media-volume-slider-thumb:where(
.media-skin:not(.media-skin--minimal),
.media-skin:not(.media-skin--minimal) *
):focus-visible {
outline-color: color-mix(in oklab, currentcolor 15%, transparent);
}
}
.media-volume-slider-thumb:where(
.media-skin:not(.media-skin--minimal),
.media-skin:not(.media-skin--minimal) *
):focus-visible:after {
content: "";
opacity: 1;
scale: 1;
}
@media (prefers-reduced-motion: no-preference) {
.media-volume-slider-thumb:where(
.media-skin:not(.media-skin--minimal),
.media-skin:not(.media-skin--minimal) *
):after {
content: "";
transition-property: opacity, scale;
transition-duration: 0.15s;
transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
}
}
.media-volume-slider-thumb:where(.media-skin--minimal, .media-skin--minimal *) {
outline-offset: -2px;
outline: 2px solid #0000;
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 0 1px #00000026,
0 1px 3px #00000026,
0 1px 2px -1px #00000026;
}
.media-volume-slider-thumb:where(.media-skin--minimal, .media-skin--minimal *):focus-visible {
outline-offset: 2px;
outline-color: #fff;
}
}
@scope (.media-skin--minimal.media-skin--video) {
@media (prefers-reduced-motion: reduce) {
}
.media-pip-button-enter-icon {
opacity: 0;
}
@scope (.media-pip-button) {
&:not([data-pip]) .media-pip-button-enter-icon {
opacity: 1;
scale: 1;
}
}
.media-pip-button-exit-icon {
opacity: 0;
}
@scope (.media-pip-button) {
&[data-pip] .media-pip-button-exit-icon {
opacity: 1;
scale: 1;
}
}
}
@scope (.media-skin--minimal.media-skin--video) {
@media (prefers-reduced-motion: reduce) {
}
}
@scope (.media-skin--minimal.media-skin--video) {
.media-airplay-button:not([data-airplay-state="connected"]) {
--media-icon-airplay-fill-animation: none;
--media-icon-airplay-triangle-animation: none;
}
@media (prefers-reduced-motion: reduce) {
.media-airplay-button {
--media-icon-airplay-fill-animation: none;
--media-icon-airplay-triangle-animation: none;
}
}
.media-airplay-button-enter-icon {
opacity: 0;
}
@scope (.media-airplay-button) {
&:not([data-airplay-state="connected"]) .media-airplay-button-enter-icon {
opacity: 1;
scale: 1;
}
}
.media-airplay-button-exit-icon {
opacity: 0;
}
@scope (.media-airplay-button) {
&[data-airplay-state="connected"] .media-airplay-button-exit-icon {
opacity: 1;
scale: 1;
}
}
@media (prefers-reduced-motion: reduce) {
}
}
@scope (.media-skin--minimal.media-skin--video) {
.media-volume-popover {
margin: calc(var(--media-spacing) * 0);
border-radius: var(--media-control-radius);
background-color: var(--media-popover);
padding-inline: calc(var(--media-spacing) * 0);
padding-block: calc(var(--media-spacing) * 3);
color: var(--media-popover-foreground);
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 0 calc(1px + 0px) var(--media-border),
0 0 #0000;
box-shadow: var(--media-shadow-sm);
backdrop-filter: blur(16px) saturate(150%);
border-style: solid;
border-width: 0;
transition-property: opacity, filter, transform, scale;
transition-duration: 0.1s;
transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
overflow: visible;
}
.media-volume-popover:before {
pointer-events: auto;
content: "";
position: absolute;
}
.media-volume-popover:after {
pointer-events: none;
inset: calc(var(--media-spacing) * 0);
z-index: 10;
border-radius: inherit;
content: "";
position: absolute;
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 #0000,
inset 0 1px #ffffff1a,
inset 0 0 0 1px #ffffff0d;
}
.media-volume-popover[data-ending-style] {
opacity: 0;
filter: blur(4px);
transition-duration: 50ms;
transform: none;
}
.media-volume-popover[data-starting-style] {
transform: translate(var(--media-popup-translate-x-distance, 0), var(--media-popup-translate-y-distance, 0));
opacity: 0;
filter: blur(4px);
}
.media-volume-popover[data-side="bottom"] {
transform-origin: top;
--media-popup-translate-y-distance: calc(var(--media-popup-translate-distance) * -1);
}
.media-volume-popover[data-side="bottom"]:before {
inset-inline: calc(var(--media-spacing) * 0);
content: "";
height: var(--media-popover-side-offset);
bottom: 100%;
}
.media-volume-popover[data-side="left"] {
transform-origin: 100%;
--media-popup-translate-x-distance: var(--media-popup-translate-distance);
}
.media-volume-popover[data-side="left"]:before {
inset-block: calc(var(--media-spacing) * 0);
content: "";
width: var(--media-popover-side-offset);
left: 100%;
}
.media-volume-popover[data-side="right"] {
transform-origin: 0;
padding: calc(var(--media-spacing) * 0);
padding-inline: calc(var(--media-spacing) * 3);
backdrop-filter: none;
--media-popover-side-offset: 0rem;
--media-popup-translate-x-distance: calc(var(--media-popup-translate-distance) * -1);
background-color: #0000;
border-radius: 0;
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0,
0 0 #0000 !important;
}
.media-volume-popover[data-side="right"]:before {
inset-block: calc(var(--media-spacing) * 0);
content: "";
width: var(--media-popover-side-offset);
right: 100%;
}
.media-volume-popover[data-side="right"]:after {
content: "";
display: none;
}
.media-volume-popover[data-side="top"] {
transform-origin: bottom;
--media-popup-translate-y-distance: var(--media-popup-translate-distance);
}
.media-volume-popover[data-side="top"]:before {
inset-inline: calc(var(--media-spacing) * 0);
content: "";
height: var(--media-popover-side-offset);
top: 100%;
}
@media (prefers-reduced-motion: reduce) {
.media-volume-popover {
transition-duration: 0s !important;
}
.media-volume-popover[data-ending-style] {
filter: none !important;
transition-duration: 0s !important;
transform: none !important;
}
.media-volume-popover[data-starting-style] {
filter: none !important;
transform: none !important;
}
}
@media (prefers-contrast: more) {
.media-volume-popover {
background-color: var(--media-background);
backdrop-filter: none;
}
.media-volume-popover:after {
content: "";
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 #0000,
inset 0 1px #ffffff40,
inset 0 0 0 1px #ffffff20;
}
}
@media (forced-colors: active) {
.media-volume-popover {
color: canvastext;
background-color: canvas;
}
.media-volume-popover:after {
content: "";
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 #0000,
inset 0 1px canvastext,
inset 0 0 0 1px canvastext;
}
}
.media-volume-popover:where(.media-skin--minimal, .media-skin--minimal *):after {
content: "";
display: none;
}
.media-volume-popover:where(.media-skin--minimal, .media-skin--minimal *)[data-starting-style] {
filter: none;
}
.media-volume-popover:is([data-starting-style], [data-ending-style]) {
scale: 0.95;
}
@media (prefers-reduced-motion: reduce) {
.media-volume-popover:is([data-starting-style], [data-ending-style]) {
scale: 1 !important;
}
}
@media (prefers-reduced-transparency: reduce) {
.media-volume-popover {
background-color: var(--media-background);
backdrop-filter: none;
}
.media-volume-popover:after {
content: "";
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 #0000,
inset 0 1px #ffffff40,
inset 0 0 0 1px #ffffff20;
}
}
}
@scope (.media-skin--minimal.media-skin--video) {
.media-button {
width: var(--media-control-size);
height: var(--media-control-size);
min-height: calc(var(--media-spacing) * 0);
cursor: pointer;
touch-action: manipulation;
border-radius: var(--media-control-radius);
padding: calc(var(--media-spacing) * 0);
text-align: center;
color: inherit;
outline-offset: -2px;
will-change: scale;
-webkit-user-select: none;
user-select: none;
corner-shape: var(--media-control-corner-shape);
text-shadow: inherit;
background-color: #0000;
border-style: solid;
border-width: 0;
outline: 2px solid #0000;
flex-shrink: 0;
place-items: center;
transition-property: background-color, color, outline-offset, scale;
transition-duration: 0.15s;
transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
display: grid;
}
@media (hover: hover) {
.media-button:not([aria-disabled="true"]):hover {
background-color: var(--media-accent);
color: var(--media-accent-foreground);
}
}
.media-button:focus-visible {
outline-offset: 2px;
outline-color: var(--media-focus-ring-color, white);
}
.media-button:not([aria-disabled="true"]):focus-visible {
background-color: var(--media-accent);
color: var(--media-accent-foreground);
}
.media-button:not([aria-disabled="true"]):active {
scale: 0.97;
}
.media-button[aria-disabled="true"] {
cursor: not-allowed;
opacity: 0.5;
}
.media-button:not([aria-disabled="true"])[aria-expanded="true"] {
background-color: var(--media-accent);
color: var(--media-accent-foreground);
}
@media (prefers-reduced-motion: reduce) {
.media-button {
will-change: auto;
transition-property: background-color, color;
scale: 1;
}
}
}
@scope (.media-skin--minimal.media-skin--video) {
.media-volume-indicator {
pointer-events: none;
transform-origin: top;
color: inherit;
position: absolute;
}
.media-volume-indicator[data-ending-style],
.media-volume-indicator[data-starting-style] {
opacity: 0;
}
.media-volume-indicator:where(.media-skin:not(.media-skin--minimal), .media-skin:not(.media-skin--minimal) *) {
top: calc(var(--media-spacing) * 3);
background-color: oklab(0% none none / 0.25);
background-color: var(--media-popover);
width: min(80%, 12rem);
color: var(--media-popover-foreground);
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 0 calc(1px + 0px) var(--media-border),
0 0 #0000;
box-shadow: var(--media-shadow-sm);
backdrop-filter: blur(16px) saturate(150%);
border-radius: 9999px;
font-weight: 500;
transition-duration: 0.1s;
transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
transform: translateX(0);
}
.media-volume-indicator:where(
.media-skin:not(.media-skin--minimal),
.media-skin:not(.media-skin--minimal) *
):after {
pointer-events: none;
inset: calc(var(--media-spacing) * 0);
z-index: 10;
border-radius: inherit;
content: "";
position: absolute;
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 #0000,
inset 0 1px #ffffff1a,
inset 0 0 0 1px #ffffff0d;
}
.media-volume-indicator:where(
.media-skin:not(.media-skin--minimal),
.media-skin:not(.media-skin--minimal) *
)[data-ending-style],
.media-volume-indicator:where(
.media-skin:not(.media-skin--minimal),
.media-skin:not(.media-skin--minimal) *
)[data-starting-style] {
transition-duration: 0.25s;
transition-timing-function: cubic-bezier(0.4, 0, 1, 1);
}
@media (prefers-reduced-motion: no-preference) {
.media-volume-indicator:where(
.media-skin:not(.media-skin--minimal),
.media-skin:not(.media-skin--minimal) *
)[data-ending-style] {
translate: 0 -25%;
}
}
@media (prefers-contrast: more) {
.media-volume-indicator:where(.media-skin:not(.media-skin--minimal), .media-skin:not(.media-skin--minimal) *) {
background-color: var(--media-background);
backdrop-filter: none;
}
.media-volume-indicator:where(
.media-skin:not(.media-skin--minimal),
.media-skin:not(.media-skin--minimal) *
):after {
content: "";
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 #0000,
inset 0 1px #ffffff40,
inset 0 0 0 1px #ffffff20;
}
}
@media (forced-colors: active) {
.media-volume-indicator:where(.media-skin:not(.media-skin--minimal), .media-skin:not(.media-skin--minimal) *) {
color: canvastext;
background-color: canvas;
}
.media-volume-indicator:where(
.media-skin:not(.media-skin--minimal),
.media-skin:not(.media-skin--minimal) *
):after {
content: "";
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 #0000,
inset 0 1px canvastext,
inset 0 0 0 1px canvastext;
}
}
@media (pointer: coarse) {
.media-volume-indicator:where(.media-skin:not(.media-skin--minimal), .media-skin:not(.media-skin--minimal) *) {
will-change: scale, translate, opacity;
transition-property: scale, translate, opacity;
}
}
@media (pointer: fine) {
@media (prefers-reduced-motion: no-preference) {
.media-volume-indicator:where(.media-skin:not(.media-skin--minimal), .media-skin:not(.media-skin--minimal) *) {
will-change: scale, translate, filter, opacity;
transition-property: scale, translate, filter, opacity;
}
.media-volume-indicator:where(
.media-skin:not(.media-skin--minimal),
.media-skin:not(.media-skin--minimal) *
)[data-ending-style],
.media-volume-indicator:where(
.media-skin:not(.media-skin--minimal),
.media-skin:not(.media-skin--minimal) *
)[data-starting-style] {
filter: blur(8px);
scale: 0.9;
}
}
}
.media-volume-indicator:where(.media-skin--minimal, .media-skin--minimal *) {
inset-inline: calc(var(--media-spacing) * 0);
top: calc(var(--media-spacing) * 0);
background-image: linear-gradient(
to bottom,
oklch(0% 0 0 / 0.35),
oklch(0% 0 0 / 0.2) calc(var(--media-spacing) * 12),
transparent
);
padding-top: calc(var(--media-spacing) * 3);
padding-bottom: calc(var(--media-spacing) * 32);
text-shadow: 0 1px 0 var(--media-shadow-current-color);
justify-content: center;
transition-duration: 0.1s;
transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
display: flex;
}
.media-volume-indicator:where(.media-skin--minimal, .media-skin--minimal *)[data-ending-style],
.media-volume-indicator:where(.media-skin--minimal, .media-skin--minimal *)[data-starting-style] {
transition-duration: 0.4s;
transition-timing-function: cubic-bezier(0.4, 0, 1, 1);
}
@media (prefers-reduced-motion: no-preference) {
.media-volume-indicator:where(.media-skin--minimal, .media-skin--minimal *)[data-ending-style] {
translate: 0 -100%;
}
}
@media (pointer: coarse) {
.media-volume-indicator:where(.media-skin--minimal, .media-skin--minimal *) {
will-change: translate, opacity;
transition-property: translate, opacity;
}
}
@media (pointer: fine) {
.media-volume-indicator:where(.media-skin--minimal, .media-skin--minimal *) {
will-change: translate, filter, opacity;
transition-property: translate, filter, opacity;
}
@media (prefers-reduced-motion: no-preference) {
.media-volume-indicator:where(.media-skin--minimal, .media-skin--minimal *)[data-ending-style],
.media-volume-indicator:where(.media-skin--minimal, .media-skin--minimal *)[data-starting-style] {
filter: blur(8px);
}
}
}
@media (prefers-reduced-motion: no-preference) {
.media-volume-indicator:where(.media-skin:not(.media-skin--minimal), .media-skin:not(.media-skin--minimal) *):is(
[data-min],
[data-max]
):not([data-starting-style], [data-ending-style]) {
transition: transform 0.3s linear(0, -24 20%, 16 40%, -8 60%, 4 80%, 1);
transform: translateX(0.25px);
}
}
@media (prefers-reduced-transparency: reduce) {
.media-volume-indicator:where(.media-skin:not(.media-skin--minimal), .media-skin:not(.media-skin--minimal) *) {
background-color: var(--media-background);
backdrop-filter: none;
}
.media-volume-indicator:where(
.media-skin:not(.media-skin--minimal),
.media-skin:not(.media-skin--minimal) *
):after {
content: "";
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 #0000,
inset 0 1px #ffffff40,
inset 0 0 0 1px #ffffff20;
}
}
.media-volume-indicator-fill {
justify-content: space-between;
align-items: center;
gap: calc(var(--media-spacing) * 2);
border-radius: inherit;
padding-inline: calc(var(--media-spacing) * 2.5);
padding-block: calc(var(--media-spacing) * 1);
}
.media-volume-indicator-fill:where(.media-skin:not(.media-skin--minimal), .media-skin:not(.media-skin--minimal) *) {
background-image: linear-gradient(currentColor, currentColor);
background-size: var(--media-volume-fill, 0%) 100%;
background-position: 0;
background-repeat: no-repeat;
width: 100%;
transition-property: background-size;
transition-duration: 0.2s;
transition-timing-function: linear;
display: flex;
}
.media-volume-indicator-fill:where(.media-skin--minimal, .media-skin--minimal *) {
grid-template-columns: auto minmax(0, 1fr) auto;
width: min(80%, 14rem);
display: grid;
transform: translateX(0);
}
.media-volume-indicator-fill:where(.media-skin--minimal, .media-skin--minimal *):before {
height: calc(var(--media-spacing) * 0.75);
content: "";
width: 100%;
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 1px 0 var(--media-shadow-subtle-current-color);
background-color: currentColor;
border-radius: 9999px;
grid-row-start: 1;
grid-column-start: 2;
}
@supports (color: color-mix(in lab, red, red)) {
.media-volume-indicator-fill:where(.media-skin--minimal, .media-skin--minimal *):before {
background-color: color-mix(in oklab, currentcolor 20%, transparent);
}
}
.media-volume-indicator-fill:where(.media-skin--minimal, .media-skin--minimal *):after {
height: calc(var(--media-spacing) * 0.75);
width: var(--media-volume-fill, 0%);
background-color: var(--media-primary);
content: "";
border-radius: 9999px;
grid-row-start: 1;
grid-column-start: 2;
justify-self: flex-start;
transition-property: width;
transition-duration: 0.2s;
transition-timing-function: linear;
}
@media (prefers-reduced-motion: no-preference) {
@scope (.media-volume-indicator) {
&:is([data-min], [data-max]):not([data-starting-style], [data-ending-style])
.media-volume-indicator-fill:where(.media-skin--minimal, .media-skin--minimal *) {
transition: transform 0.3s linear(0, -24 20%, 16 40%, -8 60%, 4 80%, 1);
transform: translateX(0.25px);
}
}
}
@media (prefers-contrast: more) {
.media-volume-indicator-fill:where(.media-skin--minimal, .media-skin--minimal *) {
border-radius: calc(var(--media-spacing) * 2);
background-color: #000;
}
}
@media (prefers-reduced-transparency: reduce) {
.media-volume-indicator-fill:where(.media-skin--minimal, .media-skin--minimal *) {
border-radius: calc(var(--media-spacing) * 2);
background-color: #000;
}
}
.media-volume-indicator-high-icon {
flex-shrink: 0;
display: none;
}
@scope (.media-volume-indicator) {
&[data-level="high"] .media-volume-indicator-high-icon {
display: block;
}
}
.media-volume-indicator-high-icon:where(
.media-skin:not(.media-skin--minimal),
.media-skin:not(.media-skin--minimal) *
) {
mix-blend-mode: difference;
}
.media-volume-indicator-high-icon:where(.media-skin--minimal, .media-skin--minimal *) {
filter: drop-shadow(0 1px 0 var(--media-shadow-current-color));
grid-row-start: 1;
grid-column-start: 1;
}
.media-volume-indicator-low-icon {
flex-shrink: 0;
display: none;
}
@scope (.media-volume-indicator) {
&[data-level="low"] .media-volume-indicator-low-icon {
display: block;
}
}
.media-volume-indicator-low-icon:where(
.media-skin:not(.media-skin--minimal),
.media-skin:not(.media-skin--minimal) *
) {
mix-blend-mode: difference;
}
.media-volume-indicator-low-icon:where(.media-skin--minimal, .media-skin--minimal *) {
filter: drop-shadow(0 1px 0 var(--media-shadow-current-color));
grid-row-start: 1;
grid-column-start: 1;
}
.media-volume-indicator-off-icon {
flex-shrink: 0;
display: none;
}
@scope (.media-volume-indicator) {
&[data-level="off"] .media-volume-indicator-off-icon {
display: block;
}
}
.media-volume-indicator-off-icon:where(
.media-skin:not(.media-skin--minimal),
.media-skin:not(.media-skin--minimal) *
) {
mix-blend-mode: difference;
}
.media-volume-indicator-off-icon:where(.media-skin--minimal, .media-skin--minimal *) {
filter: drop-shadow(0 1px 0 var(--media-shadow-current-color));
grid-row-start: 1;
grid-column-start: 1;
}
.media-volume-indicator-value:where(
.media-skin:not(.media-skin--minimal),
.media-skin:not(.media-skin--minimal) *
) {
mix-blend-mode: difference;
margin-left: auto;
}
.media-volume-indicator-value:where(.media-skin--minimal, .media-skin--minimal *) {
grid-row-start: 1;
grid-column-start: 3;
}
}
@scope (.media-skin--minimal.media-skin--video) {
.media-video-status-indicators {
pointer-events: none;
inset: calc(var(--media-spacing) * 0);
color: #fff;
grid-template-columns: repeat(3, minmax(0, 1fr));
place-items: center;
display: grid;
position: absolute;
}
}
@scope (.media-skin--minimal.media-skin--video) {
@media (prefers-reduced-motion: reduce) {
}
.media-mute-button-high-icon {
opacity: 0;
}
@scope (.media-mute-button) {
&:not([data-muted]):not([data-volume-level="low"]) .media-mute-button-high-icon {
opacity: 1;
scale: 1;
}
}
.media-mute-button-low-icon {
opacity: 0;
}
@scope (.media-mute-button) {
&:not([data-muted])[data-volume-level="low"] .media-mute-button-low-icon {
opacity: 1;
scale: 1;
}
}
.media-mute-button-off-icon {
opacity: 0;
}
@scope (.media-mute-button) {
&[data-muted] .media-mute-button-off-icon {
opacity: 1;
scale: 1;
}
}
}
@scope (.media-skin--minimal.media-skin--video) {
.media-slider-buffer {
pointer-events: none;
border-radius: inherit;
background-color: currentColor;
position: absolute;
}
@supports (color: color-mix(in lab, red, red)) {
.media-slider-buffer {
background-color: color-mix(in oklab, currentcolor 20%, transparent);
}
}
@scope (.media-slider) {
&[data-dragging] .media-slider-buffer,
&[data-seeking] .media-slider-buffer {
transition-duration: 0s;
}
}
.media-slider-buffer[data-orientation="horizontal"] {
inset-block: calc(var(--media-spacing) * 0);
left: calc(var(--media-spacing) * 0);
width: 100%;
clip-path: inset(0 calc(100% - var(--media-slider-buffer)) 0 0 round 99px);
}
.media-slider-buffer[data-orientation="vertical"] {
inset-inline: calc(var(--media-spacing) * 0);
bottom: calc(var(--media-spacing) * 0);
height: 100%;
clip-path: inset(calc(100% - var(--media-slider-buffer)) 0 0 0 round 99px);
}
@media (prefers-reduced-motion: no-preference) {
.media-slider-buffer {
transition-property: clip-path;
transition-duration: 0.1s;
transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
}
}
.media-slider-fill {
pointer-events: none;
border-radius: inherit;
background-color: var(--media-primary);
position: absolute;
}
@scope (.media-slider) {
&[data-dragging] .media-slider-fill,
&[data-seeking] .media-slider-fill {
transition-duration: 0s;
}
}
.media-slider-fill[data-orientation="horizontal"] {
inset-block: calc(var(--media-spacing) * 0);
left: calc(var(--media-spacing) * 0);
width: 100%;
clip-path: inset(0 calc(100% - var(--media-slider-fill)) 0 0 round 99px);
}
@scope (.media-slider) {
&[data-dragging] .media-slider-fill[data-orientation="horizontal"] {
clip-path: inset(0 calc(100% - var(--media-slider-pointer)) 0 0 round 99px);
}
}
.media-slider-fill[data-orientation="vertical"] {
inset-inline: calc(var(--media-spacing) * 0);
bottom: calc(var(--media-spacing) * 0);
height: 100%;
clip-path: inset(calc(100% - var(--media-slider-fill)) 0 0 0 round 99px);
}
@scope (.media-slider) {
&[data-dragging] .media-slider-fill[data-orientation="vertical"] {
clip-path: inset(calc(100% - var(--media-slider-pointer)) 0 0 0 round 99px);
}
}
@media (prefers-reduced-motion: no-preference) {
.media-slider-fill {
transition-property: clip-path;
transition-duration: 0.1s;
transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
}
}
.media-slider-thumb {
top: 50%;
left: var(--media-slider-fill);
z-index: 10;
border-radius: var(--media-control-radius);
-webkit-user-select: none;
user-select: none;
background-color: currentColor;
transition-property: none;
position: absolute;
translate: -50% -50%;
}
@scope (.media-slider) {
&[data-dragging] .media-slider-thumb {
scale: 0.9;
}
}
@scope (.media-slider) {
&[data-dragging] .media-slider-thumb[data-orientation="horizontal"] {
left: var(--media-slider-pointer);
}
}
.media-slider-thumb[data-orientation="vertical"] {
top: calc(100% - var(--media-slider-fill));
left: 50%;
}
@scope (.media-slider) {
&[data-dragging] .media-slider-thumb[data-orientation="vertical"] {
top: calc(100% - var(--media-slider-pointer));
}
}
@media (prefers-reduced-motion: no-preference) {
.media-slider-thumb {
transition-property: opacity, height, width, outline-offset, left, top, scale;
transition-duration: 0.1s;
transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
}
@scope (.media-slider) {
&[data-dragging] .media-slider-thumb {
transition-property: opacity, height, width, outline-offset, scale;
transition-duration: 0.15s;
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
}
}
}
.media-slider-track {
isolation: isolate;
-webkit-user-select: none;
user-select: none;
background-color: currentColor;
border-radius: 99px;
width: 100%;
position: relative;
overflow: hidden;
}
@supports (color: color-mix(in lab, red, red)) {
.media-slider-track {
background-color: color-mix(in oklab, currentcolor 20%, transparent);
}
}
.media-slider-track[data-orientation="horizontal"] {
height: calc(var(--media-spacing) * 1);
}
.media-slider-track[data-orientation="vertical"] {
height: 100%;
width: calc(var(--media-spacing) * 1);
}
}
@scope (.media-skin--minimal.media-skin--video) {
.media-dialog-actions {
gap: calc(var(--media-spacing) * 2);
flex-shrink: 0;
display: flex;
}
.media-dialog-backdrop {
inset: calc(var(--media-spacing) * 0);
z-index: 40;
opacity: 1;
backdrop-filter: blur(16px) saturate(150%);
background-color: oklab(0% none none / 0.2);
transition: opacity 0.15s cubic-bezier(0, 0, 0.2, 1) 0.1s;
position: absolute;
}
.media-dialog-backdrop:not([data-open]) {
display: none;
}
.media-dialog-backdrop[data-ending-style] {
opacity: 0;
transition-delay: 0s;
}
.media-dialog-backdrop[data-starting-style] {
opacity: 0;
}
@media (prefers-reduced-motion: reduce) {
.media-dialog-backdrop {
transition-duration: 50ms;
transition-delay: 0s;
}
}
.media-dialog-backdrop:where(.media-skin:not(.media-skin--minimal), .media-skin:not(.media-skin--minimal) *) {
transition-duration: 0.35s;
}
.media-dialog-backdrop:where(
.media-skin:not(.media-skin--minimal),
.media-skin:not(.media-skin--minimal) *
)[data-ending-style] {
transition-duration: 0.25s;
}
@media (prefers-reduced-motion: reduce) {
.media-dialog-backdrop:where(
.media-skin:not(.media-skin--minimal),
.media-skin:not(.media-skin--minimal) *
)[data-ending-style] {
transition-duration: 50ms;
}
}
.media-dialog-backdrop:where(.media-skin--minimal, .media-skin--minimal *) {
backdrop-filter: saturate(120%);
transition-duration: 0.15s;
}
.media-dialog-backdrop:where(.media-skin--minimal, .media-skin--minimal *)[data-ending-style] {
transition-duration: 50ms;
}
@media (prefers-reduced-motion: reduce) {
.media-dialog-backdrop:where(.media-skin--minimal, .media-skin--minimal *)[data-ending-style] {
transition-duration: 50ms;
}
}
.media-dialog-close {
height: var(--media-control-size);
width: 100%;
padding-inline: calc(var(--media-spacing) * 4);
padding-block: calc(var(--media-spacing) * 2);
flex: 1;
font-weight: 500;
background-color: var(--media-primary) !important;
color: var(--media-accent-foreground) !important;
}
.media-dialog-content {
min-height: calc(var(--media-spacing) * 0);
gap: calc(var(--media-spacing) * 2);
flex-direction: column;
display: flex;
overflow-y: auto;
}
.media-dialog-content:where(.media-skin:not(.media-skin--minimal), .media-skin:not(.media-skin--minimal) *) {
padding-inline: calc(var(--media-spacing) * 2);
padding-top: calc(var(--media-spacing) * 2);
padding-bottom: calc(var(--media-spacing) * 1.5);
}
.media-dialog-content:where(.media-skin--minimal, .media-skin--minimal *) {
padding-block: calc(var(--media-spacing) * 1.5);
}
.media-dialog-description {
margin: calc(var(--media-spacing) * 0);
overflow-wrap: anywhere;
opacity: 0.7;
}
.media-dialog-popup {
z-index: 50;
gap: calc(var(--media-spacing) * 3);
outline-style: none;
flex-direction: column;
max-height: calc(100% - 0.5rem);
transition:
opacity 0.15s cubic-bezier(0, 0, 0.2, 1) 0.1s,
scale 0.15s cubic-bezier(0, 0, 0.2, 1) 0.1s;
display: flex;
position: absolute;
top: 50%;
left: 50%;
translate: -50% -50%;
}
.media-dialog-popup:not([data-open]) {
display: none;
}
.media-dialog-popup[data-ending-style] {
opacity: 0;
transition-delay: 0s;
scale: 0.95;
}
.media-dialog-popup[data-starting-style] {
opacity: 0;
scale: 0.95;
}
@media (prefers-reduced-motion: reduce) {
.media-dialog-popup {
transition-duration: 50ms;
transition-delay: 0s;
}
}
.media-dialog-popup:where(.media-skin:not(.media-skin--minimal), .media-skin:not(.media-skin--minimal) *) {
width: calc(100% - 1.5rem);
max-width: calc(var(--media-spacing) * 72);
background-color: var(--media-popover);
padding: calc(var(--media-spacing) * 3);
color: #fff;
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 0 calc(1px + 0px) var(--media-border),
0 0 #0000;
box-shadow: var(--media-shadow-sm);
backdrop-filter: blur(16px) saturate(150%);
text-shadow: 0 1px #00000040;
border-radius: 1.75rem;
transition-duration: 0.35s;
}
.media-dialog-popup:where(.media-skin:not(.media-skin--minimal), .media-skin:not(.media-skin--minimal) *):after {
pointer-events: none;
inset: calc(var(--media-spacing) * 0);
z-index: 10;
border-radius: inherit;
content: "";
position: absolute;
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 #0000,
inset 0 1px #ffffff1a,
inset 0 0 0 1px #ffffff0d;
}
.media-dialog-popup:where(
.media-skin:not(.media-skin--minimal),
.media-skin:not(.media-skin--minimal) *
)[data-ending-style] {
transition-duration: 0.25s;
}
@media (prefers-reduced-motion: reduce) {
.media-dialog-popup:where(
.media-skin:not(.media-skin--minimal),
.media-skin:not(.media-skin--minimal) *
)[data-ending-style] {
transition-duration: 50ms;
}
}
@media (prefers-contrast: more) {
.media-dialog-popup:where(.media-skin:not(.media-skin--minimal), .media-skin:not(.media-skin--minimal) *) {
background-color: var(--media-background);
backdrop-filter: none;
}
.media-dialog-popup:where(.media-skin:not(.media-skin--minimal), .media-skin:not(.media-skin--minimal) *):after {
content: "";
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 #0000,
inset 0 1px #ffffff40,
inset 0 0 0 1px #ffffff20;
}
}
@media (forced-colors: active) {
.media-dialog-popup:where(.media-skin:not(.media-skin--minimal), .media-skin:not(.media-skin--minimal) *) {
color: canvastext;
background-color: canvas;
}
.media-dialog-popup:where(.media-skin:not(.media-skin--minimal), .media-skin:not(.media-skin--minimal) *):after {
content: "";
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 #0000,
inset 0 1px canvastext,
inset 0 0 0 1px canvastext;
}
}
.media-dialog-popup:where(.media-skin--minimal, .media-skin--minimal *) {
width: 100%;
max-width: calc(var(--media-spacing) * 64);
padding: calc(var(--media-spacing) * 4);
color: #fff;
text-shadow: 0 1px #00000080;
transition-duration: 0.15s;
}
.media-dialog-popup:where(.media-skin--minimal, .media-skin--minimal *)[data-ending-style] {
transition-duration: 50ms;
}
@media (prefers-reduced-motion: reduce) {
.media-dialog-popup:where(.media-skin--minimal, .media-skin--minimal *)[data-ending-style] {
transition-duration: 50ms;
}
}
@media (prefers-reduced-transparency: reduce) {
.media-dialog-popup:where(.media-skin:not(.media-skin--minimal), .media-skin:not(.media-skin--minimal) *) {
background-color: var(--media-background);
backdrop-filter: none;
}
.media-dialog-popup:where(.media-skin:not(.media-skin--minimal), .media-skin:not(.media-skin--minimal) *):after {
content: "";
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 #0000,
inset 0 1px #ffffff40,
inset 0 0 0 1px #ffffff20;
}
}
.media-dialog-title {
margin: calc(var(--media-spacing) * 0);
font-size: calc(var(--media-spacing) * 3.75);
font-weight: 600;
line-height: 1.25;
}
}
@scope (.media-skin--minimal.media-skin--video) {
.media-buffering-indicator {
pointer-events: none;
inset: calc(var(--media-spacing) * 0);
color: #fff;
place-content: center;
display: none;
position: absolute;
}
.media-buffering-indicator:not([data-visible]) {
--media-spinner-animation: none;
}
.media-buffering-indicator:before {
inset: calc(var(--media-spacing) * 0);
content: "";
backdrop-filter: blur(8px);
background-color: oklab(0% none none / 0.35);
position: absolute;
}
.media-buffering-indicator[data-visible] {
display: grid;
}
@media (prefers-reduced-motion: reduce) {
.media-buffering-indicator {
--media-spinner-animation: none;
}
}
.media-buffering-indicator-spinner-icon {
z-index: 30;
width: var(--media-icon-size, calc(var(--media-spacing) * 4.5));
height: var(--media-icon-size, calc(var(--media-spacing) * 4.5));
filter: drop-shadow(0 1px 0 var(--media-shadow-current-color));
position: relative;
}
}
@scope (.media-skin--minimal.media-skin--video) {
.media-playback-status-indicator {
padding: calc(var(--media-spacing) * 4);
text-align: center;
grid-row-start: 1;
grid-column-start: 2;
place-content: center;
transition-property: opacity, scale;
transition-duration: 0.2s;
transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
display: grid;
}
.media-playback-status-indicator[data-ending-style] {
opacity: 0;
transition-duration: 0.1s;
transition-timing-function: cubic-bezier(0.4, 0, 1, 1);
scale: 0.85;
}
.media-playback-status-indicator[data-starting-style] {
opacity: 0;
scale: 0.85;
}
@media (prefers-reduced-motion: reduce) {
.media-playback-status-indicator {
transition-property: opacity;
transition-duration: 50ms;
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
}
.media-playback-status-indicator[data-ending-style],
.media-playback-status-indicator[data-starting-style] {
scale: 1;
}
}
.media-playback-status-indicator:where(
.media-skin:not(.media-skin--minimal),
.media-skin:not(.media-skin--minimal) *
) {
backdrop-filter: blur(8px);
background-color: oklab(0% none none / 0.35);
border-radius: 9999px;
}
.media-playback-status-indicator-pause-icon {
opacity: 0;
grid-row-start: 1;
grid-column-start: 1;
transition-property: opacity, scale;
transition-duration: 0.15s;
transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
scale: 0;
}
@scope (.media-playback-status-indicator) {
&[data-status="pause"] .media-playback-status-indicator-pause-icon {
opacity: 1;
scale: 1;
}
}
@media (prefers-reduced-motion: reduce) {
.media-playback-status-indicator-pause-icon {
transition-property: opacity;
transition-duration: 50ms;
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
scale: 1;
}
}
.media-playback-status-indicator-pause-icon:where(
.media-skin:not(.media-skin--minimal),
.media-skin:not(.media-skin--minimal) *
) {
width: calc(var(--media-icon-size, calc(var(--media-spacing) * 4.5)) * 1.5);
height: calc(var(--media-icon-size, calc(var(--media-spacing) * 4.5)) * 1.5);
}
.media-playback-status-indicator-pause-icon:where(.media-skin--minimal, .media-skin--minimal *) {
width: calc(var(--media-icon-size, calc(var(--media-spacing) * 4.5)) * 2);
height: calc(var(--media-icon-size, calc(var(--media-spacing) * 4.5)) * 2);
}
.media-playback-status-indicator-play-icon {
opacity: 0;
grid-row-start: 1;
grid-column-start: 1;
transition-property: opacity, scale;
transition-duration: 0.15s;
transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
scale: 0;
}
@scope (.media-playback-status-indicator) {
&[data-status="play"] .media-playback-status-indicator-play-icon {
opacity: 1;
scale: 1;
}
}
@media (prefers-reduced-motion: reduce) {
.media-playback-status-indicator-play-icon {
transition-property: opacity;
transition-duration: 50ms;
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
scale: 1;
}
}
.media-playback-status-indicator-play-icon:where(
.media-skin:not(.media-skin--minimal),
.media-skin:not(.media-skin--minimal) *
) {
width: calc(var(--media-icon-size, calc(var(--media-spacing) * 4.5)) * 1.5);
height: calc(var(--media-icon-size, calc(var(--media-spacing) * 4.5)) * 1.5);
}
@scope (.media-playback-status-indicator) {
&[data-status="play"]
.media-playback-status-indicator-play-icon:where(
.media-skin:not(.media-skin--minimal),
.media-skin:not(.media-skin--minimal) *
) {
translate: 1px;
}
}
.media-playback-status-indicator-play-icon:where(.media-skin--minimal, .media-skin--minimal *) {
width: calc(var(--media-icon-size, calc(var(--media-spacing) * 4.5)) * 2);
height: calc(var(--media-icon-size, calc(var(--media-spacing) * 4.5)) * 2);
}
.media-status-indicator {
pointer-events: none;
transform-origin: top;
color: inherit;
position: absolute;
}
.media-status-indicator[data-ending-style],
.media-status-indicator[data-starting-style] {
opacity: 0;
}
.media-status-indicator:where(.media-skin:not(.media-skin--minimal), .media-skin:not(.media-skin--minimal) *) {
top: calc(var(--media-spacing) * 3);
background-color: oklab(0% none none / 0.25);
background-color: var(--media-popover);
color: var(--media-popover-foreground);
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 0 calc(1px + 0px) var(--media-border),
0 0 #0000;
box-shadow: var(--media-shadow-sm);
backdrop-filter: blur(16px) saturate(150%);
border-radius: 9999px;
font-weight: 500;
transition-duration: 0.1s;
transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
}
.media-status-indicator:where(
.media-skin:not(.media-skin--minimal),
.media-skin:not(.media-skin--minimal) *
):after {
pointer-events: none;
inset: calc(var(--media-spacing) * 0);
z-index: 10;
border-radius: inherit;
content: "";
position: absolute;
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 #0000,
inset 0 1px #ffffff1a,
inset 0 0 0 1px #ffffff0d;
}
.media-status-indicator:where(
.media-skin:not(.media-skin--minimal),
.media-skin:not(.media-skin--minimal) *
)[data-ending-style],
.media-status-indicator:where(
.media-skin:not(.media-skin--minimal),
.media-skin:not(.media-skin--minimal) *
)[data-starting-style] {
transition-duration: 0.25s;
transition-timing-function: cubic-bezier(0.4, 0, 1, 1);
}
@media (prefers-reduced-motion: no-preference) {
.media-status-indicator:where(
.media-skin:not(.media-skin--minimal),
.media-skin:not(.media-skin--minimal) *
)[data-ending-style] {
translate: 0 -25%;
}
}
@media (prefers-contrast: more) {
.media-status-indicator:where(.media-skin:not(.media-skin--minimal), .media-skin:not(.media-skin--minimal) *) {
background-color: var(--media-background);
backdrop-filter: none;
}
.media-status-indicator:where(
.media-skin:not(.media-skin--minimal),
.media-skin:not(.media-skin--minimal) *
):after {
content: "";
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 #0000,
inset 0 1px #ffffff40,
inset 0 0 0 1px #ffffff20;
}
}
@media (forced-colors: active) {
.media-status-indicator:where(.media-skin:not(.media-skin--minimal), .media-skin:not(.media-skin--minimal) *) {
color: canvastext;
background-color: canvas;
}
.media-status-indicator:where(
.media-skin:not(.media-skin--minimal),
.media-skin:not(.media-skin--minimal) *
):after {
content: "";
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 #0000,
inset 0 1px canvastext,
inset 0 0 0 1px canvastext;
}
}
@media (pointer: coarse) {
.media-status-indicator:where(.media-skin:not(.media-skin--minimal), .media-skin:not(.media-skin--minimal) *) {
will-change: scale, translate, opacity;
transition-property: scale, translate, opacity;
}
}
@media (pointer: fine) {
@media (prefers-reduced-motion: no-preference) {
.media-status-indicator:where(.media-skin:not(.media-skin--minimal), .media-skin:not(.media-skin--minimal) *) {
will-change: scale, translate, filter, opacity;
transition-property: scale, translate, filter, opacity;
}
.media-status-indicator:where(
.media-skin:not(.media-skin--minimal),
.media-skin:not(.media-skin--minimal) *
)[data-ending-style],
.media-status-indicator:where(
.media-skin:not(.media-skin--minimal),
.media-skin:not(.media-skin--minimal) *
)[data-starting-style] {
filter: blur(8px);
scale: 0.9;
}
}
}
.media-status-indicator:where(.media-skin--minimal, .media-skin--minimal *) {
inset-inline: calc(var(--media-spacing) * 0);
top: calc(var(--media-spacing) * 0);
background-image: linear-gradient(
to bottom,
oklch(0% 0 0 / 0.35),
oklch(0% 0 0 / 0.2) calc(var(--media-spacing) * 12),
transparent
);
padding-top: calc(var(--media-spacing) * 3);
padding-bottom: calc(var(--media-spacing) * 32);
text-shadow: 0 1px 0 var(--media-shadow-current-color);
justify-content: center;
transition-duration: 0.1s;
transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
display: flex;
}
.media-status-indicator:where(.media-skin--minimal, .media-skin--minimal *)[data-ending-style],
.media-status-indicator:where(.media-skin--minimal, .media-skin--minimal *)[data-starting-style] {
transition-duration: 0.4s;
transition-timing-function: cubic-bezier(0.4, 0, 1, 1);
}
@media (prefers-reduced-motion: no-preference) {
.media-status-indicator:where(.media-skin--minimal, .media-skin--minimal *)[data-ending-style] {
translate: 0 -100%;
}
}
@media (pointer: coarse) {
.media-status-indicator:where(.media-skin--minimal, .media-skin--minimal *) {
will-change: translate, opacity;
transition-property: translate, opacity;
}
}
@media (pointer: fine) {
.media-status-indicator:where(.media-skin--minimal, .media-skin--minimal *) {
will-change: translate, filter, opacity;
transition-property: translate, filter, opacity;
}
@media (prefers-reduced-motion: no-preference) {
.media-status-indicator:where(.media-skin--minimal, .media-skin--minimal *)[data-ending-style],
.media-status-indicator:where(.media-skin--minimal, .media-skin--minimal *)[data-starting-style] {
filter: blur(8px);
}
}
}
@media (prefers-reduced-transparency: reduce) {
.media-status-indicator:where(.media-skin:not(.media-skin--minimal), .media-skin:not(.media-skin--minimal) *) {
background-color: var(--media-background);
backdrop-filter: none;
}
.media-status-indicator:where(
.media-skin:not(.media-skin--minimal),
.media-skin:not(.media-skin--minimal) *
):after {
content: "";
box-shadow:
0 0 #0000,
0 0 #0000,
0 0 #0000,
0 0 #0000,
inset 0 1px #ffffff40,
inset 0 0 0 1px #ffffff20;
}
}
.media-status-indicator-captions-off-icon {
flex-shrink: 0;
display: none;
}
@scope (.media-status-indicator) {
&[data-status="captions-off"] .media-status-indicator-captions-off-icon {
display: block;
}
}
.media-status-indicator-captions-off-icon:where(
.media-skin:not(.media-skin--minimal),
.media-skin:not(.media-skin--minimal) *
) {
mix-blend-mode: difference;
}
.media-status-indicator-captions-off-icon:where(.media-skin--minimal, .media-skin--minimal *) {
filter: drop-shadow(0 1px 0 var(--media-shadow-current-color));
}
.media-status-indicator-captions-on-icon {
flex-shrink: 0;
display: none;
}
@scope (.media-status-indicator) {
&[data-status="captions-on"] .media-status-indicator-captions-on-icon {
display: block;
}
}
.media-status-indicator-captions-on-icon:where(
.media-skin:not(.media-skin--minimal),
.media-skin:not(.media-skin--minimal) *
) {
mix-blend-mode: difference;
}
.media-status-indicator-captions-on-icon:where(.media-skin--minimal, .media-skin--minimal *) {
filter: drop-shadow(0 1px 0 var(--media-shadow-current-color));
}
.media-status-indicator-content {
justify-content: space-between;
align-items: center;
gap: calc(var(--media-spacing) * 2);
padding-inline: calc(var(--media-spacing) * 2.5);
padding-block: calc(var(--media-spacing) * 1);
display: flex;
}
.media-status-indicator-content:where(
.media-skin:not(.media-skin--minimal),
.media-skin:not(.media-skin--minimal) *
) {
width: 100%;
}
@media (prefers-contrast: more) {
.media-status-indicator-content:where(.media-skin--minimal, .media-skin--minimal *) {
border-radius: calc(var(--media-spacing) * 2);
background-color: #000;
}
}
@media (prefers-reduced-transparency: reduce) {
.media-status-indicator-content:where(.media-skin--minimal, .media-skin--minimal *) {
border-radius: calc(var(--media-spacing) * 2);
background-color: #000;
}
}
.media-status-indicator-fullscreen-enter-icon {
flex-shrink: 0;
display: none;
}
@scope (.media-status-indicator) {
&[data-status="fullscreen"] .media-status-indicator-fullscreen-enter-icon {
display: block;
}
}
.media-status-indicator-fullscreen-enter-icon:where(
.media-skin:not(.media-skin--minimal),
.media-skin:not(.media-skin--minimal) *
) {
mix-blend-mode: difference;
}
.media-status-indicator-fullscreen-enter-icon:where(.media-skin--minimal, .media-skin--minimal *) {
filter: drop-shadow(0 1px 0 var(--media-shadow-current-color));
}
.media-status-indicator-fullscreen-exit-icon {
flex-shrink: 0;
display: none;
}
@scope (.media-status-indicator) {
&[data-status="exit-fullscreen"] .media-status-indicator-fullscreen-exit-icon {
display: block;
}
}
.media-status-indicator-fullscreen-exit-icon:where(
.media-skin:not(.media-skin--minimal),
.media-skin:not(.media-skin--minimal) *
) {
mix-blend-mode: difference;
}
.media-status-indicator-fullscreen-exit-icon:where(.media-skin--minimal, .media-skin--minimal *) {
filter: drop-shadow(0 1px 0 var(--media-shadow-current-color));
}
.media-status-indicator-pip-enter-icon {
flex-shrink: 0;
display: none;
}
@scope (.media-status-indicator) {
&[data-status="pip"] .media-status-indicator-pip-enter-icon {
display: block;
}
}
.media-status-indicator-pip-enter-icon:where(
.media-skin:not(.media-skin--minimal),
.media-skin:not(.media-skin--minimal) *
) {
mix-blend-mode: difference;
}
.media-status-indicator-pip-enter-icon:where(.media-skin--minimal, .media-skin--minimal *) {
filter: drop-shadow(0 1px 0 var(--media-shadow-current-color));
}
.media-status-indicator-pip-exit-icon {
flex-shrink: 0;
display: none;
}
@scope (.media-status-indicator) {
&[data-status="exit-pip"] .media-status-indicator-pip-exit-icon {
display: block;
}
}
.media-status-indicator-pip-exit-icon:where(
.media-skin:not(.media-skin--minimal),
.media-skin:not(.media-skin--minimal) *
) {
mix-blend-mode: difference;
}
.media-status-indicator-pip-exit-icon:where(.media-skin--minimal, .media-skin--minimal *) {
filter: drop-shadow(0 1px 0 var(--media-shadow-current-color));
}
.media-status-indicator-value {
margin-left: auto;
}
.media-status-indicator-value:where(
.media-skin:not(.media-skin--minimal),
.media-skin:not(.media-skin--minimal) *
) {
mix-blend-mode: difference;
}
}
@scope (.media-skin--minimal.media-skin--video) {
@media (prefers-reduced-motion: reduce) {
}
.media-fullscreen-button-enter-icon {
opacity: 0;
}
@scope (.media-fullscreen-button) {
&:not([data-fullscreen]) .media-fullscreen-button-enter-icon {
opacity: 1;
scale: 1;
}
}
.media-fullscreen-button-exit-icon {
opacity: 0;
}
@scope (.media-fullscreen-button) {
&[data-fullscreen] .media-fullscreen-button-exit-icon {
opacity: 1;
scale: 1;
}
}
}
@scope (.media-skin--minimal.media-skin--video) {
.media-seek-indicator {
place-content: center;
gap: calc(var(--media-spacing) * 1);
padding: calc(var(--media-spacing) * 4);
text-align: center;
grid-row-start: 1;
grid-column-start: 2;
display: grid;
}
.media-seek-indicator[data-direction="backward"] {
grid-column-start: 1;
justify-self: flex-start;
}
.media-seek-indicator[data-direction="forward"] {
grid-column-start: 3;
justify-self: flex-end;
}
@container media-root (width >= 42rem) {
.media-seek-indicator {
padding: calc(var(--media-spacing) * 6);
}
}
.media-seek-indicator-icon {
width: calc(var(--media-icon-size, calc(var(--media-spacing) * 4.5)) * 1.5);
height: calc(var(--media-icon-size, calc(var(--media-spacing) * 4.5)) * 1.5);
display: none;
}
@scope (.media-seek-indicator) {
&[data-direction] .media-seek-indicator-icon {
display: block;
}
}
@scope (.media-seek-indicator) {
&[data-direction="backward"] .media-seek-indicator-icon {
scale: -1 1;
}
}
@media (prefers-reduced-motion: no-preference) {
.media-seek-indicator-icon {
transition-property: translate, opacity;
transition-duration: 0.2s;
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
}
@scope (.media-seek-indicator) {
&[data-ending-style] .media-seek-indicator-icon,
&[data-starting-style] .media-seek-indicator-icon {
opacity: 0;
}
}
@scope (.media-seek-indicator) {
&[data-direction="backward"][data-starting-style] .media-seek-indicator-icon {
translate: 60%;
}
}
@scope (.media-seek-indicator) {
&[data-direction="forward"][data-starting-style] .media-seek-indicator-icon {
translate: -60%;
}
}
}
.media-seek-indicator-value {
font-variant-numeric: tabular-nums;
}
}
@scope (.media-skin--minimal.media-skin--video) {
.media-poster {
pointer-events: none;
inset: calc(var(--media-spacing) * 0);
border-radius: inherit;
object-fit: var(--media-object-fit, contain);
object-position: var(--media-object-position, center);
width: 100%;
height: 100%;
transition-property: opacity;
transition-duration: 0.25s;
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
position: absolute;
}
.media-poster:not([data-visible]) {
opacity: 0;
}
.media-poster ::slotted(img) {
inset: calc(var(--media-spacing) * 0);
border-radius: inherit;
object-fit: var(--media-object-fit, contain);
object-position: var(--media-object-position, center);
width: 100%;
height: 100%;
position: absolute;
}
.media-poster ::slotted(img:not([src]):not([srcset])) {
visibility: hidden;
}
.media-poster img {
inset: calc(var(--media-spacing) * 0);
border-radius: inherit;
object-fit: var(--media-object-fit, contain);
object-position: var(--media-object-position, center);
width: 100%;
height: 100%;
position: absolute;
}
.media-poster:is(img):not([src]):not([srcset]),
.media-poster > slot > img:not([src]):not([srcset]) {
visibility: hidden;
}
}
}
@layer utilities;
/** @jsxImportSource react */
import './skin.css';
import '../../../styles/theme.css';
import type { ComponentProps, ReactNode } from 'react';
import { cn } from '@/components/videojs/lib/resolve-class-name';
import { BufferingIndicator } from '@/components/videojs/ui/buffering-indicator';
import { Container } from '@/components/videojs/ui/container';
import { ErrorDialog } from '@/components/videojs/ui/error-dialog';
import { Poster } from '@/components/videojs/ui/poster';
import { VideoGestures } from '../gestures';
import { VideoHotkeys } from '../hotkeys';
import { VideoStatusIndicators } from '../status-indicators';
import { MinimalVideoControls } from './controls';
export interface MinimalVideoSkinProps extends Omit<NonNullable<ComponentProps<typeof Container>>, 'children'> {
children?: ReactNode;
poster?: string | NonNullable<ComponentProps<typeof Poster>>['children'];
}
export function MinimalVideoSkin({ children, className, poster, ...props }: MinimalVideoSkinProps = {}) {
const isPosterString = typeof poster === 'string';
return (
<Container className={cn('media-skin media-skin--minimal media-skin--video', className)} {...props}>
{children}
<Poster src={isPosterString ? poster : undefined}>{isPosterString ? undefined : poster}</Poster>
<BufferingIndicator />
<ErrorDialog />
<MinimalVideoControls />
<VideoHotkeys />
<VideoGestures />
<VideoStatusIndicators />
</Container>
);
}
@layer components {
@scope (.media-skin--minimal.media-skin--video) {
.media-controls {
inset-inline: calc(var(--media-spacing) * 1);
bottom: calc(var(--media-spacing) * 1);
z-index: 20;
align-items: center;
column-gap: calc(var(--media-spacing) * 2);
padding: calc(var(--media-spacing) * 1);
color: #fff;
transition-property: filter, opacity, translate;
transition-duration: calc(var(--media-controls-transition-duration) / 2);
--media-popover-boundary-offset: calc(var(--media-spacing) * 2);
--media-popover-side-offset: calc(var(--media-spacing) * 5);
--media-tooltip-boundary-offset: var(--media-popover-boundary-offset);
--media-tooltip-side-offset: var(--media-popover-side-offset);
text-shadow: 0 1px 0 var(--media-shadow-current-color);
background-color: #0000;
border-radius: 0.75rem;
flex-wrap: wrap;
transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
display: flex;
position: absolute;
}
.media-controls:not([data-visible]) {
pointer-events: none;
opacity: 0;
transition-duration: var(--media-controls-transition-duration);
}
@media (prefers-reduced-motion: no-preference) {
.media-controls:not([data-visible]) {
translate: 0 100%;
}
}
@media (prefers-contrast: more) {
.media-controls {
background-color: #000;
}
}
@container media-root (width >= 42rem) {
.media-controls {
inset-inline: calc(var(--media-spacing) * 2);
bottom: calc(var(--media-spacing) * 2);
--media-popover-side-offset: calc(var(--media-spacing) * 3);
flex-wrap: nowrap;
}
}
@media (pointer: fine) {
@media (prefers-reduced-motion: no-preference) {
.media-controls:not([data-visible]) {
filter: blur(8px);
}
}
}
@media (prefers-reduced-transparency: reduce) {
.media-controls {
background-color: #000;
}
}
.media-controls__backdrop {
pointer-events: none;
inset: calc(var(--media-spacing) * 0);
z-index: 10;
border-radius: inherit;
background-image: linear-gradient(
to top,
oklab(0% none none / 0.7) 0%,
oklab(0% none none / 0.5) calc(var(--media-spacing) * 30),
transparent 100%
);
transition-property: opacity;
transition-duration: var(--media-controls-transition-duration);
transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
position: absolute;
}
.media-controls__backdrop:not([data-visible]) {
opacity: 0;
}
.media-controls-end {
flex: 1;
justify-content: flex-end;
align-items: center;
gap: 1px;
display: flex;
}
@container media-root (width < 42rem) {
.media-controls-end {
transition: mask-position 50ms ease-out;
mask-position: 100% 0;
mask-size: 400% 100%;
mask-repeat: no-repeat;
}
@scope (.media-controls) {
&:has([data-volume-level][aria-expanded="true"]) .media-controls-end {
mask-image: linear-gradient(to right, #0000 10%, #000 25% 100%);
mask-position: 0 0;
}
}
}
@container media-root (width >= 42rem) {
.media-controls-end {
flex: none;
}
}
.media-controls-start {
flex: 1;
align-items: center;
gap: 1px;
display: flex;
}
@container media-root (width >= 42rem) {
.media-controls-start {
flex: none;
}
}
.media-controls-trailing {
align-items: center;
gap: 1px;
display: flex;
}
.media-time-current-value {
cursor: pointer;
font-variant-numeric: tabular-nums;
outline-offset: -2px;
border-radius: 0.25rem;
outline: 2px solid #0000;
transition-property: outline-color, outline-offset;
transition-duration: 0.1s;
transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
display: none;
}
.media-time-current-value:focus-visible {
outline-offset: 2px;
outline-color: #fff;
}
@supports (corner-shape: squircle) {
.media-time-current-value {
corner-shape: squircle;
border-radius: 1rem;
}
}
@container media-root (width >= 42rem) {
.media-time-current-value {
display: inline;
}
}
.media-time-duration-value {
font-variant-numeric: tabular-nums;
}
@container media-root (width >= 42rem) {
.media-time-duration-value {
color: currentColor;
}
@supports (color: color-mix(in lab, red, red)) {
.media-time-duration-value {
color: color-mix(in oklab, currentcolor 60%, transparent);
}
}
}
.media-time-group {
align-items: center;
gap: calc(var(--media-spacing) * 1);
display: flex;
}
.media-time-separator {
display: none;
}
@container media-root (width >= 42rem) {
.media-time-separator {
color: currentColor;
display: inline;
}
@supports (color: color-mix(in lab, red, red)) {
.media-time-separator {
color: color-mix(in oklab, currentcolor 60%, transparent);
}
}
}
.media-time-slider-group {
align-items: center;
gap: calc(var(--media-spacing) * 3);
padding-inline: calc(var(--media-spacing) * 1.5);
--media-slider-height: calc(var(--media-spacing) * 5);
flex-direction: row-reverse;
flex: 0 0 100%;
order: -1;
display: flex;
container: media-time-controls / inline-size;
}
@container media-root (width >= 42rem) {
.media-time-slider-group {
min-width: calc(var(--media-spacing) * 0);
--media-slider-height: calc(var(--media-spacing) * 8);
flex-direction: row;
flex: 1;
order: 0;
transition: mask-position 50ms ease-out;
mask-position: 100% 0;
mask-size: 200% 100%;
mask-repeat: no-repeat;
}
@scope (.media-controls) {
&:has([data-volume-level][aria-expanded="true"]) .media-time-slider-group {
mask-image: linear-gradient(to right, #0000 10%, #000 25% 100%);
mask-position: 0 0;
}
}
}
}
@scope (.media-skin--minimal.media-skin--video) {
.media-video-status-indicators {
pointer-events: none;
inset: calc(var(--media-spacing) * 0);
color: #fff;
grid-template-columns: repeat(3, minmax(0, 1fr));
place-items: center;
display: grid;
position: absolute;
}
}
}
v10 is built different
Video.js 10 is complete ground-up rewrite of the player for the modern web. The UI is separated from the underlying media renderer. Every component is independent and works together through open API contracts. We've structured the project for modern JavaScript bundlers to support tree-shaking and intelligent code splitting.
Start with a small player and only add what you need.
Download speeds
(based on slow 4G connection)VJS 8
VJS 8
3.96s/200kB
VJS 10
VJS 10
0.75s/38kB
Roadmap
Oct 2025
Tech Preview
Kick the tires, and light the fires
Mar 2026
Beta
Close to stable. Experimental adoption in real projects
Mid 2026
GA
Stable APIs. Feature parity w/ Media Chrome, Vidstack, Plyr.
End of 2026
Core Feature Parity
Video.js core/contrib plugins migrated
Sponsors
Corporate Shepherd
The role of Corporate Shepherd is held by the company that has been elected by the Video.js Technical Steering Committee (TSC) to be a steward of the project and make significant investment into the development of Video.js. The role is currently held by Mux, taking over for Brightcove in 2025. Mux is a leader in streaming video technology and was founded by Steve Heffernan, the creator of Video.js.