mirror of
https://gitlab.com/futo-org/fcast.git
synced 2025-06-24 21:25:23 +00:00
737 lines
14 KiB
CSS
737 lines
14 KiB
CSS
html {
|
|
margin: 0;
|
|
padding: 0;
|
|
overflow: hidden;
|
|
}
|
|
|
|
body {
|
|
margin: 0;
|
|
padding: 0;
|
|
background-color: black;
|
|
color: white;
|
|
width: 100vw;
|
|
max-width: 100%;
|
|
height: 100vh;
|
|
max-height: 100%;
|
|
}
|
|
|
|
#title-icon {
|
|
position: absolute;
|
|
left: 50%;
|
|
top: 50%;
|
|
transform: translate(-50%, -50%);
|
|
|
|
background-image: url(../assets/icons/app/icon.svg);
|
|
background-size: cover;
|
|
}
|
|
|
|
.lds-ring {
|
|
display: block;
|
|
position: absolute;
|
|
left: 50%;
|
|
top: 50%;
|
|
transform: translate(-50%, -50%);
|
|
}
|
|
.lds-ring div {
|
|
box-sizing: border-box;
|
|
display: block;
|
|
position: absolute;
|
|
margin: 8px;
|
|
border: 8px solid #fff;
|
|
border-radius: 50%;
|
|
animation: lds-ring 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite;
|
|
border-color: #fff transparent transparent transparent;
|
|
}
|
|
.lds-ring div:nth-child(1) {
|
|
animation-delay: -0.45s;
|
|
}
|
|
.lds-ring div:nth-child(2) {
|
|
animation-delay: -0.3s;
|
|
}
|
|
.lds-ring div:nth-child(3) {
|
|
animation-delay: -0.15s;
|
|
}
|
|
@keyframes lds-ring {
|
|
0% {
|
|
transform: rotate(0deg);
|
|
}
|
|
100% {
|
|
transform: rotate(360deg);
|
|
}
|
|
}
|
|
|
|
#idle-background {
|
|
width: 100%;
|
|
height: 100%;
|
|
background-color: black;
|
|
}
|
|
|
|
#thumbnailImage {
|
|
position: absolute;
|
|
left: 50%;
|
|
top: 50%;
|
|
transform: translate(-50%, -50%);
|
|
|
|
object-fit: contain;
|
|
width: 100%;
|
|
height: 100%;
|
|
}
|
|
|
|
#videoPlayer {
|
|
object-fit: contain;
|
|
width: 100%;
|
|
height: 100%;
|
|
}
|
|
|
|
*:focus {
|
|
outline: none;
|
|
box-shadow: none;
|
|
}
|
|
|
|
.container {
|
|
position: absolute;
|
|
bottom: 0px;
|
|
|
|
/* height: 100%; */
|
|
height: 120px;
|
|
width: 100%;
|
|
/* background: linear-gradient(to top, rgba(0, 0, 0, 0.8) 0%, rgba(0, 0, 0, 0) 100%); */
|
|
background: linear-gradient(to top, rgba(0, 0, 0, 0.8) 0%, rgba(0, 0, 0, 0.0) 35%);
|
|
|
|
background-size: 100% 300px;
|
|
background-repeat: no-repeat;
|
|
background-position: bottom;
|
|
|
|
opacity: 1;
|
|
transition: opacity 0.1s ease-in-out;
|
|
}
|
|
|
|
.iconSize {
|
|
width: 24px;
|
|
height: 24px;
|
|
}
|
|
|
|
.volumeContainer {
|
|
position: relative;
|
|
height: 24px;
|
|
width: 92px;
|
|
flex-shrink: 0;
|
|
user-select: none;
|
|
}
|
|
|
|
.volumeBar {
|
|
position: absolute;
|
|
/* left: 12px; */
|
|
left: 8px;
|
|
top: 10px;
|
|
height: 4px;
|
|
/* width: 72px; */
|
|
width: 76px;
|
|
background-color: #999999;
|
|
border-radius: 3px;
|
|
pointer-events: none;
|
|
}
|
|
|
|
.volumeBarInteractiveArea {
|
|
position: absolute;
|
|
left: 0px;
|
|
/* left: 8px; */
|
|
top: 0px;
|
|
height: 24px;
|
|
width: 92px;
|
|
/* width: 84px; */
|
|
cursor: pointer;
|
|
}
|
|
|
|
.volumeBarHandle {
|
|
position: absolute;
|
|
left: 84px;
|
|
top: 4px;
|
|
width: 16px;
|
|
height: 16px;
|
|
/* background-color: #ffffff; */
|
|
background-color: #c9c9c9;
|
|
box-shadow: 0px 32px 64px 0px rgba(0, 0, 0, 0.56), 0px 2px 21px 0px rgba(0, 0, 0, 0.55);
|
|
border-radius: 50%;
|
|
pointer-events: none;
|
|
z-index: 10;
|
|
}
|
|
|
|
.volumeBarProgress {
|
|
position: absolute;
|
|
/* left: 12px; */
|
|
left: 8px;
|
|
top: 10px;
|
|
height: 4px;
|
|
width: 76px;
|
|
/* background-color: #ffffff; */
|
|
background-color: #c9c9c9;
|
|
border-radius: 3px;
|
|
pointer-events: none;
|
|
}
|
|
|
|
.progressBarContainer {
|
|
position: absolute;
|
|
bottom: 60px;
|
|
left: 16px;
|
|
right: 16px;
|
|
height: 4px;
|
|
padding-top: 10px;
|
|
padding-bottom: 10px;
|
|
border-radius: 3px;
|
|
cursor: pointer;
|
|
user-select: none;
|
|
}
|
|
|
|
.progressBarInteractiveArea {
|
|
position: absolute;
|
|
/* bottom: 60px; */
|
|
/* left: 24px; */
|
|
/* right: 24px; */
|
|
height: 4px;
|
|
width: 100%;
|
|
left: 0px;
|
|
bottom: 0px;
|
|
|
|
padding-top: 10px;
|
|
padding-bottom: 10px;
|
|
border-radius: 3px;
|
|
cursor: pointer;
|
|
z-index: 999;
|
|
}
|
|
.progressBarChapterContainer {
|
|
position: absolute;
|
|
bottom: 73px;
|
|
left: 24px;
|
|
right: 24px;
|
|
height: 4px;
|
|
border-radius: 3px;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.progressBar {
|
|
/* position: absolute; */
|
|
position: relative;
|
|
/* bottom: 70px; */
|
|
/* left: 24px; */
|
|
/* right: 24px; */
|
|
left: 8px;
|
|
width: calc(100% - 16px);
|
|
height: 4px;
|
|
background-color: #99999945;
|
|
border-radius: 3px;
|
|
pointer-events: none;
|
|
}
|
|
|
|
.progressBarBuffer {
|
|
/* position: absolute; */
|
|
position: relative;
|
|
/* bottom: 70px; */
|
|
/* left: 24px; */
|
|
left: 8px;
|
|
bottom: 4px;
|
|
height: 4px;
|
|
background-color: #D9D9D945;
|
|
border-radius: 3px;
|
|
pointer-events: none;
|
|
}
|
|
|
|
.progressBarProgress {
|
|
/* position: absolute; */
|
|
position: relative;
|
|
/* bottom: 70px; */
|
|
/* left: 24px; */
|
|
left: 8px;
|
|
bottom: 8px;
|
|
height: 4px;
|
|
width: 0px;
|
|
background-color: #019BE7;
|
|
border-radius: 3px;
|
|
pointer-events: none;
|
|
}
|
|
|
|
.progressBarPosition {
|
|
display: none;
|
|
position: absolute;
|
|
bottom: 25px;
|
|
padding: 2px 5px;
|
|
|
|
font-family: InterVariable;
|
|
font-size: 16px;
|
|
font-style: normal;
|
|
font-weight: 400;
|
|
|
|
border-radius: 3px;
|
|
background-color: rgba(0, 0, 0, 0.5);
|
|
}
|
|
|
|
.progressBarHandle {
|
|
position: absolute;
|
|
/* bottom: 70px; */
|
|
bottom: 10px;
|
|
width: 20px;
|
|
height: 20px;
|
|
margin-left: -8px;
|
|
margin-bottom: -8px;
|
|
background-color: #019BE7;
|
|
border-radius: 50%;
|
|
pointer-events: none;
|
|
z-index: 10;
|
|
}
|
|
|
|
.positionContainer {
|
|
display: flex;
|
|
flex-direction: row;
|
|
flex-grow: 1;
|
|
align-items: center;
|
|
|
|
font-family: InterVariable;
|
|
font-size: 16px;
|
|
font-style: normal;
|
|
font-weight: 400;
|
|
|
|
user-select: text;
|
|
}
|
|
|
|
|
|
.position {
|
|
margin-right: 10px;
|
|
vertical-align: bottom;
|
|
|
|
color: #c9c9c9;
|
|
}
|
|
|
|
.duration {
|
|
opacity: 0.6;
|
|
|
|
color: #c9c9c9;
|
|
}
|
|
|
|
.liveBadge {
|
|
background-color: red;
|
|
/* margin-top: -2px; */
|
|
/* padding: 5px 5px; */
|
|
padding: 2px 5px;
|
|
border-radius: 4px;
|
|
/* margin-left: 10px; */
|
|
margin-right: 10px;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.play {
|
|
cursor: pointer;
|
|
flex-shrink: 0;
|
|
|
|
background-image: url("../assets/icons/player/icon24_play.svg");
|
|
transition: background-image 0.1s ease-in-out;
|
|
}
|
|
|
|
.play:hover {
|
|
background-image: url("../assets/icons/player/icon24_play_active.svg");
|
|
}
|
|
|
|
.pause {
|
|
cursor: pointer;
|
|
flex-shrink: 0;
|
|
|
|
background-image: url("../assets/icons/player/icon24_pause.svg");
|
|
transition: background-image 0.1s ease-in-out;
|
|
}
|
|
|
|
.pause:hover {
|
|
background-image: url("../assets/icons/player/icon24_pause_active.svg");
|
|
}
|
|
|
|
.playPrevious {
|
|
cursor: pointer;
|
|
flex-shrink: 0;
|
|
|
|
background-image: url("../assets/icons/player/icon24_play_previous.svg");
|
|
transition: background-image 0.1s ease-in-out;
|
|
}
|
|
|
|
.playPrevious:hover {
|
|
background-image: url("../assets/icons/player/icon24_play_previous_active.svg");
|
|
}
|
|
|
|
.playNext {
|
|
cursor: pointer;
|
|
flex-shrink: 0;
|
|
|
|
background-image: url("../assets/icons/player/icon24_play_next.svg");
|
|
transition: background-image 0.1s ease-in-out;
|
|
}
|
|
|
|
.playNext:hover {
|
|
background-image: url("../assets/icons/player/icon24_play_next_active.svg");
|
|
}
|
|
|
|
.volume_high {
|
|
cursor: pointer;
|
|
flex-shrink: 0;
|
|
|
|
background-image: url("../assets/icons/player/icon24_volume_more_50pct.svg");
|
|
transition: background-image 0.1s ease-in-out;
|
|
}
|
|
|
|
.volume_high:hover {
|
|
background-image: url("../assets/icons/player/icon24_volume_more_50pct_active.svg");
|
|
}
|
|
|
|
.volume_low {
|
|
cursor: pointer;
|
|
flex-shrink: 0;
|
|
|
|
background-image: url("../assets/icons/player/icon24_volume_less_50pct.svg");
|
|
transition: background-image 0.1s ease-in-out;
|
|
}
|
|
|
|
.volume_low:hover {
|
|
background-image: url("../assets/icons/player/icon24_volume_less_50pct_active.svg");
|
|
}
|
|
|
|
.mute {
|
|
cursor: pointer;
|
|
flex-shrink: 0;
|
|
|
|
background-image: url("../assets/icons/player/icon24_mute.svg");
|
|
transition: background-image 0.1s ease-in-out;
|
|
}
|
|
|
|
.mute:hover {
|
|
background-image: url("../assets/icons/player/icon24_mute_active.svg");
|
|
}
|
|
|
|
.speed {
|
|
cursor: pointer;
|
|
|
|
background-image: url("../assets/icons/player/icon24_speed.svg");
|
|
transition: background-image 0.1s ease-in-out;
|
|
}
|
|
|
|
.speed:hover {
|
|
background-image: url("../assets/icons/player/icon24_speed_active.svg");
|
|
}
|
|
|
|
.captions_off {
|
|
cursor: pointer;
|
|
|
|
background-image: url("../assets/icons/player/icon24_cc_off.svg");
|
|
transition: background-image 0.1s ease-in-out;
|
|
}
|
|
|
|
.captions_off:hover {
|
|
background-image: url("../assets/icons/player/icon24_cc_off_active.svg");
|
|
}
|
|
|
|
.captions_on {
|
|
cursor: pointer;
|
|
|
|
background-image: url("../assets/icons/player/icon24_cc_on.svg");
|
|
transition: background-image 0.1s ease-in-out;
|
|
}
|
|
|
|
.captions_on:hover {
|
|
background-image: url("../assets/icons/player/icon24_cc_on_active.svg");
|
|
}
|
|
|
|
.leftButtonContainer {
|
|
position: absolute;
|
|
bottom: 24px;
|
|
left: 24px;
|
|
height: 24px;
|
|
/* width: calc(50% - 24px); */
|
|
right: 160px;
|
|
|
|
display: flex;
|
|
flex-direction: row;
|
|
align-items: center;
|
|
gap: 24px;
|
|
overflow: hidden;
|
|
|
|
user-select: none;
|
|
}
|
|
|
|
.buttonContainer {
|
|
position: absolute;
|
|
bottom: 24px;
|
|
right: 24px;
|
|
height: 24px;
|
|
/* width: calc(50% - 24px); */
|
|
align-items: center;
|
|
overflow: hidden;
|
|
|
|
display: flex;
|
|
flex-direction: row-reverse;
|
|
gap: 24px;
|
|
}
|
|
|
|
.captionsContainer {
|
|
/* display: none; */
|
|
position: relative;
|
|
/* top: -200px; */
|
|
bottom: 160px;
|
|
margin: auto;
|
|
text-align: center;
|
|
|
|
font-family: InterVariable;
|
|
font-size: 28px;
|
|
font-style: normal;
|
|
font-weight: 400;
|
|
|
|
background-color: rgba(0, 0, 0, 0.5);
|
|
padding: 0px 5px;
|
|
|
|
width: fit-content;
|
|
user-select: none;
|
|
/* transition: bottom 0.2s ease-in-out; */
|
|
}
|
|
|
|
.speedMenu {
|
|
position: absolute;
|
|
bottom: 80px;
|
|
right: 60px;
|
|
max-height: 368px;
|
|
|
|
background-color: #141414;
|
|
padding: 8px;
|
|
border-radius: 10px;
|
|
border: 1px solid #2E2E2E;
|
|
scrollbar-width: thin;
|
|
overflow: auto;
|
|
|
|
font-family: InterVariable;
|
|
font-size: 16px;
|
|
font-style: normal;
|
|
font-weight: 400;
|
|
|
|
box-shadow: 0px 1.852px 3.148px 0px rgba(0, 0, 0, 0.06), 0px 8.148px 6.519px 0px rgba(0, 0, 0, 0.10), 0px 20px 13px 0px rgba(0, 0, 0, 0.13), 0px 38.519px 25.481px 0px rgba(0, 0, 0, 0.15), 0px 64.815px 46.852px 0px rgba(0, 0, 0, 0.19), 0px 100px 80px 0px rgba(0, 0, 0, 0.25);
|
|
}
|
|
|
|
.speedMenuTitle {
|
|
font-weight: 700;
|
|
line-height: 24px;
|
|
margin: 10px;
|
|
user-select: none;
|
|
}
|
|
|
|
.speedMenuEntry {
|
|
display: flex;
|
|
padding: 5px 10px;
|
|
user-select: none;
|
|
}
|
|
|
|
.speedMenuEntry:hover {
|
|
cursor: pointer;
|
|
background-color: rgba(255, 255, 255, 0.1);
|
|
}
|
|
|
|
.speedMenuSeparator {
|
|
height: 1px;
|
|
background: #2E2E2E;
|
|
margin-top: 3px;
|
|
margin-bottom: 3px;
|
|
}
|
|
|
|
.speedMenuEntryEnabled {
|
|
width: 20px;
|
|
height: 20px;
|
|
margin-right: 10px;
|
|
|
|
background-image: url("../assets/icons/player/icon24_check_thin.svg");
|
|
background-size: cover;
|
|
opacity: 0;
|
|
}
|
|
|
|
#toast-notification {
|
|
display: flex;
|
|
flex-direction: row;
|
|
align-items: center;
|
|
padding: 16px 20px;
|
|
|
|
position: relative;
|
|
top: calc(-100% + 20px);
|
|
margin: auto;
|
|
max-width: 25%;
|
|
width: fit-content;
|
|
|
|
background: rgba(0, 0, 0, 0.7);
|
|
border: 3px solid rgba(255, 255, 255, 0.08);
|
|
box-shadow: 0px 100px 80px rgba(0, 0, 0, 0.33), 0px 64.8148px 46.8519px rgba(0, 0, 0, 0.250556), 0px 38.5185px 25.4815px rgba(0, 0, 0, 0.200444), 0px 20px 13px rgba(0, 0, 0, 0.165), 0px 8.14815px 6.51852px rgba(0, 0, 0, 0.129556), 0px 1.85185px 3.14815px rgba(0, 0, 0, 0.0794444);
|
|
border-radius: 12px;
|
|
opacity: 0;
|
|
}
|
|
|
|
#toast-icon {
|
|
width: 88px;
|
|
height: 88px;
|
|
background-image: url(../assets/icons/app/info.svg);
|
|
background-size: cover;
|
|
filter: grayscale(0.5);
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
#toast-text {
|
|
display: -webkit-box;
|
|
-webkit-line-clamp: 4;
|
|
-webkit-box-orient: vertical;
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
word-break: break-word;
|
|
margin-right: 5px;
|
|
|
|
font-family: InterVariable;
|
|
font-size: 28px;
|
|
font-style: normal;
|
|
font-weight: 400;
|
|
}
|
|
|
|
.toast-fade-in {
|
|
animation: toast-fade-in 1.0s cubic-bezier(0.5, 0, 0.5, 1) 1;
|
|
}
|
|
|
|
.toast-fade-out {
|
|
animation: toast-fade-out 1.0s cubic-bezier(0.5, 0, 0.5, 1) 1;
|
|
}
|
|
|
|
@keyframes toast-fade-in {
|
|
0% {
|
|
opacity: 0;
|
|
}
|
|
100% {
|
|
opacity: 1;
|
|
}
|
|
}
|
|
|
|
@keyframes toast-fade-out {
|
|
0% {
|
|
opacity: 1;
|
|
}
|
|
100% {
|
|
opacity: 0;
|
|
}
|
|
}
|
|
|
|
/* Display scaling (Minimum supported resolution is 960x540) */
|
|
@media only screen and ((min-width: 2560px) or (min-height: 1440px)) {
|
|
#title-icon {
|
|
width: 164px;
|
|
height: 164px;
|
|
}
|
|
|
|
.lds-ring {
|
|
width: 140px;
|
|
height: 140px;
|
|
}
|
|
.lds-ring div {
|
|
width: 124px;
|
|
height: 124px;
|
|
}
|
|
|
|
#toast-notification {
|
|
padding: 12px;
|
|
}
|
|
|
|
#toast-icon {
|
|
width: 70px;
|
|
height: 70px;
|
|
margin: 5px 10px;
|
|
margin-right: 15px;
|
|
}
|
|
|
|
#toast-text {
|
|
font-size: 28px;
|
|
}
|
|
}
|
|
|
|
@media only screen and ((max-width: 2559px) or (max-height: 1439px)) {
|
|
#title-icon {
|
|
width: 124px;
|
|
height: 124px;
|
|
}
|
|
|
|
.lds-ring {
|
|
width: 120px;
|
|
height: 120px;
|
|
}
|
|
.lds-ring div {
|
|
width: 104px;
|
|
height: 104px;
|
|
}
|
|
|
|
#toast-notification {
|
|
padding: 12px;
|
|
}
|
|
|
|
#toast-icon {
|
|
width: 60px;
|
|
height: 60px;
|
|
margin: 5px 5px;
|
|
margin-right: 10px;
|
|
}
|
|
|
|
#toast-text {
|
|
font-size: 22px;
|
|
}
|
|
}
|
|
|
|
@media only screen and ((max-width: 1919px) or (max-height: 1079px)) {
|
|
#title-icon {
|
|
width: 84px;
|
|
height: 84px;
|
|
}
|
|
|
|
.lds-ring {
|
|
width: 100px;
|
|
height: 100px;
|
|
}
|
|
.lds-ring div {
|
|
width: 84px;
|
|
height: 84px;
|
|
}
|
|
|
|
#toast-notification {
|
|
padding: 8px;
|
|
}
|
|
|
|
#toast-icon {
|
|
width: 40px;
|
|
height: 40px;
|
|
margin: 5px 5px;
|
|
margin-right: 10px;
|
|
}
|
|
|
|
#toast-text {
|
|
font-size: 16px;
|
|
}
|
|
}
|
|
|
|
@media only screen and ((max-width: 1279px) or (max-height: 719px)) {
|
|
#title-icon {
|
|
width: 64px;
|
|
height: 64px;
|
|
}
|
|
|
|
.lds-ring {
|
|
width: 80px;
|
|
height: 80px;
|
|
}
|
|
.lds-ring div {
|
|
width: 64px;
|
|
height: 64px;
|
|
}
|
|
|
|
#toast-notification {
|
|
padding: 4px;
|
|
}
|
|
|
|
#toast-icon {
|
|
width: 32px;
|
|
height: 32px;
|
|
margin: 5px 5px;
|
|
}
|
|
|
|
#toast-text {
|
|
font-size: 14px;
|
|
}
|
|
}
|