Skip to content

fix(web): unpin colors from the RayHealth teal and fix contrast failures - #205

Merged
SishirP17 merged 1 commit into
mainfrom
fix/contrast-offenders
Aug 18, 2026
Merged

fix(web): unpin colors from the RayHealth teal and fix contrast failures#205
SishirP17 merged 1 commit into
mainfrom
fix/contrast-offenders

Conversation

@SishirP17

Copy link
Copy Markdown
Collaborator

The sweep #204 makes possible: colors that could never follow an agency, and pairings that fail AA outright.

Colors that could never follow an agency

  • 14 hardcoded rgba(16, 116, 128, ...) across index.css and 13 feature pages — the focus ring, the sidebar active state, the info tints, the brand-mark shadow. Now derived from --color-primary.
  • #ddd6fe on the sidebar role badge, an orphaned lavender belonging to no palette in the app.
  • Every color: white on a brand-filled surface, which assumed the brand is dark. Now --color-on-brand.
  • 27 stray hex literals in the stylesheet, now tokens.

Contrast failures

  • --color-text-subtle was #94A3B8, 2.56:1 on white. It is used almost exclusively on 11–13px text, where AA allows no large-text exception. Darkened to the lightest slate that still clears 4.5:1. --color-sidebar-text keeps the original value — on the dark rail the same hex measures 6.96:1 — and --color-text-muted-on-dark now names that role.
  • "Hiring…" rendered white on --color-success-border at 1.3:1.
  • The support launcher was white on --color-primary-light at 1.9:1. It only looked fine because the button gradient was covering it — fixing fix(web): stop the brand gradient bleeding through button variants #202 would have exposed it.
  • --color-danger used as text is 4.0:1 on its own tint. It is a fill token sized for white labels; the 41 sites that used it as text now use --color-danger-text at 5.75:1.

Dead fallbacks

126 removed. Most were self-referential noise (var(--color-text, var(--color-text))), but a batch of error banners read var(--color-accent-bg, var(--color-danger-bg)) — the first token always wins, so those rendered the brand accent, meaning an error banner was indistinguishable from ordinary brand chrome on an orange-branded agency. They now use the semantic palette their own fallbacks named.

Also deletes the .landing-* block: 141 lines, zero references.

Review note

--color-text-subtle getting darker is a visible design change across the admin app. It is the honest fix for small text at 2.56:1, but flagging it explicitly.

Fourth of five, stacked on #204.

@SishirP17
SishirP17 requested a review from durga710 as a code owner August 18, 2026 22:42
@vercel

vercel Bot commented Aug 18, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
rayhealth-evv-platform-app Ready Ready Preview Aug 18, 2026 11:05pm

@SishirP17
SishirP17 force-pushed the feat/agency-theme-resolver branch 2 times, most recently from ca897cf to 6031d51 Compare August 18, 2026 23:00
@SishirP17
SishirP17 changed the base branch from feat/agency-theme-resolver to main August 18, 2026 23:03
Colors that could never follow an agency theme:

  - 14 hardcoded rgba(16, 116, 128, ...) values across index.css and 13
    feature pages , the focus ring, the sidebar active state, the info
    tints, the brand-mark shadow. Now derived from --color-primary.
  - #ddd6fe on the sidebar role badge, an orphaned lavender belonging to no
    palette in the app.
  - Every `color: white` on a brand-filled surface, which assumed the brand
    is dark. These now take --color-on-brand.

Contrast failures:

  - --color-text-subtle was #94A3B8, 2.56:1 on white. It is used almost
    exclusively on 11-13px text, where AA allows no large-text exception.
    Darkened to the lightest slate that still clears 4.5:1.
    --color-sidebar-text keeps the original value; on the dark rail the
    same hex measures 6.96:1. --color-text-muted-on-dark now names that.
  - "Hiring..." rendered white on --color-success-border at 1.3:1. The
    support launcher was white on --color-primary-light at 1.9:1, which
    only looked fine because the button gradient was covering it.
  - --color-danger is a fill token sized for white labels. Used as text it
    is 4.0:1 on its own tint, so the 41 sites that used it that way now use
    --color-danger-text at 5.75:1.

Also removes 126 dead var() fallbacks. Most were self-referential noise
like var(--color-text, var(--color-text)), but a batch of error banners
read var(--color-accent-bg, var(--color-danger-bg)): the first token always
wins, so those rendered the BRAND accent and an error was indistinguishable
from ordinary brand chrome on an orange-branded agency. They now use the
semantic palette their own fallbacks named.

Deletes the .landing-* block, 141 lines with zero references in the app.
@SishirP17
SishirP17 force-pushed the fix/contrast-offenders branch from 75ef74a to 4ad1c20 Compare August 18, 2026 23:03
@SishirP17
SishirP17 merged commit 6df0102 into main Aug 18, 2026
13 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant