From aad1a6c3f0f31a25378525fdd46c641a1f14c9ad Mon Sep 17 00:00:00 2001
From: Psychotoxical <171614930+Psychotoxical@users.noreply.github.com>
Date: Sun, 7 Jun 2026 12:22:54 +0200
Subject: [PATCH] fix(themes): route remaining UI colours through theme tokens
(#1014)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
* fix(themes): route remaining UI colours through theme tokens
An audit found several surfaces still wired to the fixed Catppuccin
palette or hardcoded hex, so community themes could not recolour them:
the 5-star rating, the global search field, the gradient-text flourish,
badges and category-avatar text, and the What's New page + sidebar
banner. Rewire them to existing contract tokens — no new tokens, and the
built-in themes look identical (the values match). Community themes now
control these areas.
Also fixes device-sync rows referencing an undefined --bg-secondary
(they rendered with no background); they now use --bg-card.
* docs(themes): note the theme-coverage PR in the Theme Store entry
Add PR #1014 to the still-unreleased Theme Store changelog and credits
entry, alongside the other follow-ups.
---
CHANGELOG.md | 2 +-
src/config/settingsCredits.ts | 2 +-
src/pages/Composers.tsx | 6 +-
src/styles/components/device-sync.css | 4 +-
src/styles/components/page.css | 55 +++++++++----------
.../components/what-s-new-banner-page.css | 28 +++++-----
src/styles/themes/badge.css | 2 +-
src/styles/themes/input-search.css | 4 +-
src/styles/themes/star-rating.css | 12 ++--
src/styles/themes/utility-classes.css | 2 +-
10 files changed, 57 insertions(+), 60 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 797d4dc0..0465cf3e 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -56,7 +56,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Themes — community Theme Store
-**By [@Psychotoxical](https://github.com/Psychotoxical), PR [#1009](https://github.com/Psychotoxical/psysonic/pull/1009), [#1011](https://github.com/Psychotoxical/psysonic/pull/1011), [#1012](https://github.com/Psychotoxical/psysonic/pull/1012), [#1013](https://github.com/Psychotoxical/psysonic/pull/1013)**
+**By [@Psychotoxical](https://github.com/Psychotoxical), PR [#1009](https://github.com/Psychotoxical/psysonic/pull/1009), [#1011](https://github.com/Psychotoxical/psysonic/pull/1011), [#1012](https://github.com/Psychotoxical/psysonic/pull/1012), [#1013](https://github.com/Psychotoxical/psysonic/pull/1013), [#1014](https://github.com/Psychotoxical/psysonic/pull/1014)**
* New **Settings → Themes** tab: pick a theme, set the day/night scheduler, and browse a built-in **Theme Store** to install, update and uninstall community themes — with search, a dark/light filter, and full-size thumbnail previews.
* The app now bundles six core themes (Catppuccin Mocha & Latte, Kanagawa Wave, Stark HUD, and the colour-blind-safe Vision Dark / Vision Navy); every other palette installs on demand from the [psysonic-themes](https://github.com/Psysonic/psysonic-themes) repo. Installed themes are saved locally and apply instantly at startup, even offline.
diff --git a/src/config/settingsCredits.ts b/src/config/settingsCredits.ts
index 5ce2ee68..ce32eb1c 100644
--- a/src/config/settingsCredits.ts
+++ b/src/config/settingsCredits.ts
@@ -356,7 +356,7 @@ const CONTRIBUTOR_ENTRIES = [
'Performance Probe: Monitor/Toggles redesign, live CPU/RSS/thread metrics, overlay pins and sparklines, macOS snapshots (PR #890)',
'Performance Probe: opt-in thread-group CPU poll toggle and includeThreadGroups IPC fix (PR #891)',
'Queue: switchable display mode — Queue (upcoming only) vs Playlist (full list), with header toggle and settings entry (PR #922)',
- 'Community Theme Store: semantic-token refactor, dedicated Themes tab with day/night scheduler, install/update/uninstall, local .zip import with full contract validation, and 80+ palettes moved to an on-demand CDN repo (PR #1009, #1011, #1012, #1013)',
+ 'Community Theme Store: semantic-token refactor, dedicated Themes tab with day/night scheduler, install/update/uninstall, local .zip import with full contract validation, and 80+ palettes moved to an on-demand CDN repo (PR #1009, #1011, #1012, #1013, #1014)',
],
},
{
diff --git a/src/pages/Composers.tsx b/src/pages/Composers.tsx
index cc2da0fe..f63432e7 100644
--- a/src/pages/Composers.tsx
+++ b/src/pages/Composers.tsx
@@ -71,7 +71,7 @@ function ComposerRowAvatar({ artist }: { artist: SubsonicArtist }) {
className="artist-avatar artist-avatar-initial"
style={{ background: color, border: 0 }}
>
- {nameInitial(artist.name)}
+ {nameInitial(artist.name)}
);
}
@@ -351,7 +351,7 @@ export default function Composers() {