fix(ui): size mobile layout from live visible viewport (browser tab bar cutoff) #77

Merged
lfg2025 merged 1 commits from mobile-viewport-fix into main 2026-07-14 08:33:43 +00:00
Owner

Brave Android misreports dvh, so 100dvh containers extended under the browser tab bar and page bottoms could never scroll into view. The app now syncs --visual-viewport-height to window.innerHeight (same reference frame as the fixed tab bar) and all mobile shell heights consume it with dvh fallback — the UI scales live as the tab bar shows/hides. Clearance margin 16→28px.

🤖 Generated with Claude Code

Brave Android misreports dvh, so 100dvh containers extended under the browser tab bar and page bottoms could never scroll into view. The app now syncs --visual-viewport-height to window.innerHeight (same reference frame as the fixed tab bar) and all mobile shell heights consume it with dvh fallback — the UI scales live as the tab bar shows/hides. Clearance margin 16→28px. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
lfg2025 added 1 commit 2026-07-14 08:33:42 +00:00
Brave Android (custom bottom toolbar) and some other mobile browsers report
dvh taller than the actually visible area while position:fixed elements track
the visible viewport — so 100dvh containers extended under the browser tab
bar and the bottom of every page could never be scrolled into view.

main.ts now keeps --visual-viewport-height synced to window.innerHeight
(resize / orientationchange / visualViewport events — the same reference
frame as the fixed tab bar), and the dashboard shell, chat, and app-session
mobile heights consume it with 100dvh as fallback. The app now scales with
the browser chrome as it shows/hides. Scroll clearance margin 16px → 28px.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
lfg2025 merged commit 621636492b into main 2026-07-14 08:33:43 +00:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: lfg2025/archy#77
No description provided.