Spaces:
Running
Running
Hermes Agent commited on
Commit ·
1b2d8f2
1
Parent(s): fc91e78
fix(ui): hide topbar on splash and login, prevent tv shows search overlap, and eliminate header blur over spotlight
Browse files- apex/ui/abyss.css +77 -15
- apex/ui/spotlight-loader.js +15 -2
- apex/ui/spotlight.css +3 -11
apex/ui/abyss.css
CHANGED
|
@@ -599,7 +599,7 @@ body:has(#videoOsdPage:not(.hide)) header.MuiAppBar-root>.MuiToolbar-root>.MuiBo
|
|
| 599 |
}
|
| 600 |
|
| 601 |
html[data-theme="dark"] .MuiBox-root .tabContent.pageTabContent.is-active.abyss-spotlight-active .featurediframe.focusable {
|
| 602 |
-
margin-top:
|
| 603 |
}
|
| 604 |
|
| 605 |
html[data-theme="dark"] header.MuiAppBar-root {
|
|
@@ -3729,10 +3729,11 @@ body, html, .backgroundContainer {
|
|
| 3729 |
.skinHeader,
|
| 3730 |
.skinHeader.focuscontainer-x,
|
| 3731 |
.skinHeader-withBackground {
|
| 3732 |
-
background:
|
| 3733 |
-
backdrop-filter:
|
| 3734 |
-
-webkit-backdrop-filter:
|
| 3735 |
-
border
|
|
|
|
| 3736 |
box-shadow: none !important;
|
| 3737 |
}
|
| 3738 |
|
|
@@ -3902,14 +3903,18 @@ header.MuiAppBar-root > .MuiToolbar-root > .MuiStack-root:first-of-type:has(butt
|
|
| 3902 |
opacity: 0 !important;
|
| 3903 |
}
|
| 3904 |
|
| 3905 |
-
/* 2. HEADER CONTAINER & BAR */
|
| 3906 |
.skinHeader,
|
| 3907 |
.skinHeader.focuscontainer-x,
|
| 3908 |
.skinHeader-withBackground,
|
|
|
|
| 3909 |
header.MuiAppBar-root {
|
| 3910 |
-
background:
|
| 3911 |
-
|
| 3912 |
-
-
|
|
|
|
|
|
|
|
|
|
| 3913 |
border-bottom: none !important;
|
| 3914 |
box-shadow: none !important;
|
| 3915 |
height: 56px !important;
|
|
@@ -3920,6 +3925,12 @@ header.MuiAppBar-root {
|
|
| 3920 |
left: 0 !important;
|
| 3921 |
right: 0 !important;
|
| 3922 |
z-index: 1000 !important;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 3923 |
}
|
| 3924 |
|
| 3925 |
.headerTop,
|
|
@@ -4412,22 +4423,73 @@ div[data-category="nextup"] .cardScalable,
|
|
| 4412 |
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.4) !important;
|
| 4413 |
}
|
| 4414 |
|
| 4415 |
-
/* Mobile Portrait Mode */
|
| 4416 |
@media (max-width: 600px) and (orientation: portrait) {
|
| 4417 |
#apex-tv-topbar {
|
| 4418 |
-
height:
|
| 4419 |
-
padding: 0
|
|
|
|
|
|
|
|
|
|
| 4420 |
}
|
| 4421 |
#apex-tv-topbar .apex-tv-tabs {
|
| 4422 |
-
gap:
|
| 4423 |
}
|
| 4424 |
.apex-tv-tab,
|
| 4425 |
.apex-nav-item {
|
| 4426 |
-
font-size:
|
| 4427 |
-
padding:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 4428 |
}
|
| 4429 |
}
|
| 4430 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 4431 |
/* Landscape Mode & Desktop/TV */
|
| 4432 |
@media (min-width: 601px), (orientation: landscape) {
|
| 4433 |
#apex-tv-topbar {
|
|
|
|
| 599 |
}
|
| 600 |
|
| 601 |
html[data-theme="dark"] .MuiBox-root .tabContent.pageTabContent.is-active.abyss-spotlight-active .featurediframe.focusable {
|
| 602 |
+
margin-top: 0 !important;
|
| 603 |
}
|
| 604 |
|
| 605 |
html[data-theme="dark"] header.MuiAppBar-root {
|
|
|
|
| 3729 |
.skinHeader,
|
| 3730 |
.skinHeader.focuscontainer-x,
|
| 3731 |
.skinHeader-withBackground {
|
| 3732 |
+
background: transparent !important;
|
| 3733 |
+
backdrop-filter: none !important;
|
| 3734 |
+
-webkit-backdrop-filter: none !important;
|
| 3735 |
+
border: none !important;
|
| 3736 |
+
border-bottom: none !important;
|
| 3737 |
box-shadow: none !important;
|
| 3738 |
}
|
| 3739 |
|
|
|
|
| 3903 |
opacity: 0 !important;
|
| 3904 |
}
|
| 3905 |
|
| 3906 |
+
/* 2. HEADER CONTAINER & BAR - Fully transparent, zero blur over spotlight */
|
| 3907 |
.skinHeader,
|
| 3908 |
.skinHeader.focuscontainer-x,
|
| 3909 |
.skinHeader-withBackground,
|
| 3910 |
+
.skinHeader-withBackground::before,
|
| 3911 |
header.MuiAppBar-root {
|
| 3912 |
+
background: transparent !important;
|
| 3913 |
+
background-color: transparent !important;
|
| 3914 |
+
background-image: none !important;
|
| 3915 |
+
backdrop-filter: none !important;
|
| 3916 |
+
-webkit-backdrop-filter: none !important;
|
| 3917 |
+
border: none !important;
|
| 3918 |
border-bottom: none !important;
|
| 3919 |
box-shadow: none !important;
|
| 3920 |
height: 56px !important;
|
|
|
|
| 3925 |
left: 0 !important;
|
| 3926 |
right: 0 !important;
|
| 3927 |
z-index: 1000 !important;
|
| 3928 |
+
pointer-events: none !important;
|
| 3929 |
+
}
|
| 3930 |
+
|
| 3931 |
+
.skinHeader *,
|
| 3932 |
+
header.MuiAppBar-root * {
|
| 3933 |
+
pointer-events: auto;
|
| 3934 |
}
|
| 3935 |
|
| 3936 |
.headerTop,
|
|
|
|
| 4423 |
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.4) !important;
|
| 4424 |
}
|
| 4425 |
|
| 4426 |
+
/* Mobile Portrait Mode: Compact tabs to prevent TV Shows & Search collision */
|
| 4427 |
@media (max-width: 600px) and (orientation: portrait) {
|
| 4428 |
#apex-tv-topbar {
|
| 4429 |
+
height: 48px !important;
|
| 4430 |
+
padding: 0 4px !important;
|
| 4431 |
+
background: transparent !important;
|
| 4432 |
+
backdrop-filter: none !important;
|
| 4433 |
+
-webkit-backdrop-filter: none !important;
|
| 4434 |
}
|
| 4435 |
#apex-tv-topbar .apex-tv-tabs {
|
| 4436 |
+
gap: 4px !important;
|
| 4437 |
}
|
| 4438 |
.apex-tv-tab,
|
| 4439 |
.apex-nav-item {
|
| 4440 |
+
font-size: 12px !important;
|
| 4441 |
+
padding: 4px 7px !important;
|
| 4442 |
+
letter-spacing: -0.01em !important;
|
| 4443 |
+
}
|
| 4444 |
+
/* Right side controls: Search & Profile pinned safely to the right */
|
| 4445 |
+
.headerRight,
|
| 4446 |
+
header.MuiAppBar-root > .MuiToolbar-root > .MuiBox-root:last-of-type,
|
| 4447 |
+
header.MuiAppBar-root > .MuiToolbar-root > .MuiStack-root:last-of-type {
|
| 4448 |
+
position: absolute !important;
|
| 4449 |
+
right: 8px !important;
|
| 4450 |
+
top: 0 !important;
|
| 4451 |
+
bottom: 0 !important;
|
| 4452 |
+
display: flex !important;
|
| 4453 |
+
align-items: center !important;
|
| 4454 |
+
gap: 2px !important;
|
| 4455 |
+
padding: 0 !important;
|
| 4456 |
+
margin: 0 !important;
|
| 4457 |
+
}
|
| 4458 |
+
.headerSearchButton,
|
| 4459 |
+
button[data-action="search"],
|
| 4460 |
+
.headerUserButtonRound,
|
| 4461 |
+
.headerButton-user {
|
| 4462 |
+
margin: 0 1px !important;
|
| 4463 |
+
padding: 4px !important;
|
| 4464 |
+
min-width: 32px !important;
|
| 4465 |
+
width: 32px !important;
|
| 4466 |
+
height: 32px !important;
|
| 4467 |
}
|
| 4468 |
}
|
| 4469 |
|
| 4470 |
+
/* Never display topbar on splash screen, login screen, server selection, or wizard */
|
| 4471 |
+
#loginPage ~ #apex-tv-topbar,
|
| 4472 |
+
body:has(#loginPage:not(.hide)) #apex-tv-topbar,
|
| 4473 |
+
body:has(.loginPage:not(.hide)) #apex-tv-topbar,
|
| 4474 |
+
body:has(#selectServerPage:not(.hide)) #apex-tv-topbar,
|
| 4475 |
+
body:has(#forgotPasswordPage:not(.hide)) #apex-tv-topbar,
|
| 4476 |
+
body:has(.manualLoginForm) #apex-tv-topbar,
|
| 4477 |
+
body:has(.splashLogo:not(.hide):not(:empty)) #apex-tv-topbar,
|
| 4478 |
+
body.is-logged-out #apex-tv-topbar {
|
| 4479 |
+
display: none !important;
|
| 4480 |
+
visibility: hidden !important;
|
| 4481 |
+
opacity: 0 !important;
|
| 4482 |
+
pointer-events: none !important;
|
| 4483 |
+
}
|
| 4484 |
+
|
| 4485 |
+
/* Clean header on login and splash */
|
| 4486 |
+
#loginPage .skinHeader,
|
| 4487 |
+
.loginPage .skinHeader,
|
| 4488 |
+
#selectServerPage .skinHeader,
|
| 4489 |
+
.selectServerPage .skinHeader {
|
| 4490 |
+
display: none !important;
|
| 4491 |
+
}
|
| 4492 |
+
|
| 4493 |
/* Landscape Mode & Desktop/TV */
|
| 4494 |
@media (min-width: 601px), (orientation: landscape) {
|
| 4495 |
#apex-tv-topbar {
|
apex/ui/spotlight-loader.js
CHANGED
|
@@ -765,11 +765,24 @@ function findHomeTab() {
|
|
| 765 |
if (tvTopbar) {
|
| 766 |
var isVideo = !!document.querySelector(".videoPlayerContainer:not(.hide), #videoOsdPage:not(.hide), video");
|
| 767 |
var hash = window.location.hash || "";
|
| 768 |
-
var isHiddenRoute = hash.indexOf("dashboard") !== -1 ||
|
| 769 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 770 |
tvTopbar.style.display = "none";
|
|
|
|
|
|
|
| 771 |
} else {
|
| 772 |
tvTopbar.style.display = "flex";
|
|
|
|
| 773 |
}
|
| 774 |
}
|
| 775 |
|
|
|
|
| 765 |
if (tvTopbar) {
|
| 766 |
var isVideo = !!document.querySelector(".videoPlayerContainer:not(.hide), #videoOsdPage:not(.hide), video");
|
| 767 |
var hash = window.location.hash || "";
|
| 768 |
+
var isHiddenRoute = hash.indexOf("dashboard") !== -1 ||
|
| 769 |
+
hash.indexOf("settings") !== -1 ||
|
| 770 |
+
hash.indexOf("login") !== -1 ||
|
| 771 |
+
hash.indexOf("selectserver") !== -1 ||
|
| 772 |
+
hash.indexOf("forgotpassword") !== -1;
|
| 773 |
+
|
| 774 |
+
var isAuthPage = !!document.querySelector("#loginPage:not(.hide), .loginPage:not(.hide), #selectServerPage:not(.hide), #forgotPasswordPage:not(.hide), .manualLoginForm, form[data-action='login'], input[type='password']");
|
| 775 |
+
var isSplash = !!document.querySelector(".splashLogo:not(.hide), #splashPage:not(.hide), .splashLogo");
|
| 776 |
+
var hasHomeOrLibrary = !!document.querySelector("#indexPage, .homePage, #homeTab, .pageTabContent, .mainDrawer, .itemsContainer");
|
| 777 |
+
var isUserLoggedIn = (window.ApiClient && typeof window.ApiClient.isLoggedIn === "function") ? window.ApiClient.isLoggedIn() : (window.ApiClient && !!window.ApiClient.accessToken());
|
| 778 |
+
|
| 779 |
+
if (isVideo || isHiddenRoute || isAuthPage || (isSplash && !hasHomeOrLibrary) || (!isUserLoggedIn && !hasHomeOrLibrary)) {
|
| 780 |
tvTopbar.style.display = "none";
|
| 781 |
+
tvTopbar.style.visibility = "hidden";
|
| 782 |
+
return;
|
| 783 |
} else {
|
| 784 |
tvTopbar.style.display = "flex";
|
| 785 |
+
tvTopbar.style.visibility = "visible";
|
| 786 |
}
|
| 787 |
}
|
| 788 |
|
apex/ui/spotlight.css
CHANGED
|
@@ -26,14 +26,8 @@ body {
|
|
| 26 |
z-index: 1;
|
| 27 |
opacity: 0;
|
| 28 |
transition: opacity 1.2s var(--ease);
|
| 29 |
-
-webkit-mask-image:
|
| 30 |
-
|
| 31 |
-
linear-gradient(to right, transparent 0%, black 15%, black 85%, transparent 100%);
|
| 32 |
-
-webkit-mask-composite: source-in;
|
| 33 |
-
mask-image:
|
| 34 |
-
linear-gradient(to bottom, black 35%, transparent 100%),
|
| 35 |
-
linear-gradient(to right, transparent 0%, black 15%, black 85%, transparent 100%);
|
| 36 |
-
mask-composite: intersect;
|
| 37 |
}
|
| 38 |
|
| 39 |
#backdrop img {
|
|
@@ -61,9 +55,7 @@ body {
|
|
| 61 |
/* Seamless bottom fade directly to OLED pitch black #000000 */
|
| 62 |
linear-gradient(to top, #000000 0%, rgba(0, 0, 0, 0.88) 22%, rgba(0, 0, 0, 0.45) 48%, transparent 80%),
|
| 63 |
/* Left side reading gradient ensuring text/metadata has 100% contrast */
|
| 64 |
-
linear-gradient(to right, #000000 0%, rgba(0, 0, 0, 0.8) 32%, rgba(0, 0, 0, 0.35) 58%, transparent 85%)
|
| 65 |
-
/* Subtle top gradient for header bar integration */
|
| 66 |
-
linear-gradient(to bottom, rgba(0, 0, 0, 0.65) 0%, transparent 18%);
|
| 67 |
pointer-events: none;
|
| 68 |
}
|
| 69 |
|
|
|
|
| 26 |
z-index: 1;
|
| 27 |
opacity: 0;
|
| 28 |
transition: opacity 1.2s var(--ease);
|
| 29 |
+
-webkit-mask-image: linear-gradient(to bottom, black 50%, transparent 100%);
|
| 30 |
+
mask-image: linear-gradient(to bottom, black 50%, transparent 100%);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 31 |
}
|
| 32 |
|
| 33 |
#backdrop img {
|
|
|
|
| 55 |
/* Seamless bottom fade directly to OLED pitch black #000000 */
|
| 56 |
linear-gradient(to top, #000000 0%, rgba(0, 0, 0, 0.88) 22%, rgba(0, 0, 0, 0.45) 48%, transparent 80%),
|
| 57 |
/* Left side reading gradient ensuring text/metadata has 100% contrast */
|
| 58 |
+
linear-gradient(to right, #000000 0%, rgba(0, 0, 0, 0.8) 32%, rgba(0, 0, 0, 0.35) 58%, transparent 85%);
|
|
|
|
|
|
|
| 59 |
pointer-events: none;
|
| 60 |
}
|
| 61 |
|