KamoCRM

Every org's colour reads at AA in hand-made CSS too: brand text, words on brand fills, the nav chrome (SIS1)

Fixkamo-internal
Shipped
November 7, 2026 at 10:17 PM UTC
Author
Kamo
Commit
55cf08d

The live sweep with a pale brand showed the root MUI fix was not enough: hand-made CSS drew the brand as TEXT and white ON the brand directly, so a light organization colour left launchpad rows, shelf headers, buttons, the admin bar, the rail and the top bar unreadable. Shared variables, no per-org values: - globals.css: --on-primary now follows the brand's luminance (the ON_BRAND / onBrandText line, 0.179) instead of assuming white; an org theme that declares it still wins. Every existing var(--on-primary) user is fixed by this alone. - --nav-on: the ink for the nav chrome (brand scaled toward black 60-90%), measured on the lightest stop. Dark and mid brands keep their white chrome exactly; a pale brand gets black. - Brand as text: color: var(--color-primary) / var(--text-primary) (the org template points that back at the raw brand) / text-[var(--color-primary)] -> var(--color-primary-ink), the existing AA ink (OKLCH L <= 0.42; a dark brand is unchanged). Fills, borders and tints keep the brand. - White on a brand fill (same sx/style block, Tailwind class string, the house hero region, the settings hero, BackToHomeButton onGradient) -> var(--on-primary), white washes -> color-mix of it. - NavTop, NavPri, the rail/bar buttons and the home admin bar entries -> var(--nav-on). The dropdown panels keep white: they sit on the legible() ground, which already reads (guard kept).

All changes

Like what you see shipping?

All of it arrives in your workspace on its own. Start on the free plan and read this page again in a month.

Start Free ForeverView Pricing