Commit bfc80d4
fix: improve navigation link contrast for WCAG AA compliance (#67)
## Summary
Fixes issue #61 - Active navigation link contrast was failing WCAG AA
requirements with only 1.72:1 contrast ratio. This PR updates the active
link color to achieve 3:1+ contrast for WCAG AA compliance.
## Changes
### CSS Updates (`src/styles/globals.css`)
- **Before**: `--active-light: rgb(34 211 238 / 1)` (cyan-400, #22d3ee)
- **After**: `--active-light: rgb(0 150 175 / 1)` (darker cyan)
- **Result**: Achieves 3:1+ contrast ratio on light background
- Dark mode color unchanged (already WCAG AA compliant)
### ROADMAP Updates
- Marked issue #61 as completed (Nov 16, 2025)
- Updated Executive Summary to reflect completion
- Updated Current Sprint progress
- Updated Issue Status Summary (12 open issues, down from 13)
- Updated Critical Path to show #61 completed
- Updated Effort Distribution (removed #61 from Small category)
- Updated Issues by Category (moved #61 to closed)
- Added comprehensive Changelog entry for Nov 16, 2025
## Testing
✅ **Unit Tests**: All 131 tests passing
✅ **Build**: Production build successful
✅ **Contrast Ratio**: Verified 3:1+ contrast on light background
✅ **Dark Mode**: Unchanged, already compliant
## Impact
### Accessibility
- ✅ Achieves WCAG AA compliance (3:1 minimum contrast)
- ✅ Improves usability for users with visual impairments
- ✅ Eliminates legal/compliance risk
### Affected Areas
- Home navigation link (when active)
- Code navigation link (when active)
- Contact navigation link (when active)
- All viewports: Mobile, Tablet, Desktop
## Implementation Approach
Chose **Option 1** from issue #61: "Darken the Cyan Color"
- Simplest solution
- Maintains design aesthetic
- Minimal code changes
- No breaking changes to component structure
## Screenshots
### Before (1.72:1 contrast - FAILS WCAG AA)
- Active link color: `rgb(34, 211, 238)` (cyan-400)
- Background: `rgb(250, 249, 246)` (off-white)
- Contrast ratio: 1.72:1 ❌
### After (3:1+ contrast - PASSES WCAG AA)
- Active link color: `rgb(0, 150, 175)` (darker cyan)
- Background: `rgb(250, 249, 246)` (off-white)
- Contrast ratio: 3:1+ ✅
## Next Steps
As documented in ROADMAP.md:
- 🟡 **#62** - Increase Touch Target Sizes for Mobile Accessibility
(NEXT)
- 🟡 **#63** - Fix Cumulative Layout Shift (CLS) on Mobile
## Closes
Closes #61
---
🤖 Generated with [Claude Code](https://claude.com/claude-code)
---------
Co-authored-by: Claude <noreply@anthropic.com>1 parent c880089 commit bfc80d4
5 files changed
Lines changed: 50 additions & 50 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
5 | | - | |
| 5 | + | |
6 | 6 | | |
7 | | - | |
| 7 | + | |
8 | 8 | | |
9 | 9 | | |
10 | 10 | | |
| |||
21 | 21 | | |
22 | 22 | | |
23 | 23 | | |
24 | | - | |
| 24 | + | |
25 | 25 | | |
26 | | - | |
| 26 | + | |
27 | 27 | | |
28 | | - | |
29 | | - | |
30 | | - | |
| 28 | + | |
31 | 29 | | |
32 | 30 | | |
33 | 31 | | |
| |||
159 | 157 | | |
160 | 158 | | |
161 | 159 | | |
162 | | - | |
| 160 | + | |
163 | 161 | | |
164 | | - | |
| 162 | + | |
165 | 163 | | |
166 | | - | |
167 | | - | |
168 | | - | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
169 | 170 | | |
170 | | - | |
| 171 | + | |
171 | 172 | | |
172 | 173 | | |
173 | 174 | | |
| |||
283 | 284 | | |
284 | 285 | | |
285 | 286 | | |
286 | | - | |
287 | | - | |
| 287 | + | |
| 288 | + | |
288 | 289 | | |
289 | 290 | | |
290 | 291 | | |
| |||
364 | 365 | | |
365 | 366 | | |
366 | 367 | | |
367 | | - | |
| 368 | + | |
368 | 369 | | |
369 | 370 | | |
370 | 371 | | |
371 | | - | |
| 372 | + | |
372 | 373 | | |
373 | 374 | | |
374 | 375 | | |
375 | 376 | | |
376 | 377 | | |
377 | 378 | | |
378 | | - | |
379 | | - | |
| 379 | + | |
| 380 | + | |
380 | 381 | | |
381 | 382 | | |
382 | 383 | | |
383 | 384 | | |
384 | 385 | | |
385 | 386 | | |
386 | | - | |
| 387 | + | |
387 | 388 | | |
388 | 389 | | |
389 | 390 | | |
| |||
452 | 453 | | |
453 | 454 | | |
454 | 455 | | |
| 456 | + | |
| 457 | + | |
| 458 | + | |
| 459 | + | |
| 460 | + | |
| 461 | + | |
| 462 | + | |
| 463 | + | |
| 464 | + | |
| 465 | + | |
| 466 | + | |
| 467 | + | |
| 468 | + | |
| 469 | + | |
| 470 | + | |
| 471 | + | |
| 472 | + | |
| 473 | + | |
| 474 | + | |
| 475 | + | |
| 476 | + | |
| 477 | + | |
| 478 | + | |
| 479 | + | |
| 480 | + | |
455 | 481 | | |
456 | 482 | | |
457 | 483 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
7 | 7 | | |
8 | 8 | | |
9 | 9 | | |
10 | | - | |
11 | 10 | | |
12 | 11 | | |
13 | 12 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
19 | 19 | | |
20 | 20 | | |
21 | 21 | | |
22 | | - | |
| 22 | + | |
23 | 23 | | |
24 | 24 | | |
25 | 25 | | |
| |||
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
83 | 83 | | |
84 | 84 | | |
85 | 85 | | |
86 | | - | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
87 | 89 | | |
88 | 90 | | |
89 | 91 | | |
| |||
0 commit comments