Skip to content

feat: add Pomodoro Timer Prototype - #13

Open
espcris05-commits wants to merge 1 commit into
AkongaLabs:mainfrom
espcris05-commits:feat/pomodoro-timer
Open

feat: add Pomodoro Timer Prototype#13
espcris05-commits wants to merge 1 commit into
AkongaLabs:mainfrom
espcris05-commits:feat/pomodoro-timer

Conversation

@espcris05-commits

Copy link
Copy Markdown

Closes #1

Implementation

Single HTML file (pomodoro-timer.html) with embedded CSS/JS — zero external dependencies.

Background Audio

Uses Web Audio API (AudioContext + OscillatorNode) for notification chime, which is the only reliable way to play sound in Chrome background tabs. HTMLAudioElement gets throttled; Web Audio API does not.

Features

  • Configurable timer (1-999 minutes)
  • MM:SS countdown display with color-coded states (running/paused/completed)
  • Start/Pause/Resume/Reset controls
  • Two-tone ascending chime on completion (works in background tabs)
  • Notification API fallback for desktop notifications
  • Input validation with user-friendly error messages
  • Keyboard navigation (Tab, Space to start/pause, Esc to reset)
  • ARIA labels and screen reader support

Error Handling

  • AudioContext failure: visual timer continues, shows guidance to enable sound
  • Invalid input: clear error messages for negative, zero, decimal, non-numeric
  • Permission denied: graceful degradation with user instructions

Testing Notes

See docs/README.md for detailed browser limitation documentation and test scenarios.

Single HTML page with embedded CSS/JS implementing:
- Configurable timer input (minutes only)
- MM:SS countdown display
- Start/Pause/Resume/Reset controls
- Web Audio API chime notification (works in background tabs)
- Graceful permission handling and error states
- ARIA labels, keyboard navigation, screen reader support
- Input validation (1-999 minutes, integers only)
- Visual state indication (running/paused/completed)
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.

Pomodoro Timer Prototype - Development Instructions

1 participant