mirror of
https://github.com/jellyfin/jellyfin-web.git
synced 2024-11-18 11:28:23 -07:00
657 lines
11 KiB
CSS
657 lines
11 KiB
CSS
button::-moz-focus-inner {
|
|
padding: 0;
|
|
border: 0;
|
|
}
|
|
|
|
button {
|
|
-webkit-border-fit: border !important;
|
|
}
|
|
|
|
.card {
|
|
border: 0;
|
|
font-size: inherit !important;
|
|
font-family: inherit !important;
|
|
text-transform: none;
|
|
background-color: transparent !important;
|
|
background: none !important;
|
|
margin: 0;
|
|
padding: 0;
|
|
display: block;
|
|
color: inherit !important;
|
|
outline: none !important;
|
|
cursor: pointer;
|
|
contain: style;
|
|
flex-shrink: 0;
|
|
font-weight: inherit !important;
|
|
}
|
|
|
|
.itemsContainer {
|
|
display: flex;
|
|
}
|
|
|
|
.vertical-list {
|
|
display: flex;
|
|
flex-direction: column;
|
|
flex-wrap: nowrap;
|
|
}
|
|
|
|
.vertical-wrap {
|
|
display: flex;
|
|
flex-direction: row;
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
.vertical-wrap.centered {
|
|
justify-content: center;
|
|
}
|
|
|
|
.vertical-wrap > .card {
|
|
contain: layout style;
|
|
}
|
|
|
|
.cardScalable {
|
|
position: relative;
|
|
}
|
|
|
|
.cardPadder-backdrop, .cardPadder-smallBackdrop, .cardPadder-overflowBackdrop, .cardPadder-overflowSmallBackdrop {
|
|
padding-bottom: 56.25%;
|
|
}
|
|
|
|
.cardPadder-square, .cardPadder-overflowSquare {
|
|
padding-bottom: 100%;
|
|
}
|
|
|
|
.cardPadder-portrait, .cardPadder-overflowPortrait {
|
|
padding-bottom: 150%;
|
|
}
|
|
|
|
.cardPadder-banner {
|
|
padding-bottom: 18.5%;
|
|
}
|
|
|
|
.cardBox {
|
|
padding: 0 !important;
|
|
margin: 2px;
|
|
transition: none;
|
|
border: 3px solid transparent;
|
|
/* Needed in case cardBox is a button */
|
|
background-color: transparent;
|
|
}
|
|
|
|
.cardBox-focustransform {
|
|
will-change: transform;
|
|
}
|
|
|
|
.cardBox-focustransform-transition {
|
|
will-change: transform;
|
|
transition: transform 200ms ease-out;
|
|
}
|
|
|
|
.card-focusscale:focus > .cardBox-focustransform {
|
|
transform: scale(1.16, 1.16);
|
|
}
|
|
|
|
.card:focus {
|
|
position: relative !important;
|
|
z-index: 10 !important;
|
|
font-weight: inherit !important;
|
|
}
|
|
|
|
.card:focus .cardBox {
|
|
border-color: transparent;
|
|
}
|
|
|
|
.cardBox-bottompadded {
|
|
margin-bottom: 1em;
|
|
}
|
|
|
|
.btnCardOptions {
|
|
position: absolute;
|
|
bottom: .25em;
|
|
right: 0;
|
|
margin: 0 !important;
|
|
z-index: 1;
|
|
}
|
|
|
|
.mediaSourceIndicator {
|
|
display: flex;
|
|
position: absolute;
|
|
align-items: center;
|
|
justify-content: center;
|
|
top: .3em;
|
|
left: .3em;
|
|
text-align: center;
|
|
vertical-align: middle;
|
|
width: 24px;
|
|
height: 24px;
|
|
border-radius: 50%;
|
|
color: #fff;
|
|
background: rgb(51, 136, 204);
|
|
}
|
|
|
|
.cardImageContainer {
|
|
background-size: contain;
|
|
background-repeat: no-repeat;
|
|
background-position: center center;
|
|
display: -webkit-flex;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
position: relative;
|
|
background-clip: content-box !important;
|
|
color: #fff;
|
|
/* This is only needed for scalable cards */
|
|
height: 100%;
|
|
}
|
|
|
|
.chapterCardImageContainer {
|
|
background-color: #000;
|
|
border-radius: 0;
|
|
}
|
|
|
|
.cardImageContainer-button {
|
|
border: 0;
|
|
padding: 0;
|
|
background-color: transparent;
|
|
box-sizing: content-box;
|
|
outline: none !important;
|
|
cursor: pointer;
|
|
}
|
|
|
|
/* Used by non-scalable cards */
|
|
.forceRelative {
|
|
position: relative;
|
|
}
|
|
|
|
.cardContent {
|
|
overflow: hidden;
|
|
position: absolute;
|
|
top: 0;
|
|
left: 0;
|
|
right: 0;
|
|
bottom: 0;
|
|
/* Needed in case this is a button */
|
|
display: block;
|
|
/* Needed in safari */
|
|
height: 100%;
|
|
}
|
|
|
|
.cardImage {
|
|
position: absolute;
|
|
top: 0;
|
|
left: 0;
|
|
right: 0;
|
|
bottom: 0;
|
|
background-size: contain;
|
|
background-repeat: no-repeat;
|
|
background-position: center bottom;
|
|
}
|
|
|
|
.cardImage-img {
|
|
max-height: 100%;
|
|
max-width: 100%;
|
|
/* This is simply for lazy image purposes, to ensure the image is visible sooner when scrolling */
|
|
min-height: 70%;
|
|
min-width: 70%;
|
|
margin: auto;
|
|
}
|
|
|
|
.coveredImage-img {
|
|
width: 100%;
|
|
height: 100%;
|
|
}
|
|
|
|
.coveredImage-noscale-img {
|
|
max-height: none;
|
|
max-width: none;
|
|
}
|
|
|
|
.coveredImage {
|
|
background-size: 100% 100%;
|
|
background-position: center center;
|
|
}
|
|
|
|
.coveredImage-noScale {
|
|
background-size: cover;
|
|
}
|
|
|
|
.cardFooter {
|
|
padding: .5em .3em;
|
|
position: relative;
|
|
}
|
|
|
|
.visualCardBox-cardScalable, .visualCardBox-cardFooter {
|
|
background-color: #222326;
|
|
}
|
|
|
|
.visualCardBox-cardFooter {
|
|
border-bottom-left-radius: 1px;
|
|
border-bottom-right-radius: 1px;
|
|
}
|
|
|
|
.innerCardFooter {
|
|
background: rgba(0,0,0,.7);
|
|
position: absolute;
|
|
bottom: 0;
|
|
left: 0;
|
|
text-align: left;
|
|
z-index: 1;
|
|
overflow: hidden;
|
|
max-width: 100%;
|
|
color: #fff;
|
|
}
|
|
|
|
.innerCardFooterClear {
|
|
background-color: transparent;
|
|
}
|
|
|
|
.fullInnerCardFooter {
|
|
right: 0;
|
|
}
|
|
|
|
.cardText {
|
|
padding: .35em .5em;
|
|
white-space: nowrap;
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
color: inherit;
|
|
text-align: left;
|
|
}
|
|
|
|
.singleCardText {
|
|
padding: .5em;
|
|
}
|
|
|
|
.cardTextCentered {
|
|
text-align: center;
|
|
}
|
|
|
|
.cardText-secondary {
|
|
opacity: .6;
|
|
}
|
|
|
|
.cardText-rightmargin {
|
|
margin-right: 2em;
|
|
}
|
|
|
|
.cardDefaultText {
|
|
white-space: normal;
|
|
text-align: center;
|
|
}
|
|
|
|
.textActionButton {
|
|
border: 0 !important;
|
|
background: transparent;
|
|
border: 0 !important;
|
|
padding: 0 !important;
|
|
cursor: pointer;
|
|
outline: none !important;
|
|
color: inherit;
|
|
vertical-align: middle;
|
|
font-family: inherit;
|
|
font-size: inherit;
|
|
/*display: flex;
|
|
align-items: center;
|
|
justify-content: center;*/
|
|
}
|
|
|
|
.textActionButton:hover {
|
|
text-decoration: underline;
|
|
opacity: 1;
|
|
}
|
|
|
|
.cardFooterLogo {
|
|
margin-right: 1em;
|
|
}
|
|
|
|
.cardImageIcon {
|
|
width: 12vh;
|
|
height: 12vh;
|
|
font-size: 12vh;
|
|
color: #fff;
|
|
}
|
|
|
|
.cardIndicators {
|
|
right: 2.5%;
|
|
top: 2.5%;
|
|
position: absolute;
|
|
display: flex;
|
|
align-items: center;
|
|
}
|
|
|
|
.portraitCardIndicators {
|
|
right: 3%;
|
|
top: 2%;
|
|
}
|
|
|
|
.backdropCardIndicators {
|
|
right: 1.5%;
|
|
top: 2.8%;
|
|
}
|
|
|
|
.cardOverlayButton {
|
|
color: #fff !important;
|
|
background-color: rgba(0,0,0,.8) !important;
|
|
border-radius: 500px;
|
|
position: absolute;
|
|
bottom: 0;
|
|
right: 0;
|
|
margin: 0 .35em .5em 0;
|
|
z-index: 1;
|
|
padding: 6px;
|
|
/*opacity: 0;
|
|
transition: opacity 0.5s ease-in; */
|
|
}
|
|
|
|
/*.card:hover .cardOverlayButton {
|
|
opacity: 1;
|
|
}*/
|
|
|
|
.cardOverlayButton:hover {
|
|
background-color: rgba(0,0,0,.9) !important;
|
|
transition: background-color .5s ease-out;
|
|
}
|
|
|
|
.defaultCardColor1 {
|
|
background-color: #009688;
|
|
}
|
|
|
|
.defaultCardColor2 {
|
|
background-color: #D32F2F;
|
|
}
|
|
|
|
.defaultCardColor3 {
|
|
background-color: #0288D1;
|
|
}
|
|
|
|
.defaultCardColor4 {
|
|
background-color: #388E3C;
|
|
}
|
|
|
|
.defaultCardColor5 {
|
|
background-color: #F57F17;
|
|
}
|
|
|
|
.bannerCard-scalable {
|
|
width: 100%;
|
|
}
|
|
|
|
.backdropCard-scalable {
|
|
width: 100%;
|
|
}
|
|
|
|
.smallBackdropCard-scalable {
|
|
width: 50%;
|
|
}
|
|
|
|
.squareCard-scalable {
|
|
width: 50%;
|
|
}
|
|
|
|
.portraitCard-scalable {
|
|
width: 33.333333333333333333333333333333%;
|
|
}
|
|
|
|
.overflowPortraitCard-scalable {
|
|
width: 42%;
|
|
max-width: 200px;
|
|
}
|
|
|
|
.overflowBackdropCard-scalable {
|
|
width: 72%;
|
|
max-width: 400px;
|
|
}
|
|
|
|
.overflowSmallBackdropCard-scalable {
|
|
width: 60%;
|
|
}
|
|
|
|
.overflowSquareCard-scalable {
|
|
width: 42%;
|
|
max-width: 200px;
|
|
}
|
|
|
|
@media all and (min-width: 400px) {
|
|
|
|
.backdropCard-scalable {
|
|
width: 50%;
|
|
}
|
|
}
|
|
|
|
@media all and (min-width: 500px) {
|
|
|
|
.smallBackdropCard-scalable {
|
|
width: 33.333333333333333333333333333333%;
|
|
}
|
|
|
|
.squareCard-scalable {
|
|
width: 33.333333333333333333333333333333%;
|
|
}
|
|
}
|
|
|
|
@media all and (min-width: 540px) {
|
|
|
|
.overflowPortraitCard-scalable {
|
|
width: 30%;
|
|
}
|
|
|
|
.overflowBackdropCard-scalable {
|
|
width: 64%;
|
|
}
|
|
|
|
.overflowSquareCard-scalable {
|
|
width: 30%;
|
|
}
|
|
|
|
.overflowSmallBackdropCard-scalable {
|
|
width: 40%
|
|
}
|
|
}
|
|
|
|
@media all and (min-width: 640px) {
|
|
|
|
.portraitCard-scalable {
|
|
width: 25%;
|
|
}
|
|
|
|
.overflowBackdropCard-scalable {
|
|
width: 56%;
|
|
}
|
|
|
|
.overflowSmallBackdropCard-scalable {
|
|
width: 40%
|
|
}
|
|
}
|
|
|
|
@media all and (min-width: 700px) {
|
|
.squareCard-scalable {
|
|
width: 25%;
|
|
}
|
|
}
|
|
|
|
@media all and (min-width: 770px) {
|
|
.backdropCard-scalable {
|
|
width: 33.333333333333333333333333333333%;
|
|
}
|
|
|
|
.overflowSmallBackdropCard-scalable {
|
|
width: 30%
|
|
}
|
|
}
|
|
|
|
@media all and (min-width: 800px) {
|
|
|
|
.bannerCard-scalable {
|
|
width: 50%;
|
|
}
|
|
|
|
.portraitCard-scalable {
|
|
width: 20%;
|
|
}
|
|
|
|
.smallBackdropCard-scalable {
|
|
width: 25%;
|
|
}
|
|
}
|
|
|
|
|
|
@media all and (min-width: 900px) {
|
|
|
|
.squareCard-scalable {
|
|
width: 20%;
|
|
}
|
|
}
|
|
|
|
@media all and (min-width: 1000px) {
|
|
|
|
|
|
.smallBackdropCard-scalable {
|
|
width: 20%;
|
|
}
|
|
|
|
.overflowPortraitCard-scalable {
|
|
width: 22%;
|
|
}
|
|
|
|
.overflowBackdropCard-scalable {
|
|
width: 40%;
|
|
}
|
|
|
|
.overflowSmallBackdropCard-scalable {
|
|
width: 24%
|
|
}
|
|
|
|
.overflowSquareCard-scalable {
|
|
width: 22%;
|
|
}
|
|
}
|
|
|
|
@media all and (min-width: 1200px) {
|
|
|
|
.backdropCard-scalable {
|
|
width: 25%;
|
|
}
|
|
|
|
.squareCard-scalable {
|
|
width: 16.666666666666666666666666666667%;
|
|
}
|
|
|
|
.bannerCard-scalable {
|
|
width: 33.333333333333333333333333333333%;
|
|
}
|
|
|
|
.portraitCard-scalable {
|
|
width: 16.666666666666666666666666666667%;
|
|
}
|
|
|
|
.smallBackdropCard-scalable {
|
|
width: 16.666666666666666666666666666667%;
|
|
}
|
|
|
|
.overflowSmallBackdropCard-scalable {
|
|
width: 18%
|
|
}
|
|
}
|
|
|
|
|
|
@media all and (min-width: 1400px) {
|
|
|
|
.squareCard-scalable {
|
|
width: 14.285714285714285714285714285714%;
|
|
}
|
|
|
|
.portraitCard-scalable {
|
|
width: 14.285714285714285714285714285714%;
|
|
}
|
|
|
|
.smallBackdropCard-scalable {
|
|
width: 14.285714285714285714285714285714%;
|
|
}
|
|
}
|
|
|
|
@media all and (min-width: 1600px) {
|
|
|
|
.portraitCard-scalable {
|
|
width: 12.5%;
|
|
}
|
|
|
|
.smallBackdropCard-scalable {
|
|
width: 12.5%;
|
|
}
|
|
|
|
.backdropCard-scalable {
|
|
width: 20%;
|
|
}
|
|
|
|
.squareCard-scalable {
|
|
width: 12.5%;
|
|
}
|
|
}
|
|
|
|
@media all and (min-width: 1800px) {
|
|
|
|
.smallBackdropCard-scalable {
|
|
width: 10%;
|
|
}
|
|
}
|
|
|
|
@media all and (min-width: 1920px) {
|
|
|
|
.squareCard-scalable {
|
|
width: 11.111111111111111111111111111111%;
|
|
}
|
|
|
|
.smallBackdropCard-scalable {
|
|
width: 10%;
|
|
}
|
|
}
|
|
|
|
@media all and (min-width: 2100px) {
|
|
|
|
.backdropCard-scalable {
|
|
width: 20%;
|
|
}
|
|
|
|
.portraitCard-scalable {
|
|
width: 11.111111111111111111111111111111%;
|
|
}
|
|
}
|
|
|
|
@media all and (min-width: 2200px) {
|
|
|
|
.bannerCard-scalable {
|
|
width: 25%;
|
|
}
|
|
|
|
.portraitCard-scalable {
|
|
width: 10%;
|
|
}
|
|
}
|
|
|
|
@media all and (min-width: 2500px) {
|
|
|
|
.backdropCard-scalable {
|
|
width: 16.666666666666666666666666666667%;
|
|
}
|
|
}
|
|
|
|
.layout-tv .backdropCard-scalable {
|
|
width: 25%;
|
|
}
|
|
|
|
.layout-tv .squareCard-scalable {
|
|
width: 16.66666666666666667%;
|
|
}
|
|
|
|
.layout-tv .portraitCard-scalable {
|
|
width: 16.66666666666666667%;
|
|
}
|
|
|
|
|
|
@media all and (min-width: 1600px) {
|
|
|
|
.layout-tv .backdropCard-scalable {
|
|
width: 25%;
|
|
}
|
|
}
|