UNPKG

shelving

Version:

Toolkit for using data in JavaScript.

106 lines (91 loc) 2.99 kB
@import "../style/base.css"; @layer components { .video { /* Identity */ --color-black: var(--video-color-black, inherit); --color-dark: var(--video-color-dark, inherit); --color-vivid: var(--video-color-vivid, inherit); --color-light: var(--video-color-light, inherit); --color-white: var(--video-color-white, inherit); /* Block */ aspect-ratio: 16 / 9; margin-inline: 0; margin-block: var(--video-spacing, var(--spacing-paragraph)); /* Contents */ display: flex; flex-direction: column; gap: var(--video-gap, var(--space-normal)); justify-content: center; align-items: center; position: relative; /* Style — videos use the high-contrast `black + white` pair (a video frame is its own visual * surface, so it sits outside the lighter component scale). */ background: var(--color-black); color: var(--color-white); overflow: hidden; border-radius: var(--video-radius, var(--radius-xsmall)); &:fullscreen { border-radius: 0; } } .buttons { position: absolute; top: var(--video-controls-offset-y, var(--space-normal)); right: var(--video-controls-offset-x, var(--space-normal)); display: flex; gap: var(--video-controls-gap, var(--space-small)); &.left { right: auto; left: var(--video-controls-offset-x, var(--space-normal)); } } .button { display: inline-flex; flex-direction: row; gap: var(--video-control-gap, var(--space-small)); height: var(--video-control-size, 3rem); min-width: var(--video-control-size, 3rem); padding-inline: var(--video-control-padding-x, var(--space-xsmall)); align-items: center; justify-content: center; border-radius: var(--video-control-radius, 100rem); border: var(--video-control-border, var(--stroke-normal)) solid transparent; color: var(--video-color-control-text, var(--color-black)); background: var(--video-color-control-bg, var(--color-white)); transition: box-shadow var(--duration-fast) ease-in-out, background-color var(--duration-fast) ease-in-out, border-color var(--duration-fast) ease-in-out; &:hover { box-shadow: var(--video-control-shadow-hover, var(--shadow-small)); background: var(--video-color-control-hover-bg, color-mix(in oklch, var(--color-dark) 20%, transparent)); } &:disabled { opacity: var(--video-control-disabled-opacity, 0.5); cursor: default; } &.danger { border-color: var(--video-color-danger-border, var(--vivid-red)); background: var(--video-color-danger-bg, var(--vivid-red)); color: var(--video-color-danger-text, var(--color-white)); } &.danger:hover { background: var(--video-color-danger-hover-bg, color-mix(in oklch, var(--vivid-red) 80%, white)); border-color: var(--video-color-danger-hover-border, color-mix(in oklch, var(--vivid-red) 80%, white)); } & svg { width: 1.5rem; height: 1.5rem; } } } @layer overrides { .video { &:first-child { margin-block-start: 0; } &:last-child { margin-block-end: 0; } } }