stremio-web/src/components/Video/styles.less
2025-10-30 18:21:40 +02:00

245 lines
No EOL
6.5 KiB
Text

// Copyright (C) 2017-2023 Smart code 203358507
@import (reference) '~@stremio/stremio-colors/less/stremio-colors.less';
@import (reference) '~stremio/common/screen-sizes.less';
:import('~stremio/components/Popup/styles.less') {
context-menu-container: menu-container;
menu-direction-top-left: menu-direction-top-left;
menu-direction-bottom-left: menu-direction-bottom-left;
menu-direction-top-right: menu-direction-top-right;
menu-direction-bottom-right: menu-direction-bottom-right;
}
.video-container {
display: flex;
flex-direction: row;
flex-wrap: wrap;
align-items: center;
padding: 0.5rem;
margin-bottom: 0.5rem;
border-radius: var(--border-radius);
@supports (scroll-margin: 1.25rem) {
scroll-margin: 1.25rem;
}
&:hover,
&:focus,
&:global(.active) {
background-color: var(--overlay-color);
}
.thumbnail-container {
flex: none;
position: relative;
border-radius: 0.3rem;
overflow: hidden;
.thumbnail {
pointer-events: none;
display: block;
height: 5rem;
width: 8rem;
object-fit: cover;
object-position: center;
opacity: 0.9;
background-color: var(--overlay-color);
&.blurred {
filter: blur(0.5rem);
-webkit-filter: blur(0.5rem);
}
}
.placeholder-icon {
display: block;
height: 5rem;
width: 8rem;
padding: 1rem;
color: var(--primary-foreground-color);
background-color: var(--overlay-color);
opacity: 0.25;
}
.progress-bar-container {
position: absolute;
bottom: 0.5rem;
left: 0.5rem;
right: 0.5rem;
border-radius: var(--border-radius);
.progress-bar {
z-index: 1;
position: relative;
height: 0.4rem;
background-color: var(--primary-accent-color);
}
.progress-bar-background {
z-index: 0;
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
background-color: var(--primary-foreground-color);
opacity: 0.2;
}
}
}
.info-container {
flex: 1;
align-self: stretch;
display: flex;
flex-direction: column;
justify-content: center;
padding: 0 0.5rem 0 1.5rem;
.title-container {
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
margin-bottom: 1rem;
color: var(--primary-foreground-color);
}
.flex-row-container {
display: flex;
flex-direction: row;
align-items: center;
justify-content: flex-end;
.released-container {
flex: 1;
margin-right: 0.5rem;
padding: 0.2rem 0;
font-size: 0.8rem;
font-weight: 500;
white-space: nowrap;
text-overflow: ellipsis;
color: var(--primary-foreground-color);
opacity: 0.44;
}
.upcoming-watched-container {
flex: 0 1 auto;
display: flex;
flex-direction: row;
align-items: center;
height: 1.6rem;
border-radius: 0.3rem;
&>:nth-child(2) {
margin-left: 0.5rem;
}
.upcoming-container,
.watched-container {
flex: none;
display: flex;
align-items: center;
height: 100%;
padding: 0 0.5rem;
max-width: 10rem;
&:not(:only-child) {
max-width: 5rem;
}
.flag-icon {
height: 1.15rem;
width: 1.15rem;
margin-right: 0.25rem;
color: var(--secondary-foreground-color);
}
.flag-label {
font-size: 0.8rem;
font-weight: 800;
white-space: nowrap;
text-overflow: ellipsis;
text-transform: uppercase;
color: var(--secondary-foreground-color);
}
}
.upcoming-container {
background-color: var(--secondary-accent-color);
}
.watched-container {
background-color: var(--tertiary-accent-color);
}
}
}
}
&.selected {
animation: border 3s ease-in-out forwards;
}
@keyframes border {
0% {
border: 0.15rem solid var(--primary-accent-color);
}
100% {
border: 0.15rem solid transparent;
}
}
.context-menu-container {
max-width: calc(90% - 1.5rem);
z-index: 2;
.context-menu-content {
--spatial-navigation-contain: contain;
.context-menu-option-container {
display: flex;
flex-direction: row;
align-items: center;
padding: 1rem 1.5rem;
&:hover,
&:focus {
background-color: var(--overlay-color);
}
.context-menu-option-label {
font-size: 1rem;
font-weight: 500;
color:var(--primary-foreground-color);
}
}
}
}
}
@media only screen and (max-width: @minimum) {
.video-container {
.context-menu-container {
&.menu-direction-top-left,
&.menu-direction-bottom-left {
right: 1.5rem;
}
&.menu-direction-top-right,
&.menu-direction-bottom-right {
left: 1.5rem;
}
&.menu-direction-top-left,
&.menu-direction-top-right {
bottom: 90%;
}
&.menu-direction-bottom-left,
&.menu-direction-bottom-right {
top: 90%;
}
}
}
}