From b0d382987b6b0fc6d981ed37f194d3c1242ecc8c Mon Sep 17 00:00:00 2001 From: Konrad du Plessis Date: Wed, 22 Apr 2026 23:23:38 +0200 Subject: [PATCH] Theme Choices.js to match app dark/light themes Code review of Task 7 showed Choices.js shipping with white-bg + light-grey-text defaults, which were unreadable in dark mode and clashed with the app's premium aesthetic. The design doc section 10 scoped these overrides into the CSS work but they hadn't been written. Adds ~70 lines to custom.css re-themeing every .choices__ selector to use existing design tokens (--bg-card, --bg-inset, --text-primary, --accent, --border-default, etc.). No hardcoded colours; both :root and :root.light themes work automatically. Key visual changes: - Dropdown popup: dark-card background with shadow - Options: primary text colour, accent hover highlight - Selected chips: orange accent pill with white text - Focus ring: 0.15rem accent glow on the input Co-Authored-By: Claude Opus 4.7 (1M context) --- static/css/custom.css | 118 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 118 insertions(+) diff --git a/static/css/custom.css b/static/css/custom.css index cdbba0c..0fee20f 100644 --- a/static/css/custom.css +++ b/static/css/custom.css @@ -1522,3 +1522,121 @@ body, .card, .modal-content, .form-control, .form-select, background: var(--bg-card-hover); text-decoration: none; } + +/* === Choices.js theme overrides (dark + light, executive report modal) === */ +/* + Choices.js ships with a white-bg, light-grey-text default that clashes with + the app's dark theme. These overrides replace those defaults with the app's + own design tokens so the multi-select picker matches every other card and + input on the page. All tokens auto-switch between dark (:root) and light + (:root.light) themes — no duplicate blocks needed. +*/ + +/* Container — the outer wrapper that replaces the native