Skip to content

Fit the planner and comparison on a phone - #13

Merged
greenido merged 1 commit into
mainfrom
feat/mobile-planner-compare
Oct 1, 2026
Merged

greenido merged 1 commit into
mainfrom
feat/mobile-planner-compare

Conversation

@greenido

@greenido greenido commented Oct 1, 2026

Copy link
Copy Markdown
Owner

Why

At 375px wide:

  • Planner: the sticky resort column took ~85% of the width, so only one day was visible at a time.
  • Compare: ~650px of filters and toolbar came before the first result, then one full screen per resort card.

What

  • Planner (phones): the resort column is capped and truncated and pass badges are hidden, so all 7 days fit. A new "Best pick each day" list reads the grid by column (bestPerDay() in lib/planner.ts, with tests). Tapping a row opens that resort.
  • Compare (phones): a compact ranked list with one line per resort: rank, name, region/distance, temp, ❄️/☀️/💨 flags, 24h snow and score. The cards stay from sm up.
  • Filters: pass and region chips become a single swipeable row on phones instead of wrapping onto 5 lines. The toolbar description is hidden on phones, sort labels are shortened and the map button shows only its icon, so the controls fit on one line.
  • Desktop: unchanged.

Testing

  • tsc --noEmit, next lint and all 9 offline test suites pass, including 2 new bestPerDay tests.
  • Checked in the browser at 375×812: no sideways page scroll, all 7 planner days visible, and tapping a compact Compare row opens the resort.
  • Checked at 1440×900: Planner and Compare look the same as before.

Merge order

This is 1 of 3. All three branch off main and edit different parts of app/page.tsx. I merged them locally in order 1 → 2 → 3 and there were no conflicts.

🤖 Generated with Claude Code

On a 375px screen the planner's sticky resort column took ~85% of the
width, so one day was visible at a time, on a view whose point is to
see the best day at a glance. The comparison spent ~650px on filters
and a toolbar before the first result, then one screen per resort card.

- Planner: cap the resort column and drop its pass badges on phones,
  so all seven days fit beside it. Add a "best pick each day" list
  (phones only) that reads the grid by column; the logic lives in
  bestPerDay() in lib/planner.ts, with tests.
- Compare: phones get a one-line-per-resort ranked list (rank, name,
  temp, flags, 24h snow, score). The cards stay from `sm` up.
- Pass and region chips become one swipeable row on phones instead of
  wrapping onto five lines. Toolbar copy and labels shorten to fit.

Desktop layouts are unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@greenido
greenido merged commit a982ac2 into main Oct 1, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant