diff --git a/bin/inject-middle-theme.py b/bin/inject-middle-theme.py index ab9e286..97bac7a 100755 --- a/bin/inject-middle-theme.py +++ b/bin/inject-middle-theme.py @@ -33,49 +33,218 @@ wordmark_url = (ASSETS / "arrflix-wordmark.b64-url").read_text(encoding="utf-8") START = "/* ARRFLIX-MIDDLE-THEME-BEGIN */" END = "/* ARRFLIX-MIDDLE-THEME-END */" -CSS = ( - "body.arrflix-themed .skinHeader .headerTop{display:flex!important;align-items:center;position:relative;min-height:48px}\n" - "body.arrflix-themed .skinHeader .headerLeft,body.arrflix-themed .skinHeader .headerRight{flex:1 1 0;display:flex;align-items:center}\n" - "body.arrflix-themed .skinHeader .headerLeft{justify-content:flex-start;gap:.4em}\n" - "body.arrflix-themed .skinHeader .headerRight{justify-content:flex-end}\n" - "body.arrflix-themed .skinHeader .headerHomeButton,body.arrflix-themed .skinHeader .pageTitleWithLogo,body.arrflix-themed .skinHeader .headerBackButton{display:none!important}\n" - "body.arrflix-themed .skinHeader .headerLeft > h3.pageTitle:not(.pageTitleWithLogo){display:none!important}\n" - "body.arrflix-themed .skinHeader .headerCastButton,body.arrflix-themed .skinHeader .headerSyncButton{display:none!important}\n" - "body.arrflix-themed .headerTabs.sectionTabs{display:none!important}\n" - "/* Hide the 'My Media' library row on home page (first vertical section, .section0). Continue Watching=section1, Continue Listening=section2, Continue Reading=section3, Next Up=section5, Recently Added=section6 — leave those untouched. */\n" - "body.arrflix-themed .homePage .homeSectionsContainer .verticalSection.section0{display:none!important}\n" - "/* Hide entire header during video playback */\n" - "body.arrflix-video-active:not(:has(#loginPage:not(.hide))) .skinHeader,body.arrflix-video-active .arrflix-headerLogo,body.arrflix-video-active .arrflix-nav{display:none!important}\n" - ".arrflix-headerLogo{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:120px;height:38px;" - "background:center/contain no-repeat url('" + wordmark_url + "');" - "z-index:1;display:block;text-indent:-9999px;overflow:hidden}\n" - ".arrflix-headerLogo:hover{filter:brightness(1.15)}\n" - ".arrflix-nav{text-transform:uppercase;letter-spacing:.08em;font-weight:600;padding:0 .9em;color:#fff!important;text-decoration:none;display:inline-flex;align-items:center;height:100%;font-size:.85em;transition:color .18s ease,text-shadow .18s ease,font-weight .18s ease}\n" - ".arrflix-nav:hover{color:#E50914!important}\n" - ".arrflix-nav.active{color:#E50914!important;font-weight:700;text-shadow:0 0 12px rgba(229,9,20,0.55),0 0 24px rgba(229,9,20,0.25)}\n" - "/* Pure-black background — L1: gated by :not(.arrflix-video-active). Self-disables when JS sets body.arrflix-video-active. Doc 30 lesson — recurring black-screen-over-video bug class. */\n" - "html,body.arrflix-themed:not(.arrflix-video-active),body.arrflix-themed:not(.arrflix-video-active) .backgroundContainer,body.arrflix-themed:not(.arrflix-video-active) .skinBody,body.arrflix-themed:not(.arrflix-video-active) .mainAnimatedPage,body.arrflix-themed:not(.arrflix-video-active) .mainAnimatedPages,body.arrflix-themed:not(.arrflix-video-active) .pageContainer,body.arrflix-themed:not(.arrflix-video-active) #reactRoot{background-color:#000!important}\n" - "body.arrflix-themed:not(.arrflix-video-active) .backgroundContainer.withBackdrop{background-color:rgba(0,0,0,.86)!important}\n" - "/* Video isolation L2: when arrflix-video-active is set, ancestors become transparent so