Several UI components have hard-coded colour values (Tailwind bg-white, text-gray-*, border-gray-*) that do not switch correctly in dark mode. This results in invisible text, incorrect backgrounds, and poor contrast in dark mode.
What to fix
Audit every component in src/components/ and replace any hard-coded colour utilities with the CSS variable tokens:
| Replace |
With |
bg-white |
bg-[var(--surface)] |
text-gray-900, text-black |
text-[var(--text)] |
text-gray-500, text-gray-400 |
text-[var(--muted)] |
border-gray-200, border-gray-300 |
border-[var(--border)] |
bg-gray-50, bg-gray-100 |
bg-[var(--bg)] |
Files to audit
All files in src/components/ and src/app/
Acceptance criteria
Screen Recording Required
Your PR for this issue must include a screen recording showing the feature working on your local machine (bun run dev → http://localhost:3000). PRs without a recording will not be merged.
See CONTRIBUTING.md for how to record.
Several UI components have hard-coded colour values (Tailwind
bg-white,text-gray-*,border-gray-*) that do not switch correctly in dark mode. This results in invisible text, incorrect backgrounds, and poor contrast in dark mode.What to fix
Audit every component in
src/components/and replace any hard-coded colour utilities with the CSS variable tokens:bg-whitebg-[var(--surface)]text-gray-900,text-blacktext-[var(--text)]text-gray-500,text-gray-400text-[var(--muted)]border-gray-200,border-gray-300border-[var(--border)]bg-gray-50,bg-gray-100bg-[var(--bg)]Files to audit
All files in
src/components/andsrc/app/Acceptance criteria
text-white/text-black/bg-whitethat conflicts with dark modebun run lintandbunx tsc --noEmitstill passScreen Recording Required
Your PR for this issue must include a screen recording showing the feature working on your local machine (
bun run dev→ http://localhost:3000). PRs without a recording will not be merged.