[x] Implement a buffer for character detection, to solve combined characters issues: ^e should be detected as ê, same for ï, etc.
[x] Bug: when the editor is open, clicking anywhere but in the textarea closes and updates the text
User experience
[x] Self-replay: add an option to replicate own typing rythm entirely.
[x] Expand metrics/records — some requiring updated-while-typing computations:
[ ] Longest perfect accuracy series
[ ] Words (actual words) hit/total (ie. words nailed on first try)
[ ] Total time
[ ] Mean time-to-press (how much time before the user typed the next character)
[ ] Most frequent innacurate characters
[ ] % faster/slower than beat
[x] Cache text with at least one try:
[ ] Cache the app state in the browser for re-use (could be an heavy object, better done in a backend db).
[ ] Add a UI for the user to browse through saved states and reuse them in the app.
[x] Turn current app state stream into graphs.
[ ] [maybe?] Add a "free-typing" mode where an error doesn't have to be fixed, ie. the user may keep on typing or may fix that one last incorrect letter. No WPM/records computed I guess.
[x] [maybe?] Embed a collection of text in French and English, possibly other (roman) languages.
[ ] Bind Shift-Enter the same as Escape.
[ ] Somehow ignore combination keys such as Ctrl+…
[x] Challenge / gameplay mode:
[ ] During replay, set a marker at first previous error, possibly at next error, etc.
[ ] Limit number of (real) words displayed in advance.
[ ] On/off voice over.
[ ] CSS Light theme: use black on beige for .ta-content
[x] Allow toggling the sidebar. Folded sidebar should simply show setting name with value on top, and "t" as the main logo.
[x] Rework Edit mode: simply edit in place. Set the same font styling in the textarea, just change the theming. Move the "Edit text" CTA to the top-right corner, like a tab. Use it to convey the fact Edit mode is active.
[x] WPM setting should convey insights: what is a low, average, good, excellent WPM? What is the world-record? Once we have a history of personnal record, also display how far behind/above the current WPM is, in percentage.
[x] Using document.hasFocus(), toggle carret blinking.
[x] Clear "Best" metrics (records)
Stack
[x] Import CSS and assets using SystemJS?
[x] Create a production build by transpiling server-side, etc.
--- Meta-issue ---
Items to be added to a backlog using the Projects feature.
App
Internal
User experience
Stack