chore(root): archive examples into tech-preview (#315)

This commit is contained in:
rahim
2026-01-20 14:35:51 +11:00
committed by GitHub
parent 78695d4bb6
commit 35c6cb1e16
62 changed files with 33 additions and 1519 deletions
@@ -0,0 +1,354 @@
media-container * {
box-sizing: border-box;
}
media-container {
position: relative;
isolation: isolate;
container: root / inline-size;
overflow: clip;
border-radius: var(--minimal-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::after {
content: '';
position: absolute;
pointer-events: none;
border-radius: inherit;
z-index: 10;
inset: 0;
box-shadow: inset 0 0 0 1px oklab(0 0 0 / 0.15);
}
@media (prefers-color-scheme: dark) {
media-container::after {
box-shadow: inset 0 0 0 1px oklab(1 0 0 / 0.15);
}
}
/* 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.7), oklab(0 0 0 / 0.5) 7.5rem, rgba(0, 0, 0, 0));
transition-property: opacity;
transition-duration: 75ms;
transition-delay: 0ms;
transition-timing-function: ease-out;
}
media-container[data-controls='hidden'] > .overlay {
opacity: 0;
transition-duration: 500ms;
transition-delay: 500ms;
}
/* Media Control Bar UI/Styles */
.control-bar {
position: absolute;
bottom: 0;
inset-inline: 0;
padding: 2rem 0.375rem 0.375rem 0.375rem;
display: flex;
align-items: center;
gap: 0.5rem;
will-change: transform, filter, opacity;
transition-property: transform, filter, opacity;
transition-delay: 0ms;
transition-duration: 75ms;
transition-timing-function: ease-out;
color: oklab(1 0 0);
}
media-container[data-controls='hidden'] > .control-bar {
opacity: 0;
transform: translateY(100%);
filter: blur(8px);
transition-delay: 500ms;
transition-duration: 500ms;
pointer-events: none;
}
@container root (width > 640px) {
.control-bar {
padding: 2.5rem 0.75rem 0.75rem 0.75rem;
gap: 0.875rem;
}
}
/* Time Display Styling */
.time-display-group {
display: flex;
align-items: center;
gap: 0.25rem;
}
.duration-display {
display: contents;
color: oklab(1 0 0 / 0.5);
}
media-current-time-display,
media-duration-display {
text-shadow: 0 1px 0 oklab(0 0 0 / 0.2);
font-variant-numeric: tabular-nums;
}
.button-group {
display: flex;
align-items: center;
gap: 0.375rem;
}
/* Generic Media Button Styling */
.button {
display: grid;
flex-shrink: 0;
padding: 0.625rem;
cursor: pointer;
background: transparent;
border: none;
border-radius: 0.375rem;
color: oklab(1 0 0);
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'] {
color: oklab(1 0 0 / 0.8);
text-decoration: none;
}
.button:focus-visible {
outline-color: oklab(1 0 0);
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.4));
}
/* 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: 4.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.1875rem;
}
/* Vertical track styles */
.slider-track[data-orientation='vertical'] {
width: 0.1875rem;
height: 100%;
}
.slider:focus-visible .slider-track {
outline-color: oklab(1 0 0);
outline-offset: 6px;
}
.slider-thumb {
width: 0.75rem;
height: 0.75rem;
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;
scale: 0.7;
transform-origin: center;
transition-property: opacity, scale;
transition-duration: 150ms;
transition-timing-function: ease-out;
}
.slider:hover .slider-thumb,
.slider:focus-within .slider-thumb {
opacity: 1;
scale: 1;
}
.slider-track[data-orientation='horizontal'] .slider-thumb {
cursor: ew-resize;
}
.slider-track[data-orientation='vertical'] .slider-thumb {
cursor: ns-resize;
}
.slider-pointer {
display: none;
}
.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.5rem;
margin: 0;
border: 0;
background: transparent;
}
/* Tooltip Component Styles */
media-tooltip {
margin: 0;
border: none;
box-shadow: none;
background: transparent;
color: oklab(1 0 0);
padding: 0.25rem 0.5rem;
border-radius: 0.25rem;
font-size: 0.75rem;
background-color: oklab(1 0 0 / 0.1);
backdrop-filter: blur(64px) brightness(0.9) saturate(1.5);
box-shadow:
0 4px 6px -1px oklab(0 0 0 / 0.1),
0 2px 4px -2px oklab(0 0 0 / 0.1);
}
@media (prefers-reduced-transparency: reduce) {
media-tooltip {
background-color: oklab(0 0 0 / 0.7);
}
}
@media (prefers-contrast: more) {
media-tooltip {
background-color: oklab(0 0 0 / 0.9);
}
}
.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;
}