fix(web): unpin colors from the RayHealth teal and fix contrast failures - #205
Merged
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
SishirP17
force-pushed
the
feat/agency-theme-resolver
branch
2 times, most recently
from
August 18, 2026 23:00
ca897cf to
6031d51
Compare
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
force-pushed
the
fix/contrast-offenders
branch
from
August 18, 2026 23:03
75ef74a to
4ad1c20
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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
rgba(16, 116, 128, ...)acrossindex.cssand 13 feature pages — the focus ring, the sidebar active state, the info tints, the brand-mark shadow. Now derived from--color-primary.#ddd6feon the sidebar role badge, an orphaned lavender belonging to no palette in the app.color: whiteon a brand-filled surface, which assumed the brand is dark. Now--color-on-brand.Contrast failures
--color-text-subtlewas#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-textkeeps the original value — on the dark rail the same hex measures 6.96:1 — and--color-text-muted-on-darknow names that role.--color-success-borderat 1.3:1.--color-primary-lightat 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-dangerused 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-textat 5.75:1.Dead fallbacks
126 removed. Most were self-referential noise (
var(--color-text, var(--color-text))), but a batch of error banners readvar(--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-subtlegetting 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.