mirror of
https://github.com/ranaldsgift/KefinTweaks.git
synced 2026-11-05 15:52:47 +01:00
539 lines
14 KiB
CSS
539 lines
14 KiB
CSS
@import url("https://fonts.googleapis.com/css2?family=Alfa+Slab+One&family=Anton&family=Changa+One:ital@0;1&family=Exo:ital,wght@0,100..900;1,100..900&family=Orbitron:[email protected]&family=Oswald:[email protected]&family=Prata&family=Roboto:ital,wght@0,100..900;1,100..900&family=Unbounded:[email protected]&family=VT323&display=swap");
|
|
|
|
.sections.homeSectionsContainer {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 1rem;
|
|
}
|
|
|
|
.snowverlay {
|
|
display: none;
|
|
}
|
|
|
|
.homePage [data-section-id] h2.sectionTitle,
|
|
.homePage [data-section-id] .sectionTitleTextButton > .material-icons {
|
|
margin-bottom: 0 !important;
|
|
margin-top: 0 !important;
|
|
padding-bottom: 0 !important;
|
|
padding-top: 0 !important;
|
|
}
|
|
|
|
/* div#discovery-loading-indicator:not(.show)::before {
|
|
content: 'Loading...';
|
|
position: absolute;
|
|
top: 50%;
|
|
left: 0;
|
|
right: 0;
|
|
bottom: 0;
|
|
transform: translateY(-50%);
|
|
visibility: visible;
|
|
text-align: center;
|
|
opacity: 1;
|
|
} */
|
|
|
|
#indexPage[data-discovery-ready] div#discovery-loading-indicator:not(.show)::before {
|
|
content: "Discover More";
|
|
}
|
|
|
|
#indexPage[data-discovery-exhausted] div#discovery-loading-indicator:not(.show)::before {
|
|
content: "No More Content to Discover";
|
|
}
|
|
|
|
div#discovery-loading-indicator:not(.show)::after {
|
|
content: "\E313";
|
|
font-family: "Material Icons";
|
|
position: absolute;
|
|
top: calc(50% + 0.4em);
|
|
left: 50%;
|
|
transform: translateX(-50%) translateY(-50%);
|
|
font-size: 1.5em;
|
|
color: #ffffff;
|
|
visibility: visible;
|
|
opacity: 1;
|
|
}
|
|
|
|
#indexPage[data-discovery-exhausted] div#discovery-loading-indicator:not(.show)::after {
|
|
content: "";
|
|
}
|
|
|
|
[data-loading-discovery="true"] div#discovery-loading-indicator {
|
|
display: flex;
|
|
}
|
|
|
|
/* Idle Discover More / exhausted prompt (chevron mode) */
|
|
#indexPage[data-discovery-ready] #discovery-loading-indicator:not(.show) {
|
|
display: flex !important;
|
|
visibility: visible !important;
|
|
opacity: 1 !important;
|
|
}
|
|
|
|
/* Hide Discover More / loading affordance outside Home + Discover categories */
|
|
#indexPage .homeSectionsContainer[data-category]:not([data-category="none"]):not([data-category="discovery"]) #discovery-loading-indicator,
|
|
.homePage .homeSectionsContainer[data-category]:not([data-category="none"]):not([data-category="discovery"]) #discovery-loading-indicator,
|
|
.libraryPage
|
|
.homeSectionsContainer[data-category]:not([data-category="none"]):not([data-category="discovery"])
|
|
#discovery-loading-indicator,
|
|
#indexPage .homeSectionsContainer[data-category]:not([data-category="none"]):not([data-category="discovery"]) .discovery-loading-indicator,
|
|
.homePage .homeSectionsContainer[data-category]:not([data-category="none"]):not([data-category="discovery"]) .discovery-loading-indicator,
|
|
.libraryPage
|
|
.homeSectionsContainer[data-category]:not([data-category="none"]):not([data-category="discovery"])
|
|
.discovery-loading-indicator {
|
|
display: none !important;
|
|
visibility: hidden !important;
|
|
min-height: 0 !important;
|
|
height: 0 !important;
|
|
overflow: hidden !important;
|
|
padding: 0 !important;
|
|
margin: 0 !important;
|
|
opacity: 0 !important;
|
|
}
|
|
|
|
#indexPage[data-discovery-ready] #discovery-loading-indicator:not(.show) .spinner {
|
|
visibility: hidden;
|
|
opacity: 0;
|
|
}
|
|
|
|
/* #indexPage[data-discovery-ready]:not([data-infinite-scroll='true']) div#discovery-loading-indicator {
|
|
display: none;
|
|
} */
|
|
|
|
#indexPage:not([data-discovery-ready]) div#discovery-loading-indicator:not(.show)::after {
|
|
content: "";
|
|
}
|
|
|
|
/* Ensure Editor's Choice Banner appears at top of home screen if enabled */
|
|
.editorsChoiceContainer {
|
|
order: 1 !important;
|
|
}
|
|
.spotlight-section {
|
|
width: calc(100% - (2 * max(env(safe-area-inset-left), 3.3%)));
|
|
}
|
|
|
|
.load-more-discovery-btn {
|
|
display: block;
|
|
visibility: visible;
|
|
order: 99998 !important;
|
|
margin: 2em auto;
|
|
}
|
|
|
|
.sections.loading-discovery .load-more-discovery-btn {
|
|
visibility: hidden !important;
|
|
}
|
|
|
|
/* Discovery section loading indicator */
|
|
.sections.loading-discovery .discovery-loading-indicator {
|
|
visibility: visible !important;
|
|
opacity: 1 !important;
|
|
}
|
|
|
|
.discovery-loading-indicator,
|
|
.load-more-discovery-btn {
|
|
height: 50px;
|
|
}
|
|
|
|
.discovery-loading-indicator {
|
|
display: none;
|
|
opacity: 1;
|
|
flex-direction: column;
|
|
gap: 10px;
|
|
justify-content: center;
|
|
align-items: center;
|
|
border-radius: 8px;
|
|
font-size: 14px;
|
|
color: #666;
|
|
transition: opacity 0.3s ease;
|
|
position: relative;
|
|
justify-content: start;
|
|
}
|
|
|
|
.discovery-loading-indicator .spinner {
|
|
width: 30px;
|
|
height: 30px;
|
|
border: 2px solid rgba(255, 255, 255, 0.3);
|
|
border-top-color: var(--theme-primary-color, #3498db);
|
|
border-radius: 50%;
|
|
animation: discovery-spin 1s linear infinite;
|
|
}
|
|
|
|
@keyframes discovery-spin {
|
|
0% {
|
|
transform: rotate(0deg);
|
|
}
|
|
100% {
|
|
transform: rotate(360deg);
|
|
}
|
|
}
|
|
|
|
/* Hide scroll buttons on mobile using Jellyfin's layout classes */
|
|
.layout-mobile .emby-scrollbuttons,
|
|
.layout-tv .emby-scrollbuttons {
|
|
display: none !important;
|
|
}
|
|
|
|
.load-more-discovery-btn {
|
|
display: block;
|
|
}
|
|
|
|
.sections[data-loading-discovery="true"] .load-more-discovery-btn {
|
|
display: none !important;
|
|
}
|
|
|
|
.sections[data-loading-discovery="true"] .discovery-loading-indicator {
|
|
display: flex !important;
|
|
opacity: 1 !important;
|
|
}
|
|
|
|
.discovery-loading-indicator {
|
|
display: none;
|
|
opacity: 0;
|
|
flex-direction: column;
|
|
gap: 10px;
|
|
justify-content: center;
|
|
align-items: center;
|
|
padding: 20px;
|
|
border-radius: 8px;
|
|
font-size: 14px;
|
|
color: #666;
|
|
transition: opacity 0.3s ease;
|
|
position: relative;
|
|
justify-content: start;
|
|
min-height: 200px;
|
|
}
|
|
|
|
.discovery-loading-indicator .spinner {
|
|
width: 30px;
|
|
height: 30px;
|
|
border: 2px solid rgba(255, 255, 255, 0.3);
|
|
border-top-color: var(--theme-primary-color, #3498db);
|
|
border-radius: 50%;
|
|
animation: discovery-spin 1s linear infinite;
|
|
}
|
|
|
|
@keyframes discovery-spin {
|
|
0% {
|
|
transform: rotate(0deg);
|
|
}
|
|
100% {
|
|
transform: rotate(360deg);
|
|
}
|
|
}
|
|
|
|
.homeSectionsContainer [data-section-id="popularTVNetworks"] .card .cardText {
|
|
visibility: hidden;
|
|
}
|
|
|
|
/* .homeSectionsContainer:not(.kefinHomeSectionsContainer) {
|
|
display: none !important;
|
|
} */
|
|
|
|
.homeSectionsContainer [data-section-id*="thematic-"] .card[data-type="Folder"] .cardScalable > a.cardImageContainer::before {
|
|
content: "";
|
|
position: absolute;
|
|
top: 0;
|
|
left: 0;
|
|
bottom: 0;
|
|
right: 0;
|
|
background: linear-gradient(#000000, rgb(0 0 0 / 0%) 50%);
|
|
box-shadow: inset 0px 0px 20px 5px black;
|
|
}
|
|
|
|
.layout-mobile .homeSectionsContainer [data-section-id*="thematic-"] .card[data-type="Folder"] a.cardImageContainer::after {
|
|
top: 0.5rem;
|
|
left: 0.5rem;
|
|
font-size: 1.5rem !important;
|
|
line-height: 1.8rem !important;
|
|
}
|
|
|
|
/* .homeSectionsContainer [data-section-id*="thematic-"] .card[data-type="Folder"] .cardText {
|
|
display: none;
|
|
}
|
|
|
|
[data-card-format="Square"] [data-type="Person"] .cardScalable,
|
|
[data-card-format="Square"] [data-type="Actor"] .cardScalable,
|
|
[data-card-format="Square"] [data-type="Writer"] .cardScalable,
|
|
[data-card-format="Square"] [data-type="Director"] .cardScalable {
|
|
border-radius: 50% !important;
|
|
overflow: hidden;
|
|
}
|
|
|
|
[data-card-format="Square"] [data-type="Actor"] .cardText {
|
|
display: flex;
|
|
justify-content: center;
|
|
} */
|
|
|
|
.section0:not([data-page]),
|
|
.section1:not([data-page]),
|
|
.section2:not([data-page]),
|
|
.section3:not([data-page]),
|
|
.section4:not([data-page]),
|
|
.section5:not([data-page]),
|
|
.section6:not([data-page]),
|
|
.section7:not([data-page]),
|
|
.section8:not([data-page]),
|
|
.section9:not([data-page]),
|
|
.homeSectionsContainer:has([data-page], [data-section-id])
|
|
> :is(
|
|
.section0:not([data-page]),
|
|
.section1:not([data-page]),
|
|
.section2:not([data-page]),
|
|
.section3:not([data-page]),
|
|
.section4:not([data-page]),
|
|
.section5:not([data-page]),
|
|
.section6:not([data-page]),
|
|
.section7:not([data-page]),
|
|
.section8:not([data-page]),
|
|
.section9:not([data-page])
|
|
),
|
|
.homeSectionsContainer[data-sections-rendered="true"]
|
|
> :is(
|
|
.section0:not([data-page]),
|
|
.section1:not([data-page]),
|
|
.section2:not([data-page]),
|
|
.section3:not([data-page]),
|
|
.section4:not([data-page]),
|
|
.section5:not([data-page]),
|
|
.section6:not([data-page]),
|
|
.section7:not([data-page]),
|
|
.section8:not([data-page]),
|
|
.section9:not([data-page])
|
|
) {
|
|
display: none !important;
|
|
}
|
|
|
|
.homeSectionsContainer .card[data-type="TvChannel"] a.cardImageContainer:not([style])::after {
|
|
content: attr(aria-label);
|
|
font-size: 2rem;
|
|
text-wrap: auto;
|
|
text-align: center;
|
|
}
|
|
|
|
.emby-scroller-container[data-section-id="liveTv-channels"] .itemsContainer {
|
|
gap: 4rem;
|
|
}
|
|
.layout-mobile .emby-scroller-container[data-section-id="liveTv-channels"] .itemsContainer {
|
|
gap: 2rem;
|
|
}
|
|
|
|
[data-section-id="upcoming"] .missingIndicator {
|
|
display: none;
|
|
}
|
|
|
|
body:not(:has(#slides-container)) .homeSectionsContainer .section9 + .custom-scroller-container {
|
|
margin-top: 1em;
|
|
}
|
|
|
|
/* .pageTabContent:has(.kefinHomeSectionsContainer[data-kefin-home-screen]) .homeSectionsContainer:not([data-kefin-home-screen]) {
|
|
display: none !important;
|
|
}
|
|
|
|
body[data-seasonal-background="true"]:has(.homePage:not(.hide)) #reactRoot:has(.libraryPage:not(.hide) .pageTabContent.is-active[data-index="0"])>.backgroundContainer::after {
|
|
content: '';
|
|
position: absolute;
|
|
top: 0;
|
|
left: 0;
|
|
right: 0;
|
|
bottom: 0%;
|
|
background: linear-gradient(rgba(0, 0, 0, 0.65), rgba(0, 0, 0, 0.85)), var(--seasonal-background-image);
|
|
background-position: center;
|
|
background-size: cover;
|
|
}
|
|
|
|
body[data-seasonal-animations="true"]:has(.homePage:not(.hide)) .snowverlay {
|
|
display: block;
|
|
} */
|
|
|
|
.homePage[data-discovery-ready] div#discovery-loading-indicator:not(.show) {
|
|
min-height: 50px;
|
|
}
|
|
|
|
@keyframes fadeInDelayed {
|
|
0%,
|
|
99% {
|
|
opacity: 0;
|
|
visibility: hidden;
|
|
}
|
|
100% {
|
|
opacity: 1;
|
|
visibility: visible;
|
|
}
|
|
}
|
|
|
|
.homeSectionsContainer:not(:has([data-page]), :has([data-section-id])):not([data-sections-rendered])::after {
|
|
content: "Customize your Home Screen from your User Settings > Home in the top right corner.";
|
|
text-align: center;
|
|
margin: 3em auto;
|
|
display: block;
|
|
animation: fadeInDelayed 0.1s linear 3s forwards;
|
|
opacity: 0;
|
|
visibility: hidden;
|
|
}
|
|
|
|
[data-section-id="browse-by-studio"] .card {
|
|
width: 8vw !important;
|
|
}
|
|
|
|
[data-section-id="browse-by-studio"] .card,
|
|
[data-section-id="browse-by-studio"] .card .cardScalable,
|
|
[data-section-id="browse-by-studio"] .card .cardImageContainer,
|
|
[data-section-id="browse-by-studio"] .card .cardPadder {
|
|
border-radius: 0px !important;
|
|
}
|
|
|
|
/* Hide scroll buttons on mobile and tablet layouts */
|
|
@media (max-width: 768px) {
|
|
.emby-scrollbuttons {
|
|
display: none !important;
|
|
}
|
|
|
|
[data-section-id="browse-by-studio"] .card {
|
|
width: 30vw !important;
|
|
}
|
|
}
|
|
|
|
/* Home screen chrome: create section + category rail */
|
|
.kefin-home-chrome {
|
|
position: fixed;
|
|
z-index: 12;
|
|
pointer-events: none;
|
|
opacity: 0.18;
|
|
transition: opacity 0.2s ease;
|
|
}
|
|
.kefin-home-chrome:hover,
|
|
.kefin-home-chrome:focus-within {
|
|
opacity: 1;
|
|
}
|
|
.kefin-home-chrome[hidden],
|
|
#kefin-home-category-rail[hidden] {
|
|
display: none !important;
|
|
}
|
|
.kefin-home-chrome button,
|
|
#kefin-home-category-rail button {
|
|
pointer-events: auto;
|
|
}
|
|
.kefin-home-create-section {
|
|
left: 0;
|
|
bottom: 0.25em;
|
|
}
|
|
.kefin-home-create-section-btn {
|
|
padding: 0.25em;
|
|
}
|
|
.kefin-home-create-section-btn .material-icons {
|
|
font-size: 1.75rem;
|
|
}
|
|
|
|
/* Outer sectionTabs wrapper — no native header layout */
|
|
#kefin-home-category-rail.sectionTabs {
|
|
position: static;
|
|
display: contents;
|
|
}
|
|
|
|
/* Inner visual bar — keep our layout over skinHeader / MuiAppBar positioning */
|
|
.kefin-home-category-rail {
|
|
--AppBar-background: var(--jf-palette-AppBar-defaultBg);
|
|
--AppBar-color: var(--jf-palette-text-primary);
|
|
background-color: var(--jf-palette-AppBar-darkBg, var(--AppBar-background));
|
|
color: var(--jf-palette-AppBar-darkColor, var(--AppBar-color));
|
|
z-index: 10;
|
|
gap: 0.25rem;
|
|
pointer-events: auto;
|
|
display: flex;
|
|
}
|
|
#kefin-home-category-rail .kefin-home-category-rail:hover,
|
|
#kefin-home-category-rail .kefin-home-category-rail:focus-within {
|
|
opacity: 1;
|
|
background: #0f0f0f !important;
|
|
border-radius: 0 25px 25px 0;
|
|
box-shadow: 1px 0px 5px -1px black;
|
|
}
|
|
.kefin-home-category-btn {
|
|
opacity: 0.75;
|
|
}
|
|
.kefin-home-category-btn.is-active {
|
|
opacity: 1;
|
|
color: var(--theme-primary-color, #00a4dc);
|
|
background: rgba(0, 164, 220, 0.18);
|
|
}
|
|
.kefin-home-category-btn .material-icons {
|
|
font-size: 1.35rem;
|
|
top: unset !important;
|
|
}
|
|
|
|
@media (max-width: 899px) {
|
|
#kefin-home-category-rail .kefin-home-category-rail {
|
|
top: auto;
|
|
left: 0;
|
|
right: 0;
|
|
bottom: 0;
|
|
flex-direction: row;
|
|
justify-content: space-evenly;
|
|
align-items: center;
|
|
gap: 0.15rem;
|
|
padding: 0.4rem 0.5rem calc(0.4rem + env(safe-area-inset-bottom, 0px)) !important;
|
|
box-shadow: 1px 1px 1px 1px #fff !important;
|
|
border-radius: 0;
|
|
opacity: 1;
|
|
pointer-events: auto;
|
|
margin: 0 !important;
|
|
-webkit-backdrop-filter: blur(10px);
|
|
backdrop-filter: blur(10px);
|
|
border: none !important;
|
|
}
|
|
.kefin-home-create-section,
|
|
#kefin-home-create-section-btn {
|
|
display: none !important;
|
|
}
|
|
.homePage:not(.hide) {
|
|
padding-bottom: calc(3.5rem + env(safe-area-inset-bottom, 0px));
|
|
}
|
|
}
|
|
|
|
.kefin-section-more-toggle {
|
|
margin-left: auto !important;
|
|
}
|
|
|
|
body:not(:has(.homePage:not(.hide) #homeTab.is-active)) div#kefin-home-category-rail,
|
|
body:not(:has(.homePage:not(.hide) #homeTab.is-active)) div#kefin-home-create-section-btn {
|
|
display: none;
|
|
}
|
|
|
|
@media (min-width: 900px) {
|
|
#kefin-home-category-rail .kefin-home-category-rail,
|
|
#kefin-home-category-rail .kefin-home-category-rail::before {
|
|
background: none !important;
|
|
background-color: transparent !important;
|
|
}
|
|
#kefin-home-category-rail .kefin-home-category-rail {
|
|
position: fixed !important;
|
|
z-index: 10;
|
|
top: 50vh !important;
|
|
left: 0 !important;
|
|
right: auto !important;
|
|
bottom: auto !important;
|
|
width: auto !important;
|
|
height: auto !important;
|
|
max-width: none !important;
|
|
flex-direction: column !important;
|
|
transform: translateY(-50%);
|
|
overflow: visible !important;
|
|
padding: 5px 0 !important;
|
|
margin: 0 !important;
|
|
backdrop-filter: none;
|
|
border: none !important;
|
|
display: grid !important;
|
|
grid-auto-rows: 1fr;
|
|
}
|
|
}
|
|
|
|
body:not(:has(#slides-container)):has(.MuiBox-root) .homeSectionsContainer:has([data-section-id]) {
|
|
margin-top: 3rem;
|
|
}
|
|
#kefin-home-category-rail .kefin-home-category-rail {
|
|
height: auto !important;
|
|
}
|
|
|
|
body:has(.kefin-home-category-btn.is-active[data-category-id="discovery"]) .sections.homeSectionsContainer::before {
|
|
content: "Discover Something To Watch";
|
|
padding-left: max(env(safe-area-inset-left), 3.3%);
|
|
font-size: 1.5rem;
|
|
}
|