The most customizable typing website with a minimalistic design and a ton of features. Test yourself in various modes, track your progress and improve your speed.
Go to file
ademirkan 29b05271de
New Highlighting System (#4448) ademirkan
* put speed above word in input highlight

* updated class name
using class nesting

* put speed below word, added nocursor

* removed unnecessary line

* saving highlight controller progress, started init()

* finished highlight-controller init, middle of highlight()

* fixed highlightContainer padding issue

* buggy implementation of highlight()

* finished highlight() demo

* event listener to call destroy() on window resize

* removed init from public functions

* fixed bug where words could not be hovered for speed highlight

* simplified highlight css & js

* accounted for padding

* buggy, functional implementation of counter-animation

* semi-percise line up, buggy clear()

* official v1.0, fixed highlightPlaceholder text dissapearing late bug

* improved variable name readability

* improved documentation for highlight-controller

* added concise summary on top for highlight-controller

* minor counter-animation performance changes

* fixed bug where word is overtyped but corrected, causing overlapping inputWord elements

* prettier error, removed line

* fixed eslint errors

* fixed bug: highlight persisting on mouseleave when moving too fast

* changed highlight transitions from 0.15s to 0.25s

* fixed eslint bug for new setIsHoverChart function

* checkpoint: introduced line rect to type

* checkpoint: percise inputWord positioning

* checkpoint: highlight width  based on input, not full word

* checkpoint: optimized by reducing animations by setting min/max on highlight offsets, reducing number of lines being animated

* checkpoint: changed highlight offset limiters to be based on window width

* Fixed bugs for highlight-controller

* fixed eslint issues

* fixed length error on resize

* Fixed offset error when heatmap is toggled

* fixed inputWordsContainer animation bug in first highlight call

* uncommented accidental comments

* reduced jQuery calls, improving performance

* removed unnecessary document query

* early exists when highlightRange does not change

* reset highlightRange on destroy

* removed unnecessary import

* optimized callback

* added fade in/out animations, instant positioning

* removed console log

* renamed highlightWords to highlightWordsInRange

* made highlightWordsInRange more readable

* renamed highlight-controller to result-word-highlight

* nonfunctional checkpoint

* nonfunctional, updated highlightWordsInRange

* nonfunctional, saving progress

* nonfuctional, saving progress

* saving progress, nonfunctional

* partially functional, incomplete getHighlightElementPosition

* nonfunctional, checkpoint

* non-functional, made isLanguageRTL + functions async

* fixed returning false I bug (i think)

* current line functional

* lower lines highlight positioning functional

* completed RTL refactor

* finished RTL refactor, eslint fix

* fixed ts, getBoundingRect function put in misc

* removed console log

---------

Co-authored-by: Miodec <jack@monkeytype.com>
2023-07-21 13:38:26 +02:00
.github Upgrade actions in workflows (#4232) 2023-04-30 11:20:09 -04:00
.husky updated to husky 8 2022-10-21 14:51:44 +02:00
backend catching drop errors, should fix #4440 2023-07-21 13:04:18 +02:00
bin Fix (#2550) 2022-02-20 22:29:39 +01:00
frontend New Highlighting System (#4448) ademirkan 2023-07-21 13:38:26 +02:00
.editorconfig Add .editorconfig (#1976) 2021-10-10 16:09:32 +01:00
.eslintignore remove run-script-os and change the script back (#2573) 2022-02-23 01:07:48 +01:00
.eslintrc.json reminder 2023-06-16 17:13:50 +02:00
.gitignore updated gitignore 2023-06-21 00:08:46 +02:00
.npmrc Enforce save exact (#2918) 2022-05-01 21:34:29 +02:00
.nvmrc chore: updated node/npm versions (#2440) 2022-02-08 00:28:56 +01:00
.prettierignore Add pretty check (#2990) bruception 2022-05-19 11:31:18 +02:00
.prettierrc TypeScript FrontEnd: Add Account Files (#2494) 2022-02-19 17:44:27 +01:00
CODE_OF_CONDUCT.md Update CODE_OF_CONDUCT.md to new verison (#2964) sillyangel 2022-05-11 14:16:08 +02:00
CONTRIBUTING.md Housekeeping (#3816) 2022-12-08 14:46:17 +01:00
CONTRIBUTING_ADVANCED.md Use the <kbd> tag instead of markdown code backticks (#4081) UnrealApex 2023-03-17 11:51:47 +01:00
CONTRIBUTING_BASIC.md Update CONTRIBUTING_BASIC.md (#3328) unrealapex 2022-07-09 14:15:23 +02:00
LANGUAGES.md converted required leftToRight to optional rightToLeft (#4229) 2023-04-26 23:34:13 +02:00
LICENSE Create LICENSE 2020-05-30 00:30:54 +01:00
package-lock.json updated eslint 2023-06-16 11:06:00 +02:00
package.json updated eslint 2023-06-16 11:06:00 +02:00
QUOTES.md Corrected typo (#3402) JacoChong 2022-08-12 15:01:55 +02:00
README.md Update README.md 2023-05-23 21:32:13 +02:00
SECURITY.md updated email addresses 2023-02-14 00:22:37 +01:00
THEMES.md Adding new theme earthsong and fixing typo on THEMES.md (#3756) Guillermo-N 2022-11-21 13:24:48 +01:00


TypeScript SASS HTML5

About

Monkeytype is a minimalistic and customizable typing test. It features many test modes, an account system to save your typing speed history, and user-configurable features such as themes, sounds, a smooth caret, and more. Monkeytype attempts to emulate the experience of natural typing during a typing test, by unobtrusively presenting the text prompts and displaying typed characters in-place, providing straightforward, real-time feedback on typos, speed, and accuracy.

Features

  • minimalistic design, with optional advertisements and focus mode while typing
  • type what you see, see what you type
  • live errors, wpm, and accuracy displays
  • variety of test lengths and languages
  • punctuation and numbers modes
  • quotes
  • themes
  • smooth caret
  • account system
  • challenges and just-for-fun test modifiers
  • and much more

Discord bot

On the Monkeytype Discord server, we added a Discord bot to auto-assign optional roles based on typing performance and challenge completion. You can find its code over at https://github.com/monkeytypegame/monkeytype-bot.

Bug report or Feature request

If you encounter a bug or have a feature request, send us an email, create an issue, create a discussion thread, or join the Discord server.

Want to Contribute?

Refer to CONTRIBUTING.md.

Code of Conduct

Before contributing to this repository, please read the code of conduct.

Credits

Montydrei for the name suggestion.

Everyone who provided valuable feedback on the original Reddit post for the prototype of this website.

All of the contributors that have helped with implementing various features, adding themes, fixing bugs, and more.

Support

If you wish to support further development and feel extra awesome, you can donate, become a Patron or buy a t-shirt.