From 4a88db69661c9cfb011a3037dd15e56114768c2c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc-Andr=C3=A9=20Bombeck?= Date: Fri, 5 Jun 2026 14:06:20 +0200 Subject: [PATCH] fix(ui): route status colours through AA-safe semantic tokens Raw text-dracula-* utilities used as text fail WCAG AA contrast in light mode (the Alucard light theme carries no override for the raw primitives). Swap every text usage and its paired bg/border tint across the settings integration/notification/sharing/api cards, the insights recommendation, confidence, daily-briefing, health-score and coach-feedback surfaces, the bug-report banners, the copy-confirmation icon and the chart comparison caption to the theme-aware --success / --warning / --info / --destructive / --dose-accent tokens, which both themes override to an AA-safe tone. Dark mode is unchanged; decorative aria-hidden gradients and chart series fills stay on the raw primitives. Co-Authored-By: Claude Opus 4.8 (1M context) --- src/app/bugreport/page.tsx | 14 +++--- src/components/charts/health-chart.tsx | 2 +- src/components/error-details.tsx | 2 +- .../__tests__/daily-briefing.test.tsx | 8 ++-- .../insights/coach-panel/message-thread.tsx | 8 ++-- src/components/insights/confidence-badge.ts | 6 +-- src/components/insights/daily-briefing.tsx | 14 +++--- src/components/insights/health-score-card.tsx | 46 ++++++++++--------- .../insights/recommendation-card.tsx | 8 ++-- .../insights/recommendation-feedback.tsx | 10 ++-- src/components/settings/about-section.tsx | 2 +- src/components/settings/account-section.tsx | 10 ++-- src/components/settings/api-section.tsx | 12 ++--- .../settings/integration-status-pill.tsx | 21 ++++----- .../settings/integrations-section.tsx | 32 ++++++------- src/components/settings/ntfy-card.tsx | 2 +- src/components/settings/sharing-section.tsx | 8 ++-- src/components/settings/telegram-card.tsx | 2 +- src/components/settings/web-push-card.tsx | 2 +- 19 files changed, 106 insertions(+), 103 deletions(-) diff --git a/src/app/bugreport/page.tsx b/src/app/bugreport/page.tsx index 655de2806..e00dd5930 100644 --- a/src/app/bugreport/page.tsx +++ b/src/app/bugreport/page.tsx @@ -122,8 +122,8 @@ export default function BugReportPage() { {t("bugreport.subtitle")}

-
- +
+

{t("bugreport.disabledTitle")} @@ -149,16 +149,16 @@ export default function BugReportPage() {

{status?.configured && ( -
- +
+

{t("bugreport.githubEscalationNote")}

)} {!status?.configured && ( -
- +
+

{t("bugreport.internalOnlyNote")}

@@ -215,7 +215,7 @@ export default function BugReportPage() {
diff --git a/src/components/charts/health-chart.tsx b/src/components/charts/health-chart.tsx index c3f2efb74..2035eaf77 100644 --- a/src/components/charts/health-chart.tsx +++ b/src/components/charts/health-chart.tsx @@ -1407,7 +1407,7 @@ export function HealthChart({ v1.4.19 A2 — hidden on mobile to free up the title row. */} {effectiveCompareBaseline !== "none" && hasComparisonData && ( {t( diff --git a/src/components/error-details.tsx b/src/components/error-details.tsx index 7e0ba8a72..0ba6c65a3 100644 --- a/src/components/error-details.tsx +++ b/src/components/error-details.tsx @@ -96,7 +96,7 @@ export function ErrorDetails({ )}
{copied && ( -

+

{t("settings.sharing.copied")}

)} @@ -390,7 +390,7 @@ function ShareLinksCard() { {link.label}

- + {t("settings.sharing.statusActive")} {link.allowFhirApi && ( diff --git a/src/components/settings/telegram-card.tsx b/src/components/settings/telegram-card.tsx index fdbdb6a09..ec66489d0 100644 --- a/src/components/settings/telegram-card.tsx +++ b/src/components/settings/telegram-card.tsx @@ -157,7 +157,7 @@ export function TelegramCard({ role="alert" className={`text-sm ${ msgType === "success" - ? "text-dracula-green" + ? "text-success" : "text-destructive" }`} > diff --git a/src/components/settings/web-push-card.tsx b/src/components/settings/web-push-card.tsx index 7adc85ec3..ccf3a50e3 100644 --- a/src/components/settings/web-push-card.tsx +++ b/src/components/settings/web-push-card.tsx @@ -216,7 +216,7 @@ export function WebPushCard() { {msg && (

{msg}