From 61b14e8f6575e44d725bf2ffc33a6ba544188463 Mon Sep 17 00:00:00 2001 From: Bryan Van Deusen Date: Mon, 13 Jul 2026 14:27:02 -0400 Subject: [PATCH 1/2] fix(ui): cleaner active-tab indicator (drop odd v4 slider) (#1480) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Vuetify 4's MD3 v-tab slider underline rendered wider than the tab and floated below it (operator-flagged in the v4 review). The active tab's text is already accent-coloured, so drop the slider and mark the active tab with a subtle accent fill + rounded top — a clean highlight, app-wide across all tabbed views. Co-Authored-By: Claude Opus 4.8 (1M context) --- frontend/src/styles/app.css | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/frontend/src/styles/app.css b/frontend/src/styles/app.css index 31712b8..206a5b5 100644 --- a/frontend/src/styles/app.css +++ b/frontend/src/styles/app.css @@ -49,3 +49,15 @@ ul, ol, figure, details, summary { padding: 0; margin: 0; } h1, h2, h3, h4, h5, h6, p { margin: 0; } } + +/* Active-tab indicator (operator-flagged 2026-07-13 in the Vuetify-4 review): v4's + MD3 v-tab "slider" underline renders wider than the tab and floats below it. The + active tab's TEXT is already accent-coloured (color="accent"), so drop the slider + and mark the active tab with a subtle accent fill + rounded top — a clean, + unambiguous highlight app-wide (Subscriptions / Browse / Settings / Series). */ +.v-tab__slider { display: none !important; } +.v-tab[aria-selected="true"], +.v-tab.v-tab--selected { + background: rgb(var(--v-theme-accent) / 0.12); + border-radius: 8px 8px 0 0; +} From eed42a260a4d58c4a72013b22eb30496e588ced4 Mon Sep 17 00:00:00 2001 From: Bryan Van Deusen Date: Mon, 13 Jul 2026 14:42:07 -0400 Subject: [PATCH 2/2] fix(ui): one continuous chrome gradient across nav + sticky sub-headers (#1478) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The TopNav and each sticky sub-header pinned beneath it (Gallery's filter bar, the Browse/Series/Settings/Subscriptions tabs bars) each painted their OWN dark-to-transparent gradient (Gallery) or a solid surface band (the rest), so the fade read as happening twice — dark, fade out, then dark again — instead of one gradient flowing from the nav down through the sub-nav. Operator asked to treat the sub-nav as part of the nav with a single gradient. New shared .fc-chrome-continues primitive (app.css): the nav fades from opaque to a shared --fc-chrome-seam alpha (on views flagged meta.stickyChrome), and the sub-header continues from that exact seam alpha to transparent over its own height. Both reference the same var so the alphas meet at the 64px boundary — no re-darkening, no doubling. Percentage stops keep it spanning the filter bar's expanding refine panel; the primitive's blur keeps tabs/controls legible where the old solid bars had none. --fc-chrome-seam is the single tuning knob. Co-Authored-By: Claude Opus 4.8 (1M context) --- frontend/src/components/TopNav.vue | 24 +++++++++++++- .../components/gallery/GalleryFilterBar.vue | 20 +++--------- frontend/src/router.js | 10 +++--- frontend/src/styles/app.css | 32 +++++++++++++++++++ frontend/src/views/BrowseView.vue | 5 +-- frontend/src/views/SeriesView.vue | 7 ++-- frontend/src/views/SettingsView.vue | 10 +++--- frontend/src/views/SubscriptionsView.vue | 7 ++-- 8 files changed, 81 insertions(+), 34 deletions(-) diff --git a/frontend/src/components/TopNav.vue b/frontend/src/components/TopNav.vue index 4c0028f..eaaedd6 100644 --- a/frontend/src/components/TopNav.vue +++ b/frontend/src/components/TopNav.vue @@ -1,5 +1,5 @@