Readability + usability pass
📅 Heatmap + streak calendar redesign
Cells were tiny and unreadable on phones (~4-5 px wide). Redesigned:
- Fixed cell size — 14 px desktop, 12 px mobile — wrapped in a horizontally scrollable container so they never squish.
- Day-of-week labels (Mon/Wed/Fri) on the left of both grids.
- Month labels above each grid, localised to your selected language.
- Monday-aligned first column via leading blank cells so weeks line up with the calendar.
- GitHub-style color legend (Less → 5 shades → More + "max N/day") replaces the old single-line text hint.
- Hover scale bumped 1.3 → 1.35 for easier targeting.
⚙️ Quest editor form
Raw JSON editor replaced with a proper form:
Built-in quests now list as rows with a disable checkbox. Check to remove a quest from rotation — strikes through + greys out visually. No more hand-typing quest ids into a comma-separated list.
Custom quests are inline cards with labelled inputs:
- Id, Title, Icon (Material icon name)
- Description
- Metric (dropdown with all 15 valid options — no more looking up the enum names)
- Target, Reward (number spinners)
- Delete button per card
Plus + Add daily quest / + Add weekly quest buttons at the bottom of each list.
Old raw-JSON textarea kept in a nested Advanced section for power users / bulk paste — editing it overrides the form on save if you prefer that workflow.
🌐 i18n
+32 new keys (calendar day/month labels, heatmap legend, quest form field labels) × 8 languages. 721 total keys per translation file.
MD5: B214F900F7CA8A8B590AAA9F71CE8E0A