fix(ui): size mobile layout from the live visible viewport, not dvh
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>
This commit is contained in:
@@ -604,6 +604,7 @@ onBeforeUnmount(() => {
|
||||
.app-session-fullscreen {
|
||||
height: 100vh;
|
||||
height: 100dvh;
|
||||
height: var(--visual-viewport-height, 100dvh);
|
||||
padding-top: var(--safe-area-top, env(safe-area-inset-top, 0px));
|
||||
background: black;
|
||||
}
|
||||
@@ -621,6 +622,7 @@ onBeforeUnmount(() => {
|
||||
flex: none !important;
|
||||
height: calc(100vh - var(--app-session-mobile-bar-height, 84px) - var(--safe-area-top, env(safe-area-inset-top, 0px)));
|
||||
height: calc(100dvh - var(--app-session-mobile-bar-height, 84px) - var(--safe-area-top, env(safe-area-inset-top, 0px)));
|
||||
height: calc(var(--visual-viewport-height, 100dvh) - var(--app-session-mobile-bar-height, 84px) - var(--safe-area-top, env(safe-area-inset-top, 0px)));
|
||||
padding-bottom: 0;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user