Files
andromeda/andromeda.css
T

367 lines
9.3 KiB
CSS

@media (orientation: landscape) {
:root {
--logo-width: clamp(34.08em, 40vw, 56.89em);
--logo-height: clamp(15.15em, 15vw, 25.28em);
}
}
@media (orientation: portrait) {
:root {
--logo-width: clamp(0px, 90.78vw, 56.89em);
--logo-height: clamp(0px, 34vw, 56.89em);
}
}
/* ============================== */
/* Add fonts
/* ============================== */
@font-face {
font-display: swap;
font-family: "Quicksand";
font-style: normal;
font-weight: 700;
src: url("../web/assets/fonts/quicksand-latin-700.woff2") format("woff2");
}
/* ============================== */
/* Generate library "images"
/* ============================== */
.card[data-type="CollectionFolder"] .cardImageContainer.coveredImage,
.card[data-type="UserView"] .cardImageContainer.coveredImage,
.card[data-type="CollectionFolder"] .cardImageContainer.defaultCardBackground,
.card[data-type="UserView"] .cardImageContainer.defaultCardBackground {
container-type: size;
background-color: transparent;
background-image: none !important; /* Remove fallback image when custom CSS is used */
opacity: 1 !important; /* Disable blink because of lazy loading */
}
.card[data-type="CollectionFolder"] .cardImageContainer.coveredImage::before,
.card[data-type="UserView"] .cardImageContainer.coveredImage::before,
.card[data-type="CollectionFolder"] .cardImageContainer.defaultCardBackground::before,
.card[data-type="UserView"] .cardImageContainer.defaultCardBackground::before {
/* Get library name */
content: attr(aria-label);
/* Set font */
font-family: "Quicksand";
font-weight: 700;
/* Fill card */
font-size: 3.5em; /* Fallback (for Media Player) */
font-size: 30cqmin; /* Preferred */
/* Add gradient */
background: linear-gradient(90deg, #9757ae 0%, #2396d4 100%);
-webkit-background-clip: text;
background-clip: text;
color: transparent;
-webkit-text-fill-color: transparent;
text-fill-color: transparent;
}
/* Hide icon when no fallback image is used */
.card[data-type="CollectionFolder"] .cardImageIcon,
.card[data-type="UserView"] .cardImageIcon {
display: none;
}
/* Hide blur because of lazy loading */
.card[data-type="CollectionFolder"] .blurhash-canvas,
.card[data-type="UserView"] .blurhash-canvas {
display: none;
}
/* Hide library card titles */
.card[data-type="CollectionFolder"] .cardText,
.card[data-type="UserView"] .cardText {
display: none;
}
/* ============================== */
/* Header
/* ============================== */
.skinHeader {
backdrop-filter: none !important;
background-color: rgba(0, 0, 0, 0.4);
}
/* ============================== */
/* Library page
/* ============================== */
/* Background */
.layout-desktop .itemBackdrop {
display: none;
}
.layout-mobile .itemBackdrop {
margin-top: unset;
position: fixed;
top: 0;
left: 0;
z-index: -1;
width: 100%;
height: 100%;
}
.layout-mobile .backgroundContainer {
background-color: rgba(0, 0, 0, 0.86);
}
/* Logo */
.libraryPage.itemDetailPage::before {
display: block;
height: calc(30vw - var(--logo-height));
max-height: 13.35em;
content: "";
}
.layout-desktop .libraryPage.itemDetailPage::before {
height: calc(30vw - var(--logo-height));
max-height: 13.35em;
}
.layout-mobile .libraryPage.itemDetailPage::before {
height: 10.3em;
}
.detailLogo {
top: unset;
right: unset;
/* Center horizontally */
position: relative;
left: 50%;
transform: translate(-50%, 0);
width: var(--logo-width);
height: var(--logo-height);
background-position: bottom;
}
.layout-mobile .detailLogo {
display: block;
}
/* Poster */
.detailImageContainer {
display: none;
}
/* Detail ribbon */
.detailRibbon {
height: unset !important;
padding: unset !important;
margin-top: 0.5em !important;
/* Stack items */
display: flex;
flex-direction: column;
background: rgba(0,0,0,0) !important;
}
.layout-mobile .infoWrapper {
padding-left: unset !important;
}
/* Media title */
.nameContainer h1 {
/* Position on top of logo to keep link */
position: absolute;
top: calc(-1 * (0.50 * 14.4px) - var(--logo-height));
left: 0;
right: 0;
margin-left: auto !important;
margin-right: auto !important;
/* Give it the same size as the logo */
font-size: unset !important;
width: var(--logo-width);
height: var(--logo-height);
overflow: hidden !important;
/* Make it invisible while keeping it clickable */
opacity: 0;
/* Disable select */
user-select: none;
}
.nameContainer h1 > * {
font-size: var(--logo-height);
}
/* Original title */
.nameContainer h4 {
text-align: center;
opacity: 0.5;
}
/* Buttons */
.mainDetailButtons {
margin-top: 1em;
}
.layout-mobile .mainDetailButtons {
padding-left: unset !important;
}
/* Primary info (e.g. year, rating, etc.) */
.itemMiscInfo.itemMiscInfo-primary {
margin-top: 0.5em;
justify-content: center;
}
/* Media content */
.layout-desktop .detailPageSecondaryContainer {
padding-top: 0;
background: rgba(0,0,0,0);
}
.layout-desktop .detailPageContent {
padding: unset !important;
width: 75%;
margin-left: auto;
margin-right: auto;
}
/* Disable right padding */
.layout-desktop .detailPageContent .padded-right {
padding-right: unset !important;
}
/* Description and info */
.layout-desktop .detailPagePrimaryContent {
padding-left: 0;
padding-right: 0;
margin-left: auto;
margin-right: auto;
width: var(--logo-width);
text-align: center;
}
.layout-desktop .detailSectionContent {
padding-top: 1em;
}
/* Tables (e.g. audio, subtitles, genres, writers, etc.) */
.layout-desktop .detailPagePrimaryContent .itemDetailsGroup,
.layout-desktop .detailPagePrimaryContent .trackSelections {
margin-left: auto;
margin-right: auto;
width: fit-content;
text-align: left;
}
.layout-desktop .detailPagePrimaryContent .itemDetailsGroup .detailsGroupItem,
.layout-desktop .detailPagePrimaryContent .trackSelections .selectContainer {
width: fit-content;
}
.layout-desktop .detailPagePrimaryContent .itemDetailsGroup .detailsGroupItem .label,
.layout-desktop .detailPagePrimaryContent .trackSelections .selectContainer label {
min-width: 6.25em;
width: fit-content;
}
.layout-desktop .detailPagePrimaryContent .itemDetailsGroup .detailsGroupItem .content,
.layout-desktop .detailPagePrimaryContent .trackSelections .selectContainer select {
width: fit-content;
}
.layout-desktop .detailPagePrimaryContent .trackSelections .selectContainer select {
padding-left: 0.5em;
}
.layout-desktop .detailPagePrimaryContent .trackSelections .selectContainer select:enabled {
padding-left: 1em !important;
padding-right: 2em;
}
/* Next Up */
.nextUpSection {
margin-top: 1.8em;
margin-left: auto;
margin-right: auto;
width: unset !important;
}
.layout-mobile .nextUpSection .nextUpItems .overflowBackdropCard {
width: 72vw !important;
max-width: 27.95em !important;
}
/* Seasons */
.layout-desktop .childrenItemsContainer {
padding: unset !important;
justify-content: center;
gap: 1.2em;
}
.layout-desktop .childrenItemsContainer > .card > .cardBox {
margin-right: unset !important;
}
/* Scrollable lists */
.layout-desktop .detailVerticalSection {
width: 100%;
}
/* Hide second merged movie */
.card[data-type="Movie"]:has(.mediaSourceIndicator):nth-child(odd) {
display: none;
}
/* Hardcoded fallback for Media Player */
@supports not selector(:has(.mediaSourceIndicator)) {
.card[data-type="Movie"][data-id="db4b50606515c52da9d175dcc7e8bec3"],
.card[data-type="Movie"][data-id="a3b4d05ccb835f952744019be1a9b181"],
.card[data-type="Movie"][data-id="1b87a264aeeb2cef43d66b68a3ae548c"],
.card[data-type="Movie"][data-id="a6fad08f3efcaaec5755fa476e791118"],
.card[data-type="Movie"][data-id="ef8581bf04ef54f83fdbf6b3cdd84a82"],
.card[data-type="Movie"][data-id="0f681ce8080644cd8079a27e573a7bbd"],
.card[data-type="Movie"][data-id="2c5a0c1a9dd50ea4b0df526d8d204d9e"] {
display: none;
}
}
/* Resize episode view */
.listItem-content {
height: 7.73em; /* Set height of container */
}
/* Fit content to container */
.listItem-content .listItemImage.listItemImage-large {
height: 100%;
}
.listItem-content .listItemBody {
padding: 0 .75em;
height: 100%;
display: flex;
flex-flow: column;
}
.listItem-content .listItemBody .listItemBodyText:not(.listItem-overview) {
flex-grow: 0;
flex-shrink: 0;
flex-basis: auto;
}
.listItem-content .listItemBody .listItem-overview {
flex-grow: 1;
flex-shrink: 1;
flex-basis: auto;
padding-top: .5em;
}
/* Add fade-out on overflow */
.listItem-content .listItemBody .listItem-overview p {
margin: 0;
height: 100%;
overflow: hidden;
mask: linear-gradient(to bottom,
rgba(0,0,0, 1) 0, rgba(0,0,0, 1) 40%,
rgba(0,0,0, 0) 95%, rgba(0,0,0, 0) 0
) 100% 50% / 100% 100% repeat-x;
}
/* Floating indicator */
.innerCardFooter {
margin: .5em;
}
.countIndicator {
background: rgba(0, 164, 220, 0.8);
box-shadow: none;
}
.indicator, .innerCardFooter {
background: rgba(0,0,0,0.4);
box-shadow: none;
}
.mediaSourceIndicator {
background: rgba(0,0,0,0.4);
box-shadow: none;
border-radius: calc(infinity * 1px);
}