vuetify
Version:
Vue Material Component Framework
134 lines • 3.73 kB
CSS
@layer vuetify-components {
.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 ;
}
.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;
border-radius: inherit;
z-index: 0;
}
.v-video__content {
box-shadow: 0px 1px 2px 0px rgba(var(--v-shadow-color), var(--v-shadow-key-opacity, 0.3)), 0px 2px 6px 2px rgba(var(--v-shadow-color), var(--v-shadow-ambient-opacity, 0.15));
--v-elevation-overlay: color-mix(in srgb, var(--v-elevation-overlay-color) 4%, transparent);
}
.v-video:not(.v-video--idle):not(.v-video--error) .v-video__content .v-video__overlay-fill, .v-video:not(.v-video--idle):not(.v-video--error) .v-video__content .v-video__overlay-fill > * {
pointer-events: none;
}
.v-video:not(.v-video--error) .v-video__content {
cursor: pointer;
}
.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;
transition-property: transform, opacity;
transition-duration: 0.28s;
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
}
.v-video__center-icon.v-icon-btn.v-video__center-icon--play {
opacity: 0.6;
}
.v-video__content:hover .v-video__center-icon--play {
transform: scale(1.05);
opacity: 1;
}
.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 .v-video-controls {
opacity: 0;
}
.v-video .v-video-controls:not(.v-video-controls--detached) {
margin-top: calc(-1 * var(--v-video-controls-height));
}
.v-video .v-video-controls--detached {
opacity: 1;
}
.v-video .v-video-controls--floating:not(.v-video-controls--detached) {
margin-top: calc(-1 * var(--v-video-controls-height) - 12px);
margin-bottom: 12px;
}
.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% ;
min-width: 100% ;
}
.poster-fade-out-leave-active {
transition: opacity 1s linear 0.3s;
}
.poster-fade-out-leave-to {
opacity: 0;
}
}