A polished, fully self-contained analog clock built in a single HTML file — zero dependencies, canvas-rendered, deployable on GitHub Pages.
✨ Features
- Canvas-rendered analog clock with hour, minute, and second hands
- Smooth continuous second hand — no tick-step; sweeps at sub-millisecond precision
- Three numeral systems — toggle between Standard (1–12), Roman (I–XII), and Odia (୧–୧୨)
- Three visual themes — Dark (default, orange glow), Classic (warm serif), Neon (cyan/pink glow)
- Digital time display below the clock face
- Date display — day, month, and year with English or Odia names
- Fullscreen mode — click or press
F - Responsive — automatically resizes to fit any viewport
- Keyboard shortcuts:
T— cycle themesN— cycle numeral systemsD— toggle date languageF— toggle fullscreen
🚀 Live Demo
https://soumendrak.github.io/analog-clock/
🧩 Architecture
flowchart TD
A["🕐 Analog Clock"] --> B["Numeral Systems"]
A --> C["Themes"]
A --> D["Features"]
B --> B1["Standard 1–12"]
B --> B2["Roman I–XII"]
B --> B3["Odia ୧–୧୨"]
C --> C1["Dark<br/>(default)"]
C --> C2["Classic"]
C --> C3["Neon"]
D --> D1["Smooth Second Hand"]
D --> D2["Digital Time"]
D --> D3["Date Display<br/>(EN / Odia)"]
D --> D4["Fullscreen Mode"]
D --> D5["Responsive Layout"]
D --> D6["Keyboard Shortcuts"]
📁 Usage
- Download the file:
curl -O https://raw.githubusercontent.com/soumendrak/analog-clock/main/index.html
- Open in any modern browser:
open index.html
- Deploy to GitHub Pages by pushing
index.htmlto themainbranch of a repo namedanalog-clock.
No build step. No package manager. One file.
🎨 Themes
| Theme | Background | Accent | Vibe |
|---|---|---|---|
| Dark | #0f0f1a |
Orange | Modern, moody |
| Classic | #f5f0e8 |
Brown | Warm, traditional |
| Neon | #05050f |
Cyan/Pink | Cyberpunk, glowing |
🔤 Numeral Systems
| System | Display |
|---|---|
| Standard | 1 2 3 4 5 6 7 8 9 10 11 12 |
| Roman | I II III IV V VI VII VIII IX X XI XII |
| Odia | ୧ ୨ ୩ ୪ ୫ ୬ ୭ ୮ ୯ ୧୦ ୧୧ ୧୨ |
📄 License
MIT — see LICENSE for details.
Built with ❤️ using vanilla JavaScript and Canvas API.
