From da9ceb14caca562a45c5c7bc56e07a11c6327d1c Mon Sep 17 00:00:00 2001 From: Paul Nothaft Date: Tue, 1 Sep 2026 16:41:13 +0200 Subject: [PATCH] fix(ui): stop branding-theme text colour rendering headings invisible Components that render headings with no explicit text-colour class inherit `body { color: var(--color-text) }`, and the branding theme sets --color-text on app-wide -- so on a dark-toned theme they render near-invisible (#f5f5f5 on #fff), including inside the admin panel in light mode. Compliance-adjacent: /impressum and /datenschutz are two of the surfaces. Convention copied from AccountingTab, the QA control that is visually identical but not affected: h2 -> text-neutral-900 dark:text-neutral-100, labels -> neutral-700/300, checkbox labels -> neutral-800/200, hints -> neutral-500/400. Fixed beyond the reported lines, after sweeping each file: - LegalPage: the CMS prose wrapper and the single-segment 404 heading. - CMSContentBlock: the multi-segment CMS 404 and the admin unknown-route 404 turn out to be the same component (App.tsx path="*"; there is no admin-level catch-all). Its text already used var(--color-text); the actual defect was .card hardcoding bg-white under themed text, so the surface was fixed, not the text. - SettingsBusinessProfilePage (11), CrmSettingsPage (15, incl. both shared checkbox-label helpers covering ~20 rendered rows), ReminderTemplatesPage (7, incl. text-theme/text-muted-theme on an admin page where they are wrong). - The setVal(k, e.target.checked)} /> {t(`crmSettings.${k}.label`, label)} @@ -158,7 +158,7 @@ export const CrmSettingsPage: React.FC = () => { const stored = values[k]; const effective = stored === undefined || stored === null ? true : !!stored; return ( -