Skip to content

Promote sandbox to main (2026-07-10)#42

Merged
TOM-BOHN merged 4 commits into
mainfrom
sandbox
Jul 10, 2026
Merged

Promote sandbox to main (2026-07-10)#42
TOM-BOHN merged 4 commits into
mainfrom
sandbox

Conversation

@github-actions

Copy link
Copy Markdown

Sandbox validated and ready for production

This PR was opened automatically after sandbox was validated by
this workflow run.

  • Build (npm run build): passed
  • Commit validated: baca00aa9fed674cd66e42f72ab66709817ea74e

Commits included in this promotion

Review checklist

  • Build passed in CI (see above)
  • Changes reviewed and look correct for production
  • Ready to deploy (merging this PR triggers the GitHub Pages deploy workflow)

This PR requires manual human review and must be merged by a person.
This automation will never merge it.

cursoragent and others added 4 commits July 10, 2026 00:34
Introduces semantic --on-accent / --on-accent-orange CSS tokens (defined
per-theme in globals.css, exposed as Tailwind's text-on-accent /
text-on-accent-orange) and uses them everywhere a button/link previously
hardcoded text-white on top of an accent-colored background.

--accent is a light-ish blue in dark theme and bright orange in Xanga
theme, so white text on it only ever had real contrast in light theme
(~5.4:1); in dark/Xanga it measured ~2.6-2.8:1, well under the 4.5:1 (text)
/ 3:1 (large text/icons) WCAG AA thresholds. --accent-orange is bright in
every theme, so it always needed dark text, not white.

Fixed call sites: mobile nav active/hover links, the 404 'Go Home' link,
Back to Top, Share button, 'Back to Blog' link, the skip-to-content link,
the Xanga sidebar restore icon, the Xanga sidebar layout/nav applets, the
gradient CTA buttons (Get in touch / Request VIP Access), and the Medium
'M' + contact-page email icon badges.

Also fixes several Xanga/dark-mode-only CSS overrides that were
independently breaking these same buttons by permanently pinning their
text or background color with !important, even during :hover/:focus,
regardless of the color fix above:
- Xanga's blanket header-nav link-color rule only ever matched links
  inside <nav>, but the mobile nav menu is a sibling of <nav>, not nested
  inside it - broadened the on-accent override to any bg-accent link.
- Xanga's 'card styling' rule matches any element with a rounded-lg/card
  class, which incidentally included several buttons (Share, Back to
  Blog) - excluded anything that also carries a bg-accent class.
- Xanga's 'keep header stable' bg-bg-secondary !important rule was also
  catching those same buttons' resting-state class, permanently pinning
  their background so hover:bg-accent could never visually apply -
  excluded elements with a hover:bg-accent(-orange) class.
- Dark mode's enhanced-contrast override for text-text-secondary had the
  same pinning problem for the inactive mobile nav links' hover state -
  added an analogous hover/focus exception.

Verified with a scripted contrast checker (WCAG relative-luminance ratio)
across light/dark/xanga themes and 9 different buttons/links; all now
meet at least the AA large-text/UI threshold (3:1), most well above 4.5:1.

Co-authored-by: Thomas Bohn <bohn.tl@gmail.com>
…ault outline

Co-authored-by: Thomas Bohn <bohn.tl@gmail.com>
…ark text, blue always gets white text

Introduces --accent-blue/--accent-blue-hover/--on-accent-blue tokens that
never change with the theme (unlike --accent, which becomes the same
bright orange as --accent-orange in Xanga mode). .gradient-btn-blue now
uses these instead of --accent, so the 'Request VIP Access' button stays
visually blue with white text in every theme, instead of collapsing into
the same orange gradient as the 'Get in touch' button in Xanga mode.

Co-authored-by: Thomas Bohn <bohn.tl@gmail.com>
@github-actions
github-actions Bot requested a review from TOM-BOHN July 10, 2026 00:53
@TOM-BOHN
TOM-BOHN merged commit 0a786b8 into main Jul 10, 2026
5 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.

2 participants