commit 79f29880e3670d01bf68782679c8d8cc136b82ee
parent 2d11f2ae4e12fc340277e1f0afa12bd9b50ade8a
Author: I Mean I'm Just Saying <imeanimjustsaying@kiwifarms.st>
Date: Fri, 25 Sep 2026 22:30:33 -0400
common, export, editor: accent text on its soft tint is --brand-strong (brand S2 review)
text-brand on bg-brand-soft read 3.96-4.43:1 on the light and sepia grounds (every accent, over the ground and a card). --brand-strong on the same tint reads at least 6.48:1 on every base. It is the darker mix on light and sepia and the lighter one on dark. Switched: the Badge "brand" variant, the editor's sidebar badge, export's Ask context "edited" chip, OfflineManager's chip and button, the hub's offline button, and the downloads page's action. None of C2's files had one.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Diffstat:
6 files changed, 11 insertions(+), 9 deletions(-)
diff --git a/common/components/ui/badge.tsx b/common/components/ui/badge.tsx
@@ -18,15 +18,17 @@ const badgeVariants = cva(
"border-border text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground",
ghost: "[a&]:hover:bg-accent [a&]:hover:text-accent-foreground",
link: "text-primary underline-offset-4 [a&]:hover:underline",
- // Soft-filled semantic tones — colorful but calm, legible across every
- // theme family in light and dark (token hues tuned as text-on-soft).
+ // Soft-filled semantic tones — colorful but calm, legible on every
+ // base (token hues tuned as text-on-soft). The accent reads on its own
+ // tint only as --brand-strong: plain --brand on --brand-soft falls to
+ // ~4:1 on the light and sepia grounds.
success:
"border-success/30 bg-success-soft text-success [a&]:hover:bg-success/15",
warning:
"border-warning/30 bg-warning-soft text-warning [a&]:hover:bg-warning/15",
info: "border-info/30 bg-info-soft text-info [a&]:hover:bg-info/15",
brand:
- "border-brand/30 bg-brand-soft text-brand [a&]:hover:bg-brand/15",
+ "border-brand/30 bg-brand-soft text-brand-strong [a&]:hover:bg-brand/15",
},
},
defaultVariants: {
diff --git a/editor/app/components/SidebarBadges.tsx b/editor/app/components/SidebarBadges.tsx
@@ -24,7 +24,7 @@ export function JobsBadge({ seed }: { seed: number }) {
<span
data-testid="badge-active"
aria-label={`${count} active job${count === 1 ? "" : "s"}`}
- className="ml-auto text-xs rounded-full border border-brand/30 bg-brand-soft text-brand px-2 py-0.5 leading-none"
+ className="ml-auto text-xs rounded-full border border-brand/30 bg-brand-soft text-brand-strong px-2 py-0.5 leading-none"
>
{count}
</span>
diff --git a/export/app/ask/ContextPanel.tsx b/export/app/ask/ContextPanel.tsx
@@ -48,7 +48,7 @@ export function ContextPanel({
<summary className="flex cursor-pointer items-center gap-2 px-4 py-2.5 text-sm font-medium text-foreground">
Context
{overrideActive && (
- <span className="rounded bg-brand-soft px-1.5 py-0.5 font-mono text-[0.7rem] text-brand">
+ <span className="rounded bg-brand-soft px-1.5 py-0.5 font-mono text-[0.7rem] text-brand-strong">
edited
</span>
)}
diff --git a/export/app/components/OfflineManager.tsx b/export/app/components/OfflineManager.tsx
@@ -181,7 +181,7 @@ export function OfflineManager({ channels }: { channels: OfflineChannel[] }) {
{st.download === "cached" && (
<span
aria-label={`${c.slug} available offline`}
- className="rounded-full border border-brand/30 bg-brand-soft px-2 py-0.5 text-xs text-brand"
+ className="rounded-full border border-brand/30 bg-brand-soft px-2 py-0.5 text-xs text-brand-strong"
>
Available offline
</span>
@@ -246,7 +246,7 @@ export function OfflineManager({ channels }: { channels: OfflineChannel[] }) {
onClick={() => download(c.slug)}
aria-label={`download ${c.slug} for offline`}
title={!online ? "Reconnect to download" : undefined}
- className="min-h-9 rounded-md border border-brand/30 bg-brand-soft px-2.5 py-1 text-xs font-medium text-brand transition-colors hover:bg-brand/15 disabled:opacity-50"
+ className="min-h-9 rounded-md border border-brand/30 bg-brand-soft px-2.5 py-1 text-xs font-medium text-brand-strong transition-colors hover:bg-brand/15 disabled:opacity-50"
>
{st.download === "downloading" ? "Downloading…" : "Download"}
</button>
diff --git a/export/app/components/hub/HubOfflineManager.tsx b/export/app/components/hub/HubOfflineManager.tsx
@@ -130,7 +130,7 @@ export default function HubOfflineManager() {
<button
type="button"
onClick={() => download(c.key)}
- className="shrink-0 rounded border border-brand/30 bg-brand-soft px-2 py-0.5 text-xs font-medium text-brand transition-colors hover:bg-brand/15"
+ className="shrink-0 rounded border border-brand/30 bg-brand-soft px-2 py-0.5 text-xs font-medium text-brand-strong transition-colors hover:bg-brand/15"
>
{st.status === "error" ? "Retry" : "Save"}
</button>
diff --git a/export/app/downloads/page.tsx b/export/app/downloads/page.tsx
@@ -120,7 +120,7 @@ function HoldingRow({ entry }: { entry: ArchiveManifestEntry }) {
<a
href={href}
download
- className="inline-flex min-h-10 shrink-0 items-center gap-2 rounded-md bg-brand-soft px-3.5 py-2 font-mono text-sm font-medium text-brand transition-colors hover:bg-brand hover:text-brand-ink focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-card"
+ className="inline-flex min-h-10 shrink-0 items-center gap-2 rounded-md bg-brand-soft px-3.5 py-2 font-mono text-sm font-medium text-brand-strong transition-colors hover:bg-brand hover:text-brand-ink focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-card"
>
<ArrowDownToLine className="size-4" aria-hidden />
{humanBytes(entry.bytes)}