Skip to content

Accent contrast + dark-mode white-on-red halation fixes#52

Merged
jbeshir merged 1 commit into
mainfrom
theme/accent-contrast-halation
Jun 22, 2026
Merged

Accent contrast + dark-mode white-on-red halation fixes#52
jbeshir merged 1 commit into
mainfrom
theme/accent-contrast-halation

Conversation

@jbeshir

@jbeshir jbeshir commented Jun 22, 2026

Copy link
Copy Markdown
Owner

Accent colour usability pass

Audited the accent system across all four widgets for contrast and readability (light + dark), then fixed what the audit — and one thing the audit couldn't see — turned up.

Dark-mode white-on-red halation (the perceptual one)

Filled-red controls used pure #ffffff on a saturated red. That passes WCAG contrast (6.5:1), but pure white on saturated red against a near-black page produces painful edge halation/shimmer — a known blind spot in the luminance-ratio math. Softened the text to a warm rose-white #ffe1e7 on a slightly calmer red #9e3346 (still 5.7:1, AA+). Light mode is untouched (white-on-red on light paper has no halation).

  • verb-tower — active verb chip, active mode-toggle, Analyse button
  • pennsic-planner — active pill + the three --accent-fill buttons (Export / Create / lightbox primary), tokenised from a hardcoded #fff so dark mode can soften while light stays identical

verb-tower contrast cleanup

  • Light-mode gold crown #d99a1f#a8730a — the top-tier "finished form" marker was only 2.1–2.4:1 against the warm paper, failing the 3:1 graphics floor; now 3.5:1 and still clearly gold.
  • Connective rose spine deepened in both modes (#e59aa6#d2677a light, #8a3a48#a85a68 dark) so it actually reads as a link between tiers.
  • Slate-blue leftovers — off-brand #4a6280 / #3d5270 input/result borders (survivors from a pre-brand era) replaced with an on-brand rose-brown #7a5862 at matching visibility.

No changes needed

  • function-plotter — accent only used for curve stroke / focus ring / error text; no filled buttons, gold, or slate.
  • image-comparison-table — accent fills are rgba tints (no white-on-red); gold is deep text in light, bright in dark; dark neutrals are the brand greys.

All values verified with WCAG 2.1 contrast computation; the two perceptual changes (dark buttons, light gold crown) were confirmed against rendered before/after screenshots.

Follow-up: the deep-UI-gold value (#a8730a for light-mode gold used as a functional accent) should carry over to the main site's global.css — handled separately since it's a different repo.

🤖 Generated with Claude Code

Dark-mode filled-red controls used pure #ffffff on a saturated red, which passes WCAG contrast but causes painful edge halation against the near-black page. Soften the text to a warm rose-white (#ffe1e7) on a slightly calmer red (#9e3346) for the verb-tower active chip / mode toggle / Analyse button and the pennsic-planner active pill and accent-fill buttons (still 5.7:1, AA+). Light mode is unchanged (white on red on light paper has no halation).

verb-tower also: deepen the light-mode gold crown #d99a1f -> #a8730a (2.4:1 -> 3.5:1, clears the 3:1 graphics floor it was failing); deepen the connective rose spine in both modes so it actually reads; and replace leftover off-brand slate-blue input/result borders (#4a6280/#3d5270) with an on-brand rose-brown (#7a5862). function-plotter and image-comparison-table needed no changes.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@jbeshir jbeshir merged commit 3ff4346 into main Jun 22, 2026
6 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