From fe41d8497dcdeedee77eb28e21e1b2171f7af554 Mon Sep 17 00:00:00 2001 From: kittors Date: Fri, 21 Aug 2026 14:13:25 +0800 Subject: [PATCH 1/2] fix(ai-accounts): stop painting the healthy state green MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A card at rest lit five emerald surfaces at once: the plan badge, the quota chip's border, its background, its label, and the success rate. Every account in good standing therefore rendered as one flat green field, and a colour that is always on cannot signal anything — the amber and rose tones meant to flag a quota worth acting on had to compete with it for attention. Return all five to the neutral slate the surrounding chips already use and keep only the progress ring green, so a healthy quota still reads as healthy without claiming the whole card. The amber (20-60%) and rose (<20%) branches, the warning/urgent/expired subscription tones and the sub-90% success rates are deliberately untouched: they are now the only coloured things on the grid, which is the point. Co-Authored-By: Claude Opus 5 --- pages/auth-files/components/AuthFilesFilesTab.tsx | 2 +- pages/auth-files/components/QuotaMetricChips.tsx | 12 ++++++++---- .../hooks/useAuthFilesFilesPresentation.tsx | 4 +++- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/pages/auth-files/components/AuthFilesFilesTab.tsx b/pages/auth-files/components/AuthFilesFilesTab.tsx index 68c8ab6b..6d7f8a25 100644 --- a/pages/auth-files/components/AuthFilesFilesTab.tsx +++ b/pages/auth-files/components/AuthFilesFilesTab.tsx @@ -1727,7 +1727,7 @@ export function AuthFilesFilesTab({ successRate === null ? "text-slate-500 dark:text-white/45" : successRate >= 90 - ? "text-emerald-700 dark:text-emerald-200" + ? "text-slate-700 dark:text-white/70" : successRate >= 50 ? "text-amber-700 dark:text-amber-200" : "text-rose-700 dark:text-rose-200"; diff --git a/pages/auth-files/components/QuotaMetricChips.tsx b/pages/auth-files/components/QuotaMetricChips.tsx index d8c08012..48b3824a 100644 --- a/pages/auth-files/components/QuotaMetricChips.tsx +++ b/pages/auth-files/components/QuotaMetricChips.tsx @@ -27,15 +27,19 @@ export const resolveQuotaVisualTone = (percent: number | null | undefined): Quot }; } + // A healthy quota is the common case, so it gets no colour beyond the ring: + // tinting the chip surface, its label and its percent all at once made every + // card on the page read as one flat green field, and a green that is always + // on cannot signal anything. Amber and rose below keep their full treatment — + // they are the states worth spotting from across the grid. if (normalized >= 60) { return { normalized, fillClass: "bg-emerald-500", - percentClass: "text-emerald-700 dark:text-emerald-200", + percentClass: "text-slate-700 dark:text-white/80", fillHex: "#10b981", - chipClass: - "border-emerald-200/70 bg-emerald-50/70 dark:border-emerald-500/20 dark:bg-emerald-500/[0.08]", - chipLabelClass: "text-emerald-900/70 dark:text-emerald-100/70", + chipClass: "border-slate-900/8 bg-slate-50 dark:border-white/10 dark:bg-white/[0.06]", + chipLabelClass: "text-slate-600 dark:text-white/70", }; } diff --git a/pages/auth-files/hooks/useAuthFilesFilesPresentation.tsx b/pages/auth-files/hooks/useAuthFilesFilesPresentation.tsx index 591e21cd..d2f1169f 100644 --- a/pages/auth-files/hooks/useAuthFilesFilesPresentation.tsx +++ b/pages/auth-files/hooks/useAuthFilesFilesPresentation.tsx @@ -69,8 +69,10 @@ const KNOWN_QUOTA_TEXT_KEYS = new Set([ ]); const SUBSCRIPTION_TONE_CLASSES = { + // Neutral on purpose: an active subscription is the resting state of every + // card, so colouring it competes with the badges that report a problem. active: - "border-emerald-200 bg-emerald-50 text-emerald-800 dark:border-emerald-500/20 dark:bg-emerald-500/15 dark:text-emerald-200", + "border-slate-900/8 bg-slate-50 text-slate-700 dark:border-white/10 dark:bg-white/[0.08] dark:text-white/70", warning: "border-amber-200 bg-amber-50 text-amber-800 dark:border-amber-500/20 dark:bg-amber-500/15 dark:text-amber-200", urgent: From 6a6a5c6fd4468f81d3a4155d05b5b0b67d1e2d5e Mon Sep 17 00:00:00 2001 From: kittors Date: Fri, 21 Aug 2026 14:14:59 +0800 Subject: [PATCH 2/2] fix(ai-accounts): drop the comment that broke the file-size gate useAuthFilesFilesPresentation.tsx sits above the 800-line limit and the gate only lets such files shrink, so the two explanatory lines added with the neutral subscription tone pushed it from 974 to 976. The reasoning lives in the previous commit message instead. Co-Authored-By: Claude Opus 5 --- pages/auth-files/hooks/useAuthFilesFilesPresentation.tsx | 2 -- 1 file changed, 2 deletions(-) diff --git a/pages/auth-files/hooks/useAuthFilesFilesPresentation.tsx b/pages/auth-files/hooks/useAuthFilesFilesPresentation.tsx index d2f1169f..bf7e0708 100644 --- a/pages/auth-files/hooks/useAuthFilesFilesPresentation.tsx +++ b/pages/auth-files/hooks/useAuthFilesFilesPresentation.tsx @@ -69,8 +69,6 @@ const KNOWN_QUOTA_TEXT_KEYS = new Set([ ]); const SUBSCRIPTION_TONE_CLASSES = { - // Neutral on purpose: an active subscription is the resting state of every - // card, so colouring it competes with the badges that report a problem. active: "border-slate-900/8 bg-slate-50 text-slate-700 dark:border-white/10 dark:bg-white/[0.08] dark:text-white/70", warning: