Appearance Settings
Visual Customization
- Theme System
- Font Settings
- Display Options
Choose from 56+ built-in themes or create your own custom theme.Theme Options:
- Browse theme gallery
- Search themes by name
- Favorite themes for quick access
- Random theme mode
- Auto-switch between light/dark themes
- Custom theme creator with live preview
Caret Customization
Caret Style
Options:
default: Standard line cursorblock: Block-style cursoroutline: Outlined blockunderline: Underscore stylecarrot: Triangle pointerbanana: Fun animated style
frontend/src/ts/config-metadata.ts:473-478Caret Behavior
Smooth Caret:
- Enable animated transitions
- Follows typing smoothly
- Visual WPM target guide
- Modes: off, average, pb, last, custom, daily, tagPb
- Custom speed setting available
- Style options: default, outline
frontend/src/ts/config-metadata.ts:479-522Sound Settings
Audio Customization
Audio Customization
Sound Effects:
playSoundOnClick: Typewriter sound for each keystrokeplaySoundOnError: Error notification soundsoundVolume: Adjustable volume (0-100%)
playTimeWarning: Audio alert before time expires
frontend/src/ts/config-metadata.ts:440-464Input Behavior
Typing Behavior Modes
Freedom & Confidence
Freedom & Confidence
Freedom Mode:
- Allows backspacing beyond the current word
- Disables confidence mode automatically
- More flexible correction
off: Normal backspace allowedon: Backspace disabled for current wordmax: Backspace completely disabled- Forces accuracy over speed
- Disables freedom mode and stop on error
frontend/src/ts/config-metadata.ts:342-396Error Handling
Error Handling
Stop on Error:
off: Continue typing with errorsword: Must correct word before proceedingletter: Must correct each letter immediately
off: No visual indicationbelow: Show correct letter below typoreplace: Replace wrong letter with correct one
- Visually hides extra characters beyond word length
frontend/src/ts/config-metadata.ts:368-420Special Input Modes
Special Input Modes
Strict Space:
- Space only advances to next word if current word is correct
- Increases accuracy requirement
- Requires using opposite hand’s shift key
- Improves proper touch typing technique
- Automatically replaces accented characters with base letters
- Useful for languages with diacritics
- Not supported by all languages
frontend/src/ts/config-metadata.ts:356-432Live Stats Display
- Progress Display
- Live Metrics
- Visual Effects
Timer Style:
off: Hiddenbar: Progress bartext: Time/words remainingmini: Compact display
timerColor: Main or sub colortimerOpacity: 0.25 to 1.0
frontend/src/ts/config-metadata.ts:525-560Keyboard Display
Keymap Customization
Keymap Customization
Keymap Mode:
off: Hiddenstatic: Always visiblereact: Shows pressed keysnext: Highlights next letter
keymapLayout: Choose keyboard layoutkeymapStyle: Visual style (staggered, matrix, split)keymapLegendStyle: Label display (lowercase, uppercase, blank, dynamic)keymapShowTopRow: Toggle number row visibilitykeymapSize: Adjustable size (0.5x to 3.5x)
frontend/src/ts/config-metadata.ts:652-703Behavior Settings
Test Control
Quick Restart:
- Key options: tab, esc, enter
- Disabled for long tests
- Requires shift key modifier
- Bail out during test
- Results marked as incomplete
off: New quote each timetyping: Same quote on restart
frontend/src/ts/config-metadata.ts:200-211Visual Aids
Show Key Tips:
- Hint tooltips on elements
- Alert when test loses focus
- Visual indicator when caps lock is on
- Hide words during test
- Ultimate accuracy challenge
frontend/src/ts/config-metadata.ts:828-857Difficulty Modifiers
Challenge Settings
Challenge Settings
Difficulty Levels:
normal: Standard wordsexpert: No backspace allowedmaster: Must correct errors before proceeding
minWpm: Fail test if WPM drops below thresholdminAcc: Fail test if accuracy drops too lowminBurst: Fail test if burst speed is too slow- Custom values available for each
frontend/src/ts/config-metadata.ts:195-287Result Display
Statistics Display
Statistics Display
Show Personal Best:
- Display PB comparison on results
- Display running average stats
- Force 2 decimal places on all numbers
- WPM (words per minute)
- CPM (characters per minute)
- CPS (characters per second)
- Force chart Y-axis to start at 0
Result Options
Result Options
Always Show Words History:
- Display typed words by default
- Simplified command menu
- Configure profile chart display
- Show speed and/or accuracy graphs
- Toggle result saving on/off
- Disabled results are not stored
Saving Your Settings
All settings are automatically saved:
- Logged out: Saved to browser localStorage
- Logged in: Synced to your account
- Settings sync across devices when logged in
- Export/import config JSON for backup
Source Code References
- Configuration metadata:
frontend/src/ts/config-metadata.ts - Config system:
frontend/src/ts/config.ts - Settings validation:
frontend/src/ts/config-validation.ts