A simple poker tournament clock that displays a full-screen countdown timer with visual indicators and automatic round transitions. https://oraweb.github.io/poker-clock/
- Large Countdown Display: Centered, responsive timer showing hours:minutes:seconds that scales to fit any screen
- Full-Screen Support: Optimized for all devices - desktops, laptops, tablets, and phones
- Responsive Design: Timer, rounds table, and all UI elements automatically adapt to screen size
- Multiple Configurations: Support for multiple tournament configurations with different structures
- Configurable Rounds: Define tournament rounds in
config-*.ymlfiles with custom names, durations, and break indicators - Multi-Platform Control:
- Desktop/Laptop: Press SPACEBAR to start/pause the timer, ENTER to manually advance to the next round
- Mobile/Tablet: Tap on-screen buttons to Start/Pause or advance to the next round
- Collapsible Rounds Table: Toggle button on mobile/tablet to show/hide rounds table for more screen space
- Auto-Progression: Automatically advances to the next round when timer reaches zero
- Visual Warnings:
- Orange pulsing at 2-minute warning
- Red flashing during final 10 seconds
- Break Indicator: Different background color for break rounds
- Touch-Friendly: Large, easily tappable buttons on mobile devices with visual feedback
- GitHub Pages: Automatically deployed via GitHub Actions
-
Install Python dependencies:
pip install -r requirements.txt
-
Generate the HTML page:
python generate_clock.py
-
Open
index.htmlin your web browser
The poker clock automatically deploys to GitHub Pages when:
- You push to the main branch
- You manually trigger the workflow via workflow_dispatch
To enable GitHub Pages:
- Go to your repository Settings
- Navigate to Pages
- Under "Build and deployment", select "GitHub Actions" as the source
The poker clock supports multiple tournament configurations. Create configuration files following the pattern config-*.yml (e.g., config-tourney.yml, config-league.yml). The system will automatically detect up to 10 configuration files and generate separate clock pages for each.
Edit or create config-*.yml files to customize your tournament structure:
rounds:
- number: 1
name: "Round 1"
duration: 20 # minutes
is_break: false
- number: 2
name: "Break"
duration: 5 # minutes
is_break: truenumber: Round number (for display)name: Round name (displayed prominently)duration: Round length in minutesis_break:truefor breaks (changes background color),falsefor regular rounds
The repository includes example configurations:
- config-tourney.yml: Standard tournament with longer rounds (20 minutes)
- config-league.yml: League play with shorter rounds (15 minutes)
- Open the poker clock page (index.html)
- Select your desired tournament configuration (Tourney, League, etc.)
- Desktop/Laptop: Press SPACEBAR to start the timer, SPACEBAR again to pause, ENTER to manually advance to the next round
- Mobile/Tablet: Tap the ▶ Start button to start, ⏸ Pause to pause, ⏭ Next Round to advance
- Mobile/Tablet: Use the Show/Hide Rounds button in the top-right corner to toggle the rounds table
- Timer automatically advances to the next round when it reaches zero
- Full keyboard control with SPACEBAR and ENTER keys
- Rounds table always visible on the left side
- Large timer display optimized for external monitors/projectors
- Instructions show keyboard shortcuts
- Touch-friendly control buttons below the timer
- Collapsible rounds table to maximize screen space
- Responsive timer that scales to tablet screen size
- Instructions show tap controls
- Large, easily tappable control buttons
- Collapsible rounds table accessible via toggle button
- Timer automatically sized to fit phone screen (tested on iPhone 15 and similar devices)
- Optimized layout with rounds table at top when visible
- Instructions show tap controls
- Normal: Blue gradient background, white timer
- Warning (< 2 minutes): Orange pulsing timer
- Final Countdown (< 10 seconds): Red flashing timer
- Break: Red/pink gradient background
- Pure HTML, CSS, and JavaScript (no external dependencies for the clock itself)
- Python script generates self-contained HTML files
- Fully responsive design with CSS media queries and viewport-based sizing
- Works on any screen size from mobile phones (375px) to large displays (1920px+)
- Touch-optimized controls with proper tap targets (minimum 44x44px)
- Adaptive UI that detects device type and shows appropriate controls
- No audio (visual indicators only)
MIT License