v0.2.0 — UI modernization
v0.2.0 — UI/UX modernization
The app's planner and results views have been rebuilt to a modern, state-of-the-art standard (#64), plus branch-protection/CI policy documentation.
✨ UI modernization (#64)
- New component system — Card / Field / Button / Chip / Disclosure primitives on the
--sc-*design tokens; planner regrouped into a single "Reise" card. - Searchable harbor picker — the harbor mega-list is now a WAI-ARIA combobox ("Hafen suchen") with prefix-before-substring ranking, recently-used harbors first, and each harbor's depth caveat inline. Selecting an endpoint collapses it to a tidy row with "Ändern".
- Ergebnis results card — a clean stat grid (arrival · distance · duration · avg speed), a faster-rig recommendation (Genua ★ / Fock), a sail/motor split bar, an advanced-options disclosure, and the legs table tucked inside a disclosure.
- Refined states & motion — dedicated empty / loading / error states, with motion that respects
prefers-reduced-motion.
🛡️ Project process
- Branch-protection & code-review policy documented in SECURITY.md (#71).
protect-mainruleset documented — one ruleset coveringmainanddevelopvia literal refs (#73).
Notes
- No changes to routing, data, or offline behavior. Wind grids remain stored per saved plan; navigability is still decided at query time by safety depth.
- Verified via a local production-bundle walkthrough (0 console errors, responsive to 390 px) and full CI (
app+e2e).