Skip to content

feat(web): UX polish and accessibility hardening (US-005) - #15

Merged
Hectormalvarez merged 8 commits into
mainfrom
feat/us-005-ux-polish
Sep 14, 2026
Merged

Hectormalvarez merged 8 commits into
mainfrom
feat/us-005-ux-polish

Conversation

@Hectormalvarez

Copy link
Copy Markdown
Owner

Summary

US-005 per docs/stories/US-005-ux-polish-accessibility.md (absorbs backlog US-003 items 1-3):

  • Visible labeled fields in the alarm panel (placeholder-only before); themed placeholder token (4.71:1 AA)
  • Semantic WCAG-AA design tokens replacing the per-element opacity soup (error text #f00 4.35:1 -> #ff6b6b 6.27:1)
  • Monochrome inline-SVG icons replacing the red alarm / blue zzz / stopwatch emojis; buttons inherit the page font
  • Shared control scale across alarm + timer panels; timer steppers always visible (were hover-only, unusable on touch)
  • Focus management: focus into panels on open, restored to toggles on close; ring overlay is aria-modal with a Tab trap; outside click cannot close the panel while ringing
  • prefers-reduced-motion support (CSS kill switch + reduced-motion-aware shared FLIP helper in shared/dom/flip.ts with unit tests)
  • Pure cores untouched: all 135 pre-existing behavior tests pass unchanged; 5 new FLIP tests (140 total)

Verification

  • 20/20 Playwright a11y assertions (aria-expanded, focus move/restore/trap, labels, reduced-motion)
  • Computed contrast table in the story: all pairs AA (4.71:1 - 12.68:1)
  • 14 before/after screenshots: docs/stories/US-005/screenshots/
  • make check green; prettier clean

@Hectormalvarez
Hectormalvarez merged commit 5e3fd4e into main Sep 14, 2026
4 checks passed
@Hectormalvarez
Hectormalvarez deleted the feat/us-005-ux-polish branch September 15, 2026 16:08
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