Redesign mobile nav bar #179
Labels
No labels
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Grandiras/Ponente#179
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Too many important things are hidden in the main menu and to much precious space remains unused.
🤖 On it — follow along in the action run; the reply will link the full session transcript.
📜 Live transcript — updating every ~5 minutes while the task runs.
Pushed to
claude/issue-179.Redesigned the phone nav bar
The complaint was both halves of one thing. The bar on the bottom edge held a wordmark, the board's name and a magnifier — with most of the widest slot on the device empty — while Board and Calendar, the two readings every member actually came for, were two taps down inside the account sheet, behind a face.
The bar is now four destinations — Board · Calendar · Search · account — each a mark with its word under it, sharing whatever the board switcher leaves.
What moved out of the bar, and why each one:
BoardHref(ActiveBoardId, "/board")— literally where the Board tab goes. Keeping it would spend the bar's widest cell on a second copy of the tab beside it..nav-board-title, a title rather than a button: the one thing in the bar that cannot be pressed, in the widest slot there is, answering a question a single-board deployment has no second answer to. Where there is a choice, the switcher stays, wears a surface (there is no hover on a finger) and takes up to 42% of the bar before its name ellipses.The four cells are
flex: 1 1 0, not1 1 auto: anautobasis would give "Calendar" a wider target than "Board" for no reason a thumb cares about..nav-tabsis in the DOM at every width and hidden by CSS, unlike the menu's phone group —_isPhoneis a round trip, and a bar that rearranges itself after the page has painted is worse than one that never moved. The account's face is 20px like the other three marks, so every cell's word sits on one line.What the account sheet keeps is what only it can hold: the admin fold (five pages cannot be tabs), what the menu does, the settings, and the way out. The whole "where to go" group is inside the admin policy now — with the views gone, an ordinary member would otherwise get an empty group and its hairline.
Desktop (≥960px) and tablet (600–959px) are untouched — I checked both against screenshots.
Files:
NavHeader.razor,SearchBox.razor,app.css(phone block),Changelog.Unreleased(both locales),docs/ui.md,docs/search.md,docs/frontend.md,mobile.spec.js,search.spec.js,boards.spec.js. No new translation keys — the four labels arenav.board,nav.calendar,search.open,nav.menu, all of which already existed in both locales.Verified:
dotnet buildanddotnet testgreen (448 passed, includingChangelogTestsandDocumentationTests). Playwright run host-side against a real app + Postgres:mobile.spec.js,search.spec.js,board.spec.js,install.spec.js,profile.spec.js,filter.spec.js,changelog.spec.js,calendar-all.spec.jsand the rest ofboards.spec.jsall pass. New assertions pin that there are four cells, that each is ≥44px and carries a word, that their labels share one baseline, that the row reaches the bar's far edge, that the wordmark is gone, and that the sheet no longer holds the two views.One thing to flag rather than claim: seven tests failed in my host-side run — six in
calendar.spec.jsandboards.spec.js:165, all of them the calendar's entrance animation never reachingopacity: 1— and I confirmed they fail identically on unmodifiedmainin this same environment, so they are not from this change. Twofeedback.spec.jsfailures are the stub forge on:8092, which only the compose stack publishes. I did not file issues for these: I can't tell a host-run artefact from a real regression without the compose stack, and guessing would be speculation.⏱ 30m 46s · 171 turns · tokens: 244.7k in / 77.4k out (+29341.7k cache-read)
📜 Full session transcript
→ Opened PR: #180