feat: collapse phone nav to four core tabs plus More #86

Merged
nalum merged 3 commits from feat/phone-nav-collapse into main 2026-08-16 12:40:53 +00:00
Owner

Closes #65.

Why

Six tabs crowd a phone bottom bar — above the 3–5 a bar comfortably holds.

What

Below the 900px rail breakpoint, the bar keeps the four core boards — Today, Calendar, Jobs, Lists — plus a More entry (its own icon and label, never icon alone) that opens a Sheet with Meals and Rewards. More shows the active state whenever one of those is the current board, so a member is never lost. The wide rail is unchanged and keeps all six inline — a deliberate, space-forced divergence at the same breakpoint (rule 1). Single-line ellipsised labels stay the floor even with fewer tabs.

Adds a three-dot More glyph to both icon sets.

Surfaces

  • web — TabBar.tsx (four core + More button + sheet), app.css (show/hide across the rail breakpoint), Icon.tsx (More glyph).
  • Android — Home.kt HomeNavBar (four core + More item + bottom sheet), HomeNavRail unchanged, AppIcons.kt (More glyph).
  • docs — layout section records the four-core split and More overflow.
  • MCP/CLI have no nav bar (rule 1).

Stacking

Stacked for fast-forward on feat/day-view-short-events (#85). Merge after the chain: #82 → #79 → #80 → #81 → #84 → #85 → this.

make check green (catalogs regenerated for the new "More" string). Verified on both surfaces, narrow and wide, against the local deploy.

🤖 Generated with Claude Code

Closes #65. ## Why Six tabs crowd a phone bottom bar — above the 3–5 a bar comfortably holds. ## What Below the 900px rail breakpoint, the bar keeps the **four core boards** — Today, Calendar, Jobs, Lists — plus a **More** entry (its own icon **and** label, never icon alone) that opens a `Sheet` with **Meals** and **Rewards**. More shows the **active** state whenever one of those is the current board, so a member is never lost. The **wide rail is unchanged** and keeps all six inline — a deliberate, space-forced divergence at the same breakpoint (rule 1). Single-line ellipsised labels stay the floor even with fewer tabs. Adds a three-dot **More** glyph to both icon sets. ## Surfaces - **web** — `TabBar.tsx` (four core + More button + sheet), `app.css` (show/hide across the rail breakpoint), `Icon.tsx` (More glyph). - **Android** — `Home.kt` `HomeNavBar` (four core + More item + bottom sheet), `HomeNavRail` unchanged, `AppIcons.kt` (More glyph). - **docs** — layout section records the four-core split and More overflow. - MCP/CLI have no nav bar (rule 1). ## Stacking Stacked for fast-forward on `feat/day-view-short-events` (#85). Merge after the chain: **#82 → #79 → #80 → #81 → #84 → #85 → this**. `make check` green (catalogs regenerated for the new "More" string). Verified on both surfaces, narrow and wide, against the local deploy. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
The phone bottom bar carried all six boards — above the 3–5 a bar
comfortably holds. It now keeps the four core boards (Today, Calendar,
Jobs, Lists) and folds Meals and Rewards behind a More button that opens
a sheet; More shows the active state when one of them is current. The
wide rail is unchanged and keeps all six inline. A three-dot More glyph
joins the icon set.
Android parity for the phone-nav collapse: HomeNavBar shows the four core
boards plus a More item opening a bottom sheet with Meals and Rewards,
active when one of them is current. HomeNavRail keeps all six inline.
Adds the three-dot More glyph.
docs(frontend): record the four-core phone nav collapse
Some checks failed
check / commits (pull_request) Successful in 5s
check / web (pull_request) Successful in 1m47s
check / go (pull_request) Successful in 2m33s
check / report (pull_request) Successful in 4s
android / report (pull_request) Has been cancelled
android / build (pull_request) Has been cancelled
335508160f
Record the four-core split and the More overflow in the layout section
(rule 5).

Test report

Suite Tests Result Skipped
Unit 1330 ✅ pass 1
Integration 83 ✅ pass —

Coverage: 27.6%

Updated by the check workflow · commit 6d372f3b68

<!-- ci-test-report --> ## Test report | Suite | Tests | Result | Skipped | | --- | --: | --- | --: | | Unit | 1330 | ✅ pass | 1 | | Integration | 83 | ✅ pass | — | **Coverage:** 27.6% <sub>Updated by the check workflow · commit 6d372f3b68e2531e7f5b4090a6f7fe2e8ee437b2</sub>
nalum force-pushed feat/phone-nav-collapse from 335508160f
Some checks failed
check / commits (pull_request) Successful in 5s
check / web (pull_request) Successful in 1m47s
check / go (pull_request) Successful in 2m33s
check / report (pull_request) Successful in 4s
android / report (pull_request) Has been cancelled
android / build (pull_request) Has been cancelled
to 6d372f3b68
All checks were successful
check / commits (pull_request) Successful in 6s
check / web (pull_request) Successful in 1m39s
check / go (pull_request) Successful in 2m43s
check / report (pull_request) Successful in 6s
android / build (pull_request) Successful in 5m18s
android / report (pull_request) Successful in 3s
2026-08-15 22:30:48 +00:00
Compare

Android test report

Suite Tests Result Skipped
Unit (debug) 31 ✅ pass 0

Updated by the android workflow · commit 6d372f3b68

<!-- android-test-report --> ## Android test report | Suite | Tests | Result | Skipped | | --- | --: | --- | --: | | Unit (debug) | 31 | ✅ pass | 0 | <sub>Updated by the android workflow · commit 6d372f3b68e2531e7f5b4090a6f7fe2e8ee437b2</sub>
nalum force-pushed feat/phone-nav-collapse from 6d372f3b68
All checks were successful
check / commits (pull_request) Successful in 6s
check / web (pull_request) Successful in 1m39s
check / go (pull_request) Successful in 2m43s
check / report (pull_request) Successful in 6s
android / build (pull_request) Successful in 5m18s
android / report (pull_request) Successful in 3s
to 7f31026803
Some checks failed
android / build (push) Has been cancelled
android / report (push) Has been cancelled
check / commits (push) Has been cancelled
check / go (push) Has been cancelled
check / report (push) Has been cancelled
check / web (push) Has been cancelled
tag / tag (push) Has been cancelled
check / commits (pull_request) Has been cancelled
check / go (pull_request) Has been cancelled
check / report (pull_request) Has been cancelled
check / web (pull_request) Has been cancelled
android / build (pull_request) Has been cancelled
android / report (pull_request) Has been cancelled
2026-08-16 12:40:38 +00:00
Compare
nalum changed target branch from feat/day-view-short-events to main 2026-08-16 12:40:49 +00:00
nalum merged commit 7f31026803 into main 2026-08-16 12:40:53 +00:00
nalum deleted branch feat/phone-nav-collapse 2026-08-16 12:40:54 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
eagraiclainne/app!86
No description provided.