A modern, feature-rich chess application built with Next.js and React. Designed for chess players of all levels, it offers a soft, responsive interface, customizable settings, multilingual support, and a smooth gameplay experience.
Live Demo: Check out the deployed version at chess-master-ultimate.vercel.app
- Features
- Screenshots
- Getting Started
- Usage
- Customization
- Project Structure
- Built With
- Dependencies
- Releases
- Key Features Explained
- License
- Acknowledgments
- Contact
- Contributing
- Support
- Interactive Chess Board: Drag-and-drop or click-to-move piece movement.
- Game Rules Enforcement: Full chess rules including castling, en passant, and checkmate detection.
- Multilingual Support: Available in 12 languages for global accessibility.
- Customizable Themes: Light, dark, or system theme options.
- Responsive Design: Optimized for desktop, tablet, and mobile devices.
- Game Timer: Optional 10-minute timer for timed matches.
- Move History: Real-time tracking in standard chess notation.
- Game Statistics: Displays captured pieces, move count, and game phase.
- Particle Background: Dynamic, interactive background animation.
- Keyboard Shortcuts: Comprehensive controls for all major actions.
- Fullscreen Mode: Toggle for a distraction-free experience.
- Accessibility Features: Tooltips and built-in help system.
- High Performance: Fast load times and smooth gameplay.
Feature | Light Mode | Dark Mode |
---|---|---|
Home Screen | ![]() |
![]() |
Game Screen | ![]() |
![]() |
Set up and run Chess Master Ultimate locally with these steps.
- Node.js: Version 18.0 or higher
- Package Manager:
npm
oryarn
-
Clone the Repository
git clone https://github.com/VoxDroid/Chess-Master-Ultimate.git
-
Navigate to the Project Directory
cd Chess-Master-Ultimate
-
Install Dependencies
npm install # or yarn install
-
Start the Development Server
npm run dev # or yarn dev
-
Open http://localhost:3000 in your browser to start playing.
Once the application is running, you can explore and customize it. Below are key sections and how to use them effectively.
- Launch the development server as described above.
- Click "Start Playing" on the home page to begin a game with white to move.
- Use the board controls or keyboard shortcuts to play.
- Purpose: Play chess with an interactive board.
- How to Use: Click a piece to select it, then click a valid square to move. Drag-and-drop also supported.
- Purpose: Manage gameplay with intuitive controls.
- How to Use: Use buttons below the board to undo, redo, reset, flip, or toggle fullscreen mode.
- Purpose: Customize the game experience.
- How to Use: Access the settings menu to adjust themes, fonts, language, and timer options.
Tailor Chess Master Ultimate to your preferences.
Modify the theme in tailwind.config.ts
:
// tailwind.config.ts
const config = {
theme: {
extend: {
colors: {
primary: {
DEFAULT: "hsl(210, 50%, 50%)", // Customize here
foreground: "hsl(210, 10%, 95%)",
},
},
},
},
};
Adjust CSS variables in styles/global.css
:
:root {
--primary: 210 50% 50%; /* Light mode */
}
.dark {
--primary: 210 50% 60%; /* Dark mode */
}
Edit these files to tweak the UI:
- Chessboard:
components/custom-chessboard.tsx
- Stats:
components/game-stats.tsx
- Move History:
components/move-history.tsx
- Translations:
lib/translations.ts
Adjust the animation in components/particle-background.tsx
(if implemented separately):
const particleCount = Math.min(100, Math.floor((window.innerWidth * window.innerHeight) / 10000));
const colors = [
"rgba(0, 102, 204, 0.5)", // Adjust colors
"rgba(51, 153, 255, 0.5)",
];
chess-master-ultimate/
├── app/ # Next.js app directory
│ ├── game/ # Game page
│ ├── providers.tsx # Context providers
│ ├── layout.tsx # Root layout
│ └── page.tsx # Home page
├── components/ # Reusable React components
│ ├── custom-chessboard.tsx # Chess board component
│ ├── game-stats.tsx # Game statistics widget
│ ├── move-history.tsx # Move history widget
│ └── ... # Other UI components
├── lib/ # Utility functions
│ └── translations.ts # Translation system
├── hooks/ # Custom React hooks
├── public/ # Static assets
│ ├── images/ # Images and icons
│ └── ... # Other public files
├── styles/ # Global styles
├── tailwind.config.ts # Tailwind CSS configuration
├── tsconfig.json # TypeScript configuration
└── package.json # Dependencies and scripts
- Next.js - React framework for production-grade apps
- TypeScript - Typed JavaScript for reliability
- Tailwind CSS - Utility-first CSS framework
- Framer Motion - Animation library
- chess.js - Chess logic engine
- tsparticles - Particle effects
- react-hotkeys-hook - Keyboard shortcuts
- Lucide Icons - Consistent icon set
- shadcn/ui - Reusable UI components
To run this project, the following Node.js packages are required (listed in package.json
):
next
- Core frameworkreact
andreact-dom
- React librariestypescript
- Type checkingtailwindcss
- Stylingframer-motion
- Animationschess.js
- Chess logictsparticles
- Particle effectsreact-hotkeys-hook
- Keyboard shortcuts@lucide/react
- Icons- Various
shadcn/ui
dependencies (e.g.,@radix-ui/*
)
Install them with:
npm install
- Check the Releases page for versioned updates.
- Each release includes notes on new features, bug fixes, and improvements.
- The source code is the primary distribution method; no pre-built binaries are provided.
A fully functional board with drag-and-drop or click-to-move mechanics, powered by chess.js
and custom-chessboard.tsx
.
Supports 12 languages with a custom translation system in lib/translations.ts
.
Dynamic particle effects using tsparticles
, enhancing visual appeal.
Comprehensive controls implemented with react-hotkeys-hook
for efficient gameplay.
This project is licensed under the MIT License. See the license file for details.
- chess.js - Robust chess logic
- tsparticles - Particle animations
- shadcn/ui - Reusable UI components
- Lucide Icons - Beautiful icon library
- Framer Motion - Smooth animations
- Tailwind CSS - Efficient styling
- Next.js - Robust framework
Questions or feedback? Reach out:
- GitHub: @VoxDroid
Contributions are welcome! To contribute:
- Fork the repository: https://github.com/VoxDroid/Chess-Master-Ultimate
- Create a feature branch (
git checkout -b feature-name
) - Commit your changes (
git commit -m "Add feature"
) - Push to the branch (
git push origin feature-name
) - Open a pull request
See CONTRIBUTING.md for more details (Coming Soon).
If you find this project useful, consider supporting its development:
- Ko-fi: Buy me a coffee
- Star the Repository: Give it a star on GitHub
- Report Issues: Submit bugs or suggestions on the Issues page
Developed by VoxDroid
GitHub | Ko-fi
© 2025 Chess Master Ultimate. All rights reserved.