React Mini Crosswords App
Author: Cristian González /
Vite React 19 TypeScript Tailwind CSS Radix UI Components
A modern, interactive mini crossword puzzle application built with React and TypeScript. This project demonstrates clean architecture, component reusability, and a focus on user experience.
Features
- Interactive crossword puzzle grid with responsive design
- Multiple puzzles with different difficulty levels
- Real-time validation of answers
- On-screen keyboard
- Clues navigation for both across and down directions
- Celebration animation on puzzle completion
- Clean, modern UI built with Tailwind CSS and Radix UI
Technology Stack
- Frontend Framework: React 19
- Language: TypeScript
- Styling: Tailwind CSS
- UI Components: Radix UI
- Build Tool: Vite
- Package Manager: npm
Project Structure
src/
├── assets/ # Static assets like images
├── components/ # UI components
│ ├── layout/ # Layout components
│ └── ui/ # UI components
│ ├── button/
│ ├── card/
│ ├── crossword/ # Crossword specific components
│ ├── dialog/
│ ├── keyboard/
│ └── select/
├── data/ # Puzzle data
├── lib/ # Utility functions
├── pages/ # Page components
├── routers/ # Routing configuration
└── styles/ # Global styles
Crossword Components
The crossword functionality is divided into several components for better separation of concerns:
CrosswordGrid
: Renders the crossword puzzle gridCrosswordClues
: Displays the across and down cluesCrosswordKeyboard
: Provides an on-screen keyboard for inputCrosswordProvider
: Manages the state of the crossword puzzleCrosswordConfetti
: Shows celebration animation on puzzle completionCrosswordDialogSuccess
: Displays a success dialog when the puzzle is completed
Getting Started
Prerequisites
- Node.js (v16 or higher)
- npm (v7 or higher)
Installation
- Clone the repository
git clone https://github.com/yarmolem/crossword.git
cd crossword
- Install dependencies
npm install
- Start the development server
npm run dev
- Open your browser and navigate to
http://localhost:5173
Building for Production
npm run build
This will generate a production-ready build in the dist
directory.
Project Highlights
- Modular Architecture: Components are designed to be reusable and maintainable
- Responsive Design: Works well on both desktop and mobile devices
- Type Safety: Full TypeScript implementation for better code quality
- Modern UI: Clean and intuitive user interface
- Performance Optimized: Fast loading and rendering
License
MIT