29b05271de
* 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> |
||
---|---|---|
.github | ||
.husky | ||
backend | ||
bin | ||
frontend | ||
.editorconfig | ||
.eslintignore | ||
.eslintrc.json | ||
.gitignore | ||
.npmrc | ||
.nvmrc | ||
.prettierignore | ||
.prettierrc | ||
CODE_OF_CONDUCT.md | ||
CONTRIBUTING.md | ||
CONTRIBUTING_ADVANCED.md | ||
CONTRIBUTING_BASIC.md | ||
LANGUAGES.md | ||
LICENSE | ||
package-lock.json | ||
package.json | ||
QUOTES.md | ||
README.md | ||
SECURITY.md | ||
THEMES.md |
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.