From 969d5ffc1b5d618daa40ab60c1a887457d7593fa Mon Sep 17 00:00:00 2001 From: Broque Thomas <26755000+Nezreka@users.noreply.github.com> Date: Tue, 26 May 2026 14:41:57 -0700 Subject: [PATCH] =?UTF-8?q?Fix=20LB=20Sync=20tab=20card=20styling=20?= =?UTF-8?q?=E2=80=94=20dead=20CSS=20+=20ID=20collision?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Two interacting bugs that left LB Sync-tab cards rendering with a solid orange gradient background instead of the dark glass style every other Sync-page card uses: 1. **Duplicate element id** ``listenbrainz-tab-content``: the new Sync-tab content div reused the same id the Discover page's pre-existing LB section already owned. Two elements with the same id is invalid HTML, and ``getElementById`` in the refresh loop was hitting the Sync version first while ``initialize SyncPage``'s ``${tabId}-tab-content`` lookup could race against it. Renamed the Sync-page tab id + ``data-tab`` attribute to ``listenbrainz-sync`` (matches the existing ``${tabId}-tab- content`` convention so the lookup becomes ``listenbrainz-sync-tab-content``). Discover-page LB tab keeps its original id untouched. 2. **Dead ``.listenbrainz-playlist-card`` rule** at style.css L36155 painting a solid ``linear-gradient(#eb743b → #d26230)`` over the card. That class was orphaned — no JS or HTML instantiated it before Phase 1c.1 — but it sat at higher source order than my unified ``.youtube-playlist-card, .tidal-playlist-card, ...`` rule, so the bare-class selector won the cascade and overwrote the dark glass background. Also removed the matching dead ``.listenbrainz-icon { font- size: 48px }`` rule and its local ``@keyframes pulse`` copy (the keyframes are defined in four other live blocks). 3. **Missing LB selectors in unified inner-element rules**: ``.listenbrainz-playlist-card`` was only added to the OUTER card selector group in the first pass — the inner ``.playlist-card-icon`` / ``.playlist-card-content`` / ``.playlist-card-name`` / ``.playlist-card-info`` / ``.playlist-card-action-btn`` (+ ::before, :hover, :disabled) selector groups were left out, so the inner elements lost all their styling. Bulk-added LB to every group so the card inherits the full glass shell the other sources get, with a brand-orange ``rgba(235, 116, 59, ...)`` accent matching the Tidal / Deezer / Spotify-public pattern. --- webui/index.html | 6 +-- webui/static/style.css | 66 ++++++++++--------------------- webui/static/sync-listenbrainz.js | 8 ++-- webui/static/sync-services.js | 5 ++- 4 files changed, 32 insertions(+), 53 deletions(-) diff --git a/webui/index.html b/webui/index.html index 6da1ac1b..9c150945 100644 --- a/webui/index.html +++ b/webui/index.html @@ -1027,7 +1027,7 @@ -