Skip to content

chore(design): Enforce VWC navy/red/gold palette site-wide#1127

Merged
jeromehardaway merged 2 commits into
masterfrom
chore/vwc-color-sweep
May 18, 2026
Merged

chore(design): Enforce VWC navy/red/gold palette site-wide#1127
jeromehardaway merged 2 commits into
masterfrom
chore/vwc-color-sweep

Conversation

@jeromehardaway

Copy link
Copy Markdown
Contributor

Summary

  • Sweep off-palette Tailwind color utilities and hardcoded hex codes across 153 files to the VWC brand palette (navy + red + gold) defined in tailwind.config.js.
  • Non-brand states collapse strictly: gold for positive/highlight/success, red for destructive only, navy for everything else.
  • Military branch identity colors (Army/Navy/USMC/USAF/USCG) are preserved as the documented exception — src/containers/career-guides/branch-meta.ts, src/containers/career-guide-detail/branch-meta.ts, and the rainbow gradient in src/containers/career-guides/filters.tsx are intentionally untouched.

What changed

  • Replaced tw-{bg,text,border,ring,from,to,via,...}-{blue,green,yellow,purple,cyan,teal,pink,indigo,orange,emerald,sky,lime,amber,rose,violet,fuchsia}-N with navy/red/gold tokens by shade and semantic role.
  • Snapped arbitrary-value hex (tw-bg-[#xxx]) and inline style hex to the nearest brand token. This includes the Material palette used in blog-image-manager, cloudinary-media-library, and cloudinary-upload-example.
  • Mapped code-preview surfaces (#1e1e1e / #d4d4d4) to dark.surface / dark.text-muted.
  • ResumeScorer score gradient: pass → gold, mid → gold-bright, low → gold-rich, fail → red.

Verification

After the sweep, both greps return 0:

  • tw-{prop}-{blue|green|yellow|purple|cyan|teal|pink|indigo|orange|emerald|sky|lime|amber|rose|violet|fuchsia}-N → 0 hits

  • Off-brand hex (excluding the brand-allowed palette + documented branch exception) → 0 hits

  • npm run typecheck — 11 errors, all pre-existing (j0di3 test mocks, swagger-ui-react/next-swagger-doc types). No new errors.

  • npm run lint — 18 errors / 267 warnings, all pre-existing in __tests__/. Master baseline was 50/462; Biome auto-fix improved on it.

  • npm test380/380 passing across 41 files.

Test plan

  • Spot-check translator pages (/translator, career pathways, training section) for visual cohesion.
  • Spot-check admin pages (/admin/courses, /admin/users, /admin/blog-images) — these had the highest concentration of Material-palette colors.
  • Verify career guide detail pages still render the branch chip colors correctly (Army/Navy/USMC/USAF/USCG).
  • Verify ResumeScorer gradient renders gold/red across score ranges.
  • Visual regression check on profile, jobs, donate form, contact form, and the engagement modal.
  • Confirm dark mode surfaces in blog-image-manager code previews still look right.

Sweep off-palette Tailwind utilities and hardcoded hex codes across
153 files to the brand palette in tailwind.config.js. Non-brand states
collapse to gold for positive, red for destructive, or navy for
neutral. Replace tw prop suffixes blue, green, yellow, purple, cyan,
teal, pink, indigo, orange, emerald, sky, lime, amber, rose, violet,
and fuchsia with navy, red, or gold tokens by shade and semantic role.
Snap arbitrary-value hex in className and inline style props to the
nearest brand token, including the Material palette in admin and
cloudinary tools. Map code-preview surfaces to dark.surface and
dark.text-muted. ResumeScorer score gradient ranges from gold through
gold-bright and gold-rich to red. Military branch identity color maps
in career-guides/branch-meta.ts and the rainbow gradient in
career-guides/filters.tsx are intentionally left untouched as the
documented exception.
@vercel

vercel Bot commented May 18, 2026

Copy link
Copy Markdown
Contributor

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

Project Deployment Actions Updated (UTC)
vets-who-code-app Ready Ready Preview, Comment May 18, 2026 3:16am

Request Review

@jeromehardaway jeromehardaway self-assigned this May 18, 2026
Placeholder and helper text in the career-guides search bar used dark
gray tokens on a navy-deep surface, giving roughly 1.7 to 2.7 contrast
ratio that fails the 3 to 1 WCAG AA minimum for placeholder and
incidental text. Switch placeholder to cream at 60 percent opacity and
the keyboard hint, dropdown subtitle, and branch label to cream at 70
percent opacity and gray-100, all of which clear AA on the navy surface.
Also convert remaining brand hex arbitrary values in the same file to
their tailwind tokens.
@jeromehardaway jeromehardaway merged commit 5d34be5 into master May 18, 2026
6 checks passed
@jeromehardaway jeromehardaway deleted the chore/vwc-color-sweep branch May 18, 2026 03:18
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