Typing Speed is a lightweight and fun typing test game designed to help users improve their typing speed and accuracy.
-
Choose Test Time: Users can select 30s, 60s, or 90s as the test duration. Once chosen, typing on the keyboard immediately starts the game.
-
Real-time Accuracy Feedback: Correct and incorrect letters and spaces are displayed in different colors to help users understand their current accuracy.
-
Random Word Groups: Once a word group is fully typed, a new group is randomly generated using
faker-js
for the next typing session. -
Countdown and Results: A countdown timer is shown in the top-left corner, and when time runs out, users can see their results including WPM, accuracy percentage and total typed etc.
-
Restart Button: Clicking the "Restart" button allows users to start a new game.
-
Tooltip Hints: Hovering over the "Choose Time" button and the question mark icon displays helpful tooltip hints for users to understand the game rules.
-
Dark/Light Mode: The sun and moon icons in the top-right corner allow switching between dark and light modes. By default, it follows the system setting.
-
Sound Effects: Typing produces typing sound effects, and incorrect letters trigger error sounds.
-
Animated Results: The results gradually fade in using the Framer Motion library, enhancing visual appeal.
To run Typing Speed locally, follow these steps:
-
Clone the repository:
git clone https://github.com/Codefreyy/typing-speed-game.git
-
Install dependencies:
npm i
-
Start the development server:
npm run dev
-
Open a browser and navigate to http://localhost:3000.
The game is deployed on Vercel. Try it out here: https://joy-typing-speed-game.vercel.app/
This game was initially inspired by the basic functionalities demonstrated in a YouTube tutorial. I have expanded on these foundations to enhance the game's features and user experience and fixed several bugs. The expansions include the customizable test durations, more typing speed measurement, and various user experience improvements such as tooltips, theme toggling, sounding effects.
Contributions and suggestions are welcome! Feel free to submit issues or pull requests to help improve and expand this game.