UNPKG

@vuetify/nightly

Version:

Vue Material Component Framework

322 lines (315 loc) • 8.79 kB
.v-video { display: flex; flex-direction: column; align-items: center; position: relative; --v-video-aspect-ratio: 1.7777777778; --v-video-controls-height: 58px; --v-video-controls-pill-border-radius: 99px; } .v-video--density-default { --v-video-controls-height: 58px; } .v-video--density-comfortable { --v-video-controls-height: 50px; } .v-video--density-compact { --v-video-controls-height: 42px; } .v-video__video { position: absolute; width: 100%; height: 100%; object-fit: cover; z-index: 0; } .v-video__video::-webkit-media-controls { display: none !important; } .v-video__video ~ * { z-index: 1; } .v-video__header { position: relative; opacity: 0; transition: opacity 0.6s ease-in-out; pointer-events: none; } .v-video__header > * { pointer-events: auto; } .v-video__content { position: relative; cursor: pointer; border-radius: inherit; z-index: 0; } .v-video__content { box-shadow: 0px 2px 4px -1px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, 0.2)), 0px 4px 5px 0px var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, 0.14)), 0px 1px 10px 0px var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, 0.12)); } .v-video:not(.v-video--idle) .v-video__content .v-video__overlay-fill, .v-video:not(.v-video--idle) .v-video__content .v-video__overlay-fill > * { pointer-events: none; } .v-video__overlay-fill { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; border-radius: inherit; } .v-video__overlay-fill > .v-img { position: absolute; border-radius: inherit; inset: 0; } .v-video:has(.v-video-controls:not(.v-video-controls--detached)) .v-video__content .v-video__overlay-fill { padding-bottom: var(--v-video-controls-height); } .v-video__center-icon.v-icon-btn { border: 5px solid currentColor; opacity: 0.6; transition-property: transform, opacity; transition-duration: 0.28s; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); } .v-video__content:hover .v-video__center-icon { transform: scale(1.05); opacity: 1; } .v-video-volume--inline { display: flex; align-items: center; } .v-video-volume__menu { background: rgb(var(--v-theme-surface)); color: rgb(var(--v-theme-on-surface)); overflow: hidden; display: flex; align-items: center; justify-content: center; } .v-video-volume__menu { border-color: rgba(var(--v-border-color), var(--v-border-opacity)); border-style: solid; border-width: thin; } .v-video-volume__menu--border { border-width: thin; box-shadow: none; } .v-video-volume__menu { box-shadow: 0px 3px 1px -2px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, 0.2)), 0px 2px 2px 0px var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, 0.14)), 0px 1px 5px 0px var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, 0.12)); } .v-video-volume__menu { border-radius: 4px; } .v-video-volume__menu:has(.v-input--horizontal) { height: 40px; } .v-video-volume__menu:has(.v-input--vertical) { width: 40px; } .v-video-volume__menu .v-slider.v-input--horizontal { margin: 0 16px; width: 100px; height: 40px; } .v-video-volume__menu .v-slider.v-input--vertical { margin: 16px 0; height: 100px; width: 40px; } .v-video-volume__menu .v-slider.v-input--vertical > .v-input__control { min-height: 50px; } .v-video__track { position: relative; z-index: 1; } .v-video__track.v-slider.v-input--horizontal > .v-input__control { min-height: 4px; } .v-video__track .v-slider-thumb:not(:hover) .v-slider-thumb__label { opacity: 0; transition-delay: 0.2s; } .v-video__track .v-slider-thumb__label { color: rgb(var(--v-theme-on-surface-variant)) !important; } .v-video__time { font-size: 0.875rem; line-height: 1; letter-spacing: 0.02em; } .v-video--variant-player { width: 100%; } .v-video--variant-player > .v-video__content { width: 100%; aspect-ratio: var(--v-video-aspect-ratio); } .v-video--variant-background { outline: none; position: absolute; inset: 0; pointer-events: none; } .v-video--variant-background > .v-video__content { width: 100%; height: 100%; } .v-video-controls { --v-background-opacity: 0.8; --v-video-controls-gap: 16px; --v-video-controls-pill-height: 42px; flex: 1 0 100%; align-self: stretch; padding: 8px; display: flex; align-items: center; position: relative; gap: var(--v-video-controls-gap); min-height: var(--v-video-controls-height); backdrop-filter: blur(5px); background-color: rgba(var(--v-theme-surface), var(--v-background-opacity)); color: rgb(var(--v-theme-on-surface)); width: 100%; opacity: 0; } .v-video-controls--density-default { --v-video-controls-gap: 16px; } .v-video-controls--density-comfortable { --v-video-controls-gap: 12px; } .v-video-controls--density-compact { --v-video-controls-gap: 8px; } .v-video-controls, .v-video-controls--pills > .v-video-control__pill { transition: 0.6s ease-in-out; transition-property: opacity, background-color; } .v-video-controls--pills > .v-video-control__pill { box-shadow: 0px 2px 4px -1px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, 0.2)), 0px 4px 5px 0px var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, 0.14)), 0px 1px 10px 0px var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, 0.12)); } .v-video-controls:hover { --v-background-opacity: 1; } .v-video-controls .v-video__track { width: auto; } .v-video-controls .v-video-control__pill { display: flex; align-items: center; gap: 8px; } .v-video-controls--pills { --v-background-opacity: 1; --v-video-controls-height: calc(var(--v-video-controls-pill-height) + 24px); backdrop-filter: none; pointer-events: none; } .v-video-controls--pills > * { pointer-events: auto; } .v-video-controls--pills:not(:empty) { background: transparent; } .v-video-controls--pills > .v-video-control__pill { backdrop-filter: blur(5px); background: rgba(var(--v-theme-surface), var(--v-background-opacity)); border-radius: var(--v-video-controls-pill-border-radius); min-height: var(--v-video-controls-pill-height); min-width: var(--v-video-controls-pill-height); padding: 0 6px; z-index: 1; } .v-video-controls--pills > .v-video-control__pill > .v-icon-btn { border-radius: inherit; } .v-video-controls--pills > .v-video-control__pill:empty { display: none; } .v-video-controls--pills > .v-video-control__pill:has(> *:only-child) { padding-inline: 0; justify-content: center; border-radius: var(--v-video-controls-pill-border-radius); } .v-video-controls--pills > .v-video__time { padding: 0 16px; } .v-video-controls--variant-tube .v-slider.v-video__track { position: absolute; top: -8px; left: 0; right: 0; } .v-video-controls--variant-tube .v-slider.v-video__track .v-slider-track { height: calc(var(--v-slider-track-size) + 10px); } .v-video-controls--variant-tube .v-slider.v-video__track .v-slider-track__fill { height: var(--v-slider-track-size); } .v-video-controls--split-time { padding-inline: 20px; } .v-video-controls:not(.v-video-controls--detached) { margin-top: calc(-1 * var(--v-video-controls-height)); } .v-video-controls:not(.v-video-controls--floating) { border-bottom-left-radius: inherit; border-bottom-right-radius: inherit; } .v-video-controls:not(.v-video-controls--floating):not(.v-video-controls--pills) { border-top: thin solid rgba(var(--v-theme-surface-variant), 0.2); } .v-video-controls--floating { --v-background-opacity: 1; border-radius: inherit; margin-inline: 12px; width: calc(100% - 2 * 12px); } .v-video-controls--floating:not(.v-video-controls--detached) { margin-top: calc(-1 * var(--v-video-controls-height) - 12px); margin-bottom: 12px; } .v-video-controls--detached { --v-background-opacity: 1; position: relative; margin-block-start: 12px; padding-inline: 12px; backdrop-filter: none; border-top: none; border-radius: inherit; opacity: 1; } .v-video-controls--detached:not(.v-video-controls--pills) { box-shadow: 0px 2px 4px -1px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, 0.2)), 0px 4px 5px 0px var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, 0.14)), 0px 1px 10px 0px var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, 0.12)); } .v-video:not(.v-video--playing) .v-video__header, .v-video:not(.v-video--playing) .v-video-controls, .v-video:hover .v-video__header, .v-video:hover .v-video-controls { opacity: 1; } .v-video--rounded { border-radius: 4px; } .v-video:fullscreen .v-video__content { min-height: 100% !important; min-width: 100% !important; } .v-video:fullscreen .v-video-controls { position: absolute; bottom: 0; z-index: 2147483647; } .v-video:fullscreen .v-video-controls--floating { bottom: 12px; } .poster-fade-out-leave-active { transition: opacity 1s linear 0.3s; } .poster-fade-out-leave-to { opacity: 0; }