Spinning Wheel

A modern, aesthetic spinning wheel web app — add entries, spin, and let fate decide!
Live Demo · Report Bug · Request Feature
Screenshot
About
Spinning Wheel is a sleek, zero-dependency web app that lets you create customizable spinning wheels for random selection. Whether you're picking a restaurant, choosing a game, or making any group decision — just type your entries, spin, and enjoy the animated result with sound effects and confetti.
Key Features
- 3–12 customizable entries — type one per line, add/edit/remove freely
- Smooth spin animation — cubic ease-out deceleration with realistic motion
- Sound effects — tick sounds during spin and a celebratory chord on win
- Confetti celebration — particle burst when the winner is selected
- Shuffle & Reset — randomize entry order or restore defaults
- Responsive design — works on desktop and mobile
- Glassmorphism UI — dark gradient background with frosted glass cards
Tech Stack
| Category | Technology |
|---|
| Markup | HTML5 |
| Styling | CSS3 (Glassmorphism, Gradients, Animations) |
| Rendering | HTML5 Canvas |
| Audio | Web Audio API |
| Deployment | GitHub Pages |
Architecture
┌───────────────────────────────────────┐
│ Browser (Client) │
├───────────────────────────────────────┤
│ index.html │
│ ┌─────────────┐ ┌────────────────┐ │
│ │ Controls │ │ Canvas Wheel │ │
│ │ (textarea, │ │ (drawWheel, │ │
│ │ buttons) │ │ animation) │ │
│ └──────┬───────┘ └───────┬────────┘ │
│ │ │ │
│ ▼ ▼ │
│ ┌─────────────────────────────────┐ │
│ │ script.js │ │
│ │ ┌─────────┐ ┌──────────────┐ │ │
│ │ │ Web │ │ Confetti │ │ │
│ │ │ Audio │ │ Particles │ │ │
│ │ └─────────┘ └──────────────┘ │ │
│ └─────────────────────────────────┘ │
├───────────────────────────────────────┤
│ style.css (Glassmorphism Theme) │
└───────────────────────────────────────┘
Project Structure
spinning-wheel/
├── index.html # Main HTML structure
├── style.css # Glassmorphism theme & responsive layout
├── script.js # Wheel rendering, animation, audio & confetti
├── screenshot.png # App screenshot for README
└── README.md # Project documentation
Getting Started
Prerequisites
- Any modern web browser (Chrome, Firefox, Safari, Edge)
Installation
-
Clone the repository
git clone https://github.com/alfredang/spinning-wheel.git
-
Navigate to the project
cd spinning-wheel
-
Open in browser
open index.html
No build step, no dependencies — just open and spin!
Deployment
GitHub Pages
This project is deployed automatically via GitHub Pages. Any push to the main branch updates the live site.
Live URL: https://alfredang.github.io/spinning-wheel/
Self-Hosting
Simply serve the project directory with any static file server:
# Using Python
python -m http.server 8000
# Using Node.js (npx)
npx serve .
Contributing
Contributions are welcome! Here's how:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature)
- Commit your changes (
git commit -m 'Add amazing feature')
- Push to the branch (
git push origin feature/amazing-feature)
- Open a Pull Request
For major changes, please open an issue or start a discussion first.
Developed By
Tertiary Infotech Academy Pte. Ltd.
Acknowledgements
- Glassmorphism design inspiration from modern UI trends
- Color palette curated for accessibility and visual contrast
- Web Audio API for zero-dependency sound synthesis
If you found this useful, please consider giving it a ⭐
License
MIT