media-container * { box-sizing: border-box; } media-container { position: relative; isolation: isolate; container: root / inline-size; overflow: clip; border-radius: var(--frosted-border-radius, 2rem); background: oklab(0 0 0); font-family: ui-sans-serif, system-ui, sans-serif; font-size: 0.8125rem; line-height: 1.5; -webkit-font-smoothing: auto; -moz-osx-font-smoothing: auto; } media-container::before, media-container::after { content: ''; position: absolute; pointer-events: none; border-radius: inherit; z-index: 10; } media-container::before { inset: 1px; box-shadow: inset 0 0 0 1px oklab(1 0 0 / 0.15); } media-container::after { inset: 0; box-shadow: inset 0 0 0 1px oklab(0 0 0 / 0.1); } /* Fullscreen */ media-container:fullscreen { border-radius: 0; } media-container > ::slotted([slot='media']), media-container > video, media-container > audio { display: block; width: 100%; height: 100%; } /* Media Container UI Overlay Styling */ media-container > .overlay { position: absolute; inset: 0; display: flex; flex-flow: column nowrap; align-items: start; pointer-events: none; border-radius: inherit; background-image: linear-gradient(to top, oklab(0 0 0 / 0.5), oklab(0 0 0 / 0.3), rgba(0, 0, 0, 0)); backdrop-filter: saturate(1.5) brightness(0.9); transition: opacity 0.15s ease-out; transition-duration: 100ms; transition-delay: 0ms; } media-container[data-controls='hidden'] > .overlay { transition-delay: 500ms; transition-duration: 300ms; opacity: 0; } /* Common Surface Styles - e.g. tooltips, popovers, controls */ .surface { background-color: oklab(1 0 0 / 0.1); backdrop-filter: blur(64px) brightness(0.9) saturate(1.5); box-shadow: inset 0 0 0 1px oklab(1 0 0 / 0.05), 0 0 0 1px oklab(0 0 0 / 0.15), oklab(0 0 0 / 0.15) 0px 1px 3px 0px, oklab(0 0 0 / 0.15) 0px 1px 2px -1px; } @media (prefers-reduced-transparency: reduce) { .surface { background-color: oklab(0 0 0 / 0.7); box-shadow: inset 0 0 0 1px oklab(0 0 0), 0 0 0 1px oklab(1 0 0 / 0.2); } } @media (prefers-contrast: more) { .surface { background-color: oklab(0 0 0 / 0.9); box-shadow: inset 0 0 0 1px oklab(0 0 0), 0 0 0 1px oklab(1 0 0 / 0.2); } } /* Media Control Bar UI/Styles */ .control-bar { position: absolute; bottom: 0.75rem; inset-inline: 0.75rem; padding: 0.25rem; display: flex; align-items: center; gap: 0.125rem; border-radius: calc(infinity * 1px); will-change: scale, transform, filter, opacity; transition-property: scale, transform, filter, opacity; transition-delay: 0ms; transition-duration: 100ms; transition-timing-function: ease-out; transform-origin: bottom; color: oklab(1 0 0); } media-container[data-controls='hidden'] > .control-bar { opacity: 0; scale: 0.9; filter: blur(8px); transition-delay: 500ms; transition-duration: 300ms; pointer-events: none; } /* Time Display Styling */ .time-controls { display: flex; align-items: center; flex: 1; gap: 0.75rem; padding-inline: 0.375rem; } media-current-time-display, media-duration-display { text-shadow: 0 1px 0 oklab(0 0 0 / 0.25); font-variant-numeric: tabular-nums; } /* Generic Media Button Styling */ .button { display: grid; flex-shrink: 0; padding: 0.5rem; cursor: pointer; background: transparent; border: none; border-radius: calc(infinity * 1px); color: oklab(1 0 0 / 0.9); user-select: none; outline: 2px solid transparent; outline-offset: -2px; transition-property: background-color, color, outline-offset; transition-duration: 150ms; transition-timing-function: ease-out; } .button:hover, .button:focus-visible, .button[aria-expanded='true'] { background-color: oklab(1 0 0 / 0.1); color: oklab(1 0 0); text-decoration: none; } .button:focus-visible { outline-color: oklch(62.3% 0.214 259.815); outline-offset: 2px; } .button[disabled] { cursor: not-allowed; opacity: 0.5; filter: grayscale(1); } .button .icon { grid-area: 1 / 1; width: 18px; height: 18px; filter: drop-shadow(0 1px 0 oklab(0 0 0 / 0.25)); } /* Media Play Button UI/Styles */ media-play-button .icon { opacity: 0; transition: opacity 150ms linear; } media-play-button:not([data-paused]) .pause-icon, media-play-button[data-paused] .play-icon { opacity: 1; } /* Media Fullscreen Button UI/Styles */ media-fullscreen-button .icon { display: none; } media-fullscreen-button:not([data-fullscreen]) .fullscreen-enter-icon, media-fullscreen-button[data-fullscreen] .fullscreen-exit-icon { display: inline; } /* One way to define the "default visible" icon (CJP) */ media-mute-button .icon { display: none; } media-mute-button:not([data-volume-level]) .volume-low-icon, media-mute-button[data-volume-level='high'] .volume-high-icon, media-mute-button[data-volume-level='medium'] .volume-high-icon, media-mute-button[data-volume-level='low'] .volume-low-icon, media-mute-button[data-volume-level='off'] .volume-off-icon { display: inline; } /* TimeSlider Component Styles */ .slider { flex: 1; display: flex; align-items: center; justify-content: center; position: relative; border-radius: calc(infinity * 1px); outline: none; } /* Horizontal orientation styles */ .slider[data-orientation='horizontal'] { min-width: 5rem; width: 100%; height: 1.25rem; } /* Vertical orientation styles */ .slider[data-orientation='vertical'] { height: 5rem; width: 1.25rem; } .slider-track { position: relative; isolation: isolate; background-color: oklab(1 0 0 / 0.2); border-radius: inherit; overflow: hidden; user-select: none; outline: 2px solid transparent; outline-offset: -2px; transition: outline-offset 150ms ease-out; box-shadow: 0 0 0 1px oklab(0 0 0 / 0.05); } /* Horizontal track styles */ .slider-track[data-orientation='horizontal'] { width: 100%; height: 0.25rem; } /* Vertical track styles */ .slider-track[data-orientation='vertical'] { width: 0.25rem; height: 100%; } .slider:focus-visible .slider-track { outline-color: oklch(62.3% 0.214 259.815); outline-offset: 6px; } .slider-thumb { width: 0.625rem; height: 0.625rem; background-color: oklab(1 0 0); border-radius: calc(infinity * 1px); user-select: none; z-index: 10; box-shadow: 0 0 0 1px oklab(0 0 0 / 0.1), 0 1px 3px 0 oklab(0 0 0 / 0.15), 0 1px 2px -1px oklab(0 0 0 / 0.15); opacity: 0; transition-property: opacity, height, width; transition-duration: 150ms; transition-timing-function: ease-out; } .slider-thumb:active { width: 0.75rem; height: 0.75rem; } .slider:hover .slider-thumb, .slider:focus-within .slider-thumb { opacity: 1; } .slider-track[data-orientation='horizontal'] .slider-thumb { cursor: ew-resize; } .slider-track[data-orientation='vertical'] .slider-thumb { cursor: ns-resize; } .slider-pointer { background-color: oklab(1 0 0 / 0.2); border-radius: inherit; } .slider-progress { background-color: oklab(1 0 0); border-radius: inherit; } media-preview-time-display { font-variant-numeric: tabular-nums; } .popup-animation { transition-property: transform, scale, opacity, filter; transition-duration: 200ms; transform: scale(1); transform-origin: bottom; opacity: 1; filter: blur(0px); } .popup-animation[data-starting-style], .popup-animation[data-ending-style] { transform: scale(0); opacity: 0; filter: blur(8px); } .popup-animation[data-instant] { transition-duration: 0ms; } media-popover { padding: 0.75rem 0.25rem; border-radius: calc(infinity * 1px); margin: 0; border: 0; } /* Tooltip Component Styles */ media-tooltip { margin: 0; border: none; box-shadow: none; background: transparent; color: oklab(1 0 0); padding: 0.25rem 0.625rem; border-radius: calc(infinity * 1px); font-size: 0.75rem; } .tooltip { display: none; white-space: nowrap; } [data-paused] + media-tooltip .play-tooltip, :not([data-paused]) + media-tooltip .pause-tooltip { display: block; } [data-fullscreen] + media-tooltip .fullscreen-exit-tooltip, :not([data-fullscreen]) + media-tooltip .fullscreen-enter-tooltip { display: block; }