A modern, responsive typing test application built with React 19, TypeScript, and Tailwind CSS. Test your typing speed and accuracy with a clean, distraction-free interface.
- Multiple Timer Modes: Choose between 15, 30, or 60-second typing tests
- Real-time Statistics: Live WPM (Words Per Minute) and accuracy tracking
- Dark/Light Theme: Toggle between themes for comfortable typing in any environment
- Responsive Design: Works seamlessly on desktop and mobile devices
- Random Text Generation: Dynamic word selection for varied typing challenges
- Detailed Results: Comprehensive statistics display after each test
- Frontend: React 19, TypeScript
- Styling: Tailwind CSS, shadcn/ui components
- Build Tool: Vite
- Package Manager: pnpm
- Icons: Lucide React
- Node.js (version 18 or higher)
- pnpm (recommended) or npm
- Clone the repository:
git clone https://github.com/yourusername/type-master.git
cd type-master
- Install dependencies:
pnpm install
- Start the development server:
pnpm dev
- Open your browser and navigate to
http://localhost:5173
pnpm dev
- Start development serverpnpm build
- Build for productionpnpm preview
- Preview production buildpnpm lint
- Run ESLint
src/
├── components/
│ ├── ui/ # shadcn/ui components
│ ├── Timer.tsx # Timer component with mode selection
│ ├── TypingArea.tsx # Main typing interface
│ ├── TypingTest.tsx # Root test component
│ └── ...
├── hooks/
│ ├── useTyping.ts # Core typing logic
│ ├── useTheme.ts # Theme management
│ └── useToast.ts # Toast notifications
├── data/
│ └── wordBank.ts # Text generation
├── types/
│ └── typing.ts # TypeScript definitions
└── lib/
└── utils.ts # Utility functions
- Select Timer: Choose your preferred test duration (15s, 30s, or 60s)
- Start Typing: Click in the text area and begin typing the displayed text
- Real-time Feedback: Watch your WPM and accuracy update as you type
- View Results: See detailed statistics when the timer ends
- WPM Calculation:
(correct characters / 5) / (time elapsed in minutes)
- Accuracy: Percentage of correctly typed characters
- Error Tracking: Real-time highlighting of mistakes
- Automatic dark/light mode detection
- Manual theme toggle
- Persistent theme preference
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- shadcn/ui for the beautiful UI components
- Tailwind CSS for the styling framework
- Lucide for the icon set
If you found this project helpful, please give it a ⭐ on GitHub!
For questions or support, please open an issue on GitHub.