mirror of
https://github.com/ranaldsgift/KefinTweaks.git
synced 2026-11-05 07:42:47 +01:00
718 lines
21 KiB
CSS
718 lines
21 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;
|
|
}
|
|
|
|
.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;
|
|
} */
|
|
|
|
#discovery-loading-indicator {
|
|
order: 999999999 !important;
|
|
width: fit-content;
|
|
margin: 0 auto;
|
|
}
|
|
|
|
#indexPage[data-discovery-ready] #discovery-loading-indicator:not(.show)::before {
|
|
content: "Discover More";
|
|
}
|
|
|
|
#indexPage[data-discovery-exhausted] #discovery-loading-indicator:not(.show)::before {
|
|
content: "We've run out of suggestions!";
|
|
}
|
|
|
|
#discovery-loading-indicator:not(.show)::after {
|
|
content: "\E313";
|
|
font-family: "Material Icons";
|
|
font-size: 1.5em;
|
|
color: #ffffff;
|
|
visibility: visible;
|
|
opacity: 1;
|
|
}
|
|
|
|
#indexPage[data-discovery-exhausted] #discovery-loading-indicator:not(.show)::after {
|
|
content: "";
|
|
}
|
|
|
|
[data-loading-discovery="true"] #discovery-loading-indicator,
|
|
.homeSectionsContainer[data-loading-discovery="true"] #discovery-loading-indicator,
|
|
.sections[data-loading-discovery="true"] #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;
|
|
gap: 0;
|
|
}
|
|
|
|
/* 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;
|
|
display: none;
|
|
}
|
|
|
|
/* #indexPage[data-discovery-ready]:not([data-infinite-scroll='true']) div#discovery-loading-indicator {
|
|
display: none;
|
|
} */
|
|
|
|
#indexPage:not([data-discovery-ready]) #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 {
|
|
display: none;
|
|
appearance: none;
|
|
-webkit-appearance: none;
|
|
background: transparent;
|
|
border: none;
|
|
margin: 0;
|
|
padding: 0;
|
|
width: 100%;
|
|
font: inherit;
|
|
text-align: center;
|
|
color: inherit;
|
|
cursor: default;
|
|
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;
|
|
}
|
|
|
|
/* Chevron mode: clickable Discover More (desktop optional; TV focus stop) */
|
|
#indexPage[data-discovery-ready]:not([data-discovery-exhausted]) #discovery-loading-indicator:not(.show) {
|
|
cursor: pointer;
|
|
}
|
|
|
|
/* TV: real button + emby-button for spatial nav; keep Discover More chrome unstyled */
|
|
.layout-tv button#discovery-loading-indicator.emby-button,
|
|
.layout-tv #discovery-loading-indicator.discovery-load-more-focusable {
|
|
outline: none;
|
|
min-height: 3em;
|
|
padding: 0.5em 1em;
|
|
box-sizing: border-box;
|
|
background: transparent;
|
|
border: 0;
|
|
box-shadow: none;
|
|
transform: none;
|
|
-webkit-appearance: none;
|
|
appearance: none;
|
|
font: inherit;
|
|
color: inherit;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.layout-tv #discovery-loading-indicator.discovery-load-more-focusable.show-focus:focus,
|
|
.layout-tv button#discovery-loading-indicator.emby-button.show-focus:focus {
|
|
background-color: var(--theme-primary-color, #00a4dc) !important;
|
|
background: var(--theme-primary-color, #00a4dc) !important;
|
|
color: #fff !important;
|
|
outline: none;
|
|
box-shadow: none;
|
|
border-radius: 8px;
|
|
}
|
|
|
|
.layout-tv #discovery-loading-indicator.discovery-load-more-focusable.show-focus:focus::before,
|
|
.layout-tv #discovery-loading-indicator.discovery-load-more-focusable.show-focus:focus::after,
|
|
.layout-tv button#discovery-loading-indicator.emby-button.show-focus:focus::before,
|
|
.layout-tv button#discovery-loading-indicator.emby-button.show-focus:focus::after {
|
|
color: #fff !important;
|
|
}
|
|
|
|
.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,
|
|
.sections[data-loading-discovery="true"] #discovery-loading-indicator,
|
|
.homeSectionsContainer[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 .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;
|
|
}
|
|
|
|
.homePage[data-discovery-ready] #discovery-loading-indicator:not(.show) {
|
|
min-height: 50px;
|
|
}
|
|
|
|
@keyframes fadeInDelayed {
|
|
0%,
|
|
99% {
|
|
opacity: 0;
|
|
visibility: hidden;
|
|
}
|
|
100% {
|
|
opacity: 1;
|
|
visibility: visible;
|
|
}
|
|
}
|
|
|
|
[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;
|
|
}
|
|
@media (hover: hover) and (pointer: fine) {
|
|
.kefin-home-chrome:hover,
|
|
.kefin-home-chrome:focus-within {
|
|
opacity: 1;
|
|
}
|
|
}
|
|
/* TV: rail must be fully visible while focused (no hover) */
|
|
.layout-tv #kefin-home-category-rail:focus-within,
|
|
.layout-tv #kefin-home-category-rail:focus-within .kefin-home-category-rail {
|
|
opacity: 1;
|
|
}
|
|
.kefin-home-chrome.hide,
|
|
#kefin-home-category-rail.hide,
|
|
#kefin-home-category-rail.hide .kefin-home-category-rail {
|
|
display: none !important;
|
|
}
|
|
|
|
/* Hide home chrome off-home via root page key (no :has; JMP-safe) */
|
|
html:not([data-active-page="home"]) #kefin-home-category-rail,
|
|
html:not([data-active-page="home"]) #kefin-home-create-section-btn {
|
|
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 */
|
|
:where(.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;
|
|
}
|
|
@media (hover: hover) and (pointer: fine) {
|
|
#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-item {
|
|
display: inline-flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
justify-content: center;
|
|
gap: 0.15rem;
|
|
min-width: 0;
|
|
}
|
|
.kefin-home-category-btn {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
opacity: 0.75;
|
|
-webkit-tap-highlight-color: transparent;
|
|
}
|
|
.kefin-home-category-btn.is-active,
|
|
.kefin-home-category-item.is-active .kefin-home-category-btn {
|
|
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;
|
|
}
|
|
.kefin-home-category-btn-label {
|
|
display: none;
|
|
font-size: 0.65rem;
|
|
line-height: 1.1;
|
|
font-weight: 500;
|
|
letter-spacing: 0.01em;
|
|
max-width: 4.5rem;
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
pointer-events: none;
|
|
text-align: center;
|
|
}
|
|
.kefin-home-category-item.is-active .kefin-home-category-btn-label {
|
|
color: var(--theme-primary-color, #00a4dc);
|
|
}
|
|
|
|
@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;
|
|
border: none !important;
|
|
transition:
|
|
transform 0.25s ease,
|
|
opacity 0.25s ease;
|
|
}
|
|
:where(#kefin-home-category-rail) .kefin-home-category-rail:hover,
|
|
:where(#kefin-home-category-rail) .kefin-home-category-rail:focus-within {
|
|
opacity: 1;
|
|
}
|
|
.kefin-home-category-btn-label {
|
|
display: block;
|
|
}
|
|
.kefin-home-category-btn:hover,
|
|
.kefin-home-category-btn:focus,
|
|
.kefin-home-category-btn:focus-visible,
|
|
.kefin-home-category-btn:active {
|
|
opacity: 0.75;
|
|
background: transparent;
|
|
color: inherit;
|
|
}
|
|
.kefin-home-category-btn.is-active,
|
|
.kefin-home-category-btn.is-active:hover,
|
|
.kefin-home-category-btn.is-active:focus,
|
|
.kefin-home-category-btn.is-active:focus-visible,
|
|
.kefin-home-category-btn.is-active:active,
|
|
.kefin-home-category-item.is-active .kefin-home-category-btn,
|
|
.kefin-home-category-item.is-active .kefin-home-category-btn:hover,
|
|
.kefin-home-category-item.is-active .kefin-home-category-btn:focus,
|
|
.kefin-home-category-item.is-active .kefin-home-category-btn:focus-visible,
|
|
.kefin-home-category-item.is-active .kefin-home-category-btn:active {
|
|
opacity: 1;
|
|
color: var(--theme-primary-color, #00a4dc);
|
|
background: rgba(0, 164, 220, 0.18);
|
|
}
|
|
#kefin-home-category-rail.is-scroll-hidden .kefin-home-category-rail {
|
|
transform: translateY(100%);
|
|
pointer-events: none;
|
|
opacity: 0;
|
|
}
|
|
.kefin-home-create-section,
|
|
#kefin-home-create-section-btn {
|
|
display: none !important;
|
|
}
|
|
.homePage:not(.hide) {
|
|
padding-bottom: calc(4.25rem + env(safe-area-inset-bottom, 0px));
|
|
}
|
|
}
|
|
|
|
.kefin-section-more-toggle {
|
|
margin-left: auto !important;
|
|
}
|
|
|
|
@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;
|
|
}
|
|
}
|
|
|
|
#kefin-home-category-rail .kefin-home-category-rail {
|
|
height: auto !important;
|
|
}
|
|
|
|
.sections.homeSectionsContainer[data-category="discovery"] {
|
|
position: relative;
|
|
}
|
|
|
|
.sections.homeSectionsContainer[data-category="discovery"]::before {
|
|
content: "\E87A";
|
|
font-family: "Material Icons";
|
|
padding-left: max(env(safe-area-inset-left), 3.3%);
|
|
font-size: 1.5rem;
|
|
margin: 0;
|
|
padding-bottom: .2em;
|
|
padding-top: 1em;
|
|
display: block;
|
|
line-height: 1.2;
|
|
}
|
|
|
|
.sections.homeSectionsContainer[data-category="discovery"]::after {
|
|
content: "Discover Something To Watch";
|
|
font-family: inherit;
|
|
font-size: 1.5rem;
|
|
position: absolute;
|
|
left: calc(max(env(safe-area-inset-left), 3.3%) + 1.7em);
|
|
top: 1em;
|
|
line-height: 1.2;
|
|
pointer-events: none;
|
|
}
|
|
|
|
html:not([data-active-page="home"]) .snowverlay {
|
|
display: none;
|
|
}
|
|
|
|
// Hide the seasonal animations on mobile by default
|
|
@media (max-width: 899px) {
|
|
.snowverlay {
|
|
display: none !important;
|
|
}
|
|
}
|
|
|
|
html[data-active-page="home"] body[data-seasonal-background="true"] #reactRoot > .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;
|
|
}
|
|
|
|
/* Figure out a better way to do this without requiring :has() */
|
|
/* .homeSectionsContainer:has(> .verticalSection.section0:empty):has(> .verticalSection.section1:empty):has(
|
|
> .verticalSection.section2:empty
|
|
):has(> .verticalSection.section3:empty):has(> .verticalSection.section4:empty):has(> .verticalSection.section5:empty):has(
|
|
> .verticalSection.section6:empty
|
|
):has(> .verticalSection.section7:empty):has(> .verticalSection.section8:empty):has(> .verticalSection.section9:empty):not(
|
|
:has(> .section9 ~ :not(.discovery-loading-indicator))
|
|
)::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 1s forwards;
|
|
opacity: 0;
|
|
visibility: hidden;
|
|
}
|
|
*/
|
|
|
|
.kefin-home-category-btn span:is(.emby-button-foreground) {
|
|
top: 0px !important;
|
|
}
|
|
|
|
#kefin-home-category-rail[data-category]:not([data-category="none"]) ~ #slides-container {
|
|
display: none !important;
|
|
}
|
|
|
|
.sections.homeSectionsContainer:not([data-category="none"]),
|
|
html.layout-mobile .homePage .sections.homeSectionsContainer:not([data-category="none"]) {
|
|
margin-top: 0 !important;
|
|
top: 0 !important;
|
|
}
|
|
|
|
html[data-active-page="home"] [data-seasonal-theme="seasonal-halloween"][data-seasonal-background="true"] header.MuiAppBar-root,
|
|
html[data-active-page="home"] [data-seasonal-theme="seasonal-halloween"][data-seasonal-background="true"] .skinHeader:not(.osdHeader) .headerTop {
|
|
box-shadow: 0 3px 12px rgba(180, 0, 0, 0.7) !important;
|
|
border-bottom: 2px solid #8b0000;
|
|
}
|
|
html[data-active-page="home"] [data-seasonal-theme="seasonal-halloween"][data-seasonal-background="true"] .skinHeader:not(.osdHeader) .headerTop {
|
|
position: relative;
|
|
}
|
|
|
|
html[data-active-page="home"] [data-seasonal-theme="seasonal-halloween"][data-seasonal-background="true"] header.MuiAppBar-root::after,
|
|
html[data-active-page="home"] [data-seasonal-theme="seasonal-halloween"][data-seasonal-background="true"] .skinHeader:not(.osdHeader) .headerTop::after {
|
|
content: "";
|
|
position: absolute;
|
|
top: 100%;
|
|
left: 0;
|
|
width: 100%;
|
|
height: 14px;
|
|
pointer-events: none;
|
|
z-index: 9998;
|
|
background-color: #8b0000;
|
|
-webkit-mask-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 100" preserveAspectRatio="none"><path d="M0,0 L1000,0 L1000,20 C950,20 940,80 930,80 C920,80 910,20 860,20 C820,20 810,95 800,95 C790,95 780,20 720,20 C680,20 670,60 660,60 C650,60 640,20 580,20 C540,20 530,100 520,100 C510,100 500,20 440,20 C400,20 390,75 380,75 C370,75 360,20 300,20 C260,20 250,50 240,50 C230,50 220,20 160,20 C120,20 110,85 100,85 C90,85 80,20 0,20 Z"/></svg>');
|
|
mask-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 100" preserveAspectRatio="none"><path d="M0,0 L1000,0 L1000,20 C950,20 940,80 930,80 C920,80 910,20 860,20 C820,20 810,95 800,95 C790,95 780,20 720,20 C680,20 670,60 660,60 C650,60 640,20 580,20 C540,20 530,100 520,100 C510,100 500,20 440,20 C400,20 390,75 380,75 C370,75 360,20 300,20 C260,20 250,50 240,50 C230,50 220,20 160,20 C120,20 110,85 100,85 C90,85 80,20 0,20 Z"/></svg>');
|
|
-webkit-mask-size: 100% 100%;
|
|
mask-size: 100% 100%;
|
|
}
|
|
|
|
/* Procedural blood edge (SVG via --halloween-blood-splatter from homeScreen3.js) */
|
|
html[data-active-page="home"] [data-seasonal-theme="seasonal-halloween"][data-seasonal-background="true"] header.MuiAppBar-root::before,
|
|
html[data-active-page="home"] [data-seasonal-theme="seasonal-halloween"][data-seasonal-background="true"] .skinHeader:not(.osdHeader) .headerTop::before {
|
|
content: "";
|
|
position: absolute;
|
|
top: auto;
|
|
bottom: 0;
|
|
left: 0;
|
|
width: 100%;
|
|
height: var(--halloween-blood-band, 10px);
|
|
pointer-events: none;
|
|
opacity: var(--halloween-blood-opacity, 0.95);
|
|
z-index: 1;
|
|
background-image: var(--halloween-blood-splatter, none);
|
|
background-repeat: no-repeat !important;
|
|
background-size: 100% 100%;
|
|
background-position: bottom center;
|
|
}
|
|
|
|
html[data-active-page="home"] body[data-seasonal-background="true"] .backdropContainer .backdropImage {
|
|
display: none !important;
|
|
}
|
|
|
|
@media (hover: hover) and (pointer: fine) and (min-width: 900px) {
|
|
#kefin-home-category-rail .kefin-home-category-rail.kefin-home-chrome {
|
|
pointer-events: auto;
|
|
}
|
|
}
|
|
|
|
/* Compatibility Fix for the Jellyfin Featured Plugin https://github.com/spkesDE/jellyfin-featured-plugin/ */
|
|
|
|
.sections.homeSectionsContainer {
|
|
--slideshow-page-offset: 48px;
|
|
}
|
|
|
|
[data-active-page="home"] #homeTab {
|
|
margin-top: 1em;
|
|
}
|
|
|
|
/* Compatibility Fix for the MediaBar Enhanced Plugin https://github.com/spkesDE/jellyfin-featured-plugin/ */
|
|
|
|
body:has(.MuiAppBar-root):has(#slides-container):not(:has(#slides-container .slide-content)):not(.media-bar-mobile-16-9, .media-bar-mobile-4-3) .homePage #homeTab .homeSectionsContainer.sections:not([data-category="none"]) {
|
|
top: 0 !important;
|
|
} |