A modern, sleek Sudoku playing website built with Vue 3, TypeScript, and Vite.
- 6 difficulty levels: Beginner, Intermediate, Advanced, Expert, Master, Extreme
- Multiple input modes: Mouse, touch, and keyboard support
- Pencil marks for notation
- Undo and erase functionality
- Real-time validation with visual feedback
- Completion animations with confetti effect
- Responsive design for mobile, tablet, and desktop
- Rules and history content
- Node.js 20+
- npm 10+
# Install dependencies
npm install
# Start dev server (default: http://localhost:5173)
npm run dev
# Build for production
npm run build
# Preview production build
npm run preview
# Run linter
npm run lint
# Run tests
npm run testThis project deploys to GitHub Pages automatically via GitHub Actions when changes are pushed to the main branch.
- GitHub Pages enabled in repository settings
- GitHub Actions workflow permissions: Read and write permissions
- Pages deployment source: GitHub Actions
sudoku_lite/
├── src/
│ ├── main.ts # Application entry point
│ ├── App.vue # Root component
│ ├── components/ # Vue components
│ ├── game/ # Game logic (generator, solver, validator)
│ ├── styles/ # Global styles
│ └── assets/ # Static assets
├── public/ # Public static files
├── tests/ # Unit and e2e tests
└── .github/workflows/ # CI/CD workflows
Before merging to main, ensure the following checks pass:
# Use W3C HTML validator or:
npx html-validate index.html dist/**/*.html# Use W3C CSS validator or:
npx stylelint "src/**/*.css" "src/**/*.vue"npm run lint# Check for broken links in built site
npx linkinator dist --recurse# Run accessibility checks (WCAG 2.1 Level A minimum)
npx pa11y-ci dist/index.htmlThe application supports three input modes:
-
Mouse/Touch: Click cells and number buttons
-
Keyboard:
- Arrow keys: Navigate cells
- 1-9: Enter numbers
- Delete/Backspace: Erase
- P: Toggle pencil mode
- U: Undo last action
-
Touch gestures: Tap cells and controls on mobile devices
- Test mouse clicks on all interactive elements
- Test keyboard navigation and shortcuts
- Test touch interactions on mobile/tablet devices
- Verify all three modes work without conflicts
Supports the latest 2 versions of:
- Chrome
- Firefox
- Safari
- Edge
- 60 fps animations
- Puzzle generation: ≤ 3 seconds
- Interaction response: ≤ 200ms
- Initial page load: ≤ 5 seconds
MIT