Skip to content

fix(web): mobile browser bar obscures chat input#508

Merged
ilblackdragon merged 2 commits intomainfrom
fix/mobile-viewport-chat-input
Mar 4, 2026
Merged

fix(web): mobile browser bar obscures chat input#508
ilblackdragon merged 2 commits intomainfrom
fix/mobile-viewport-chat-input

Conversation

@PierreLeGuen
Copy link
Copy Markdown
Contributor

Summary

  • Switch 100vh to 100dvh (with vh fallback) on body, #auth-screen, #app, and .job-files so the layout sizes to the visible viewport on mobile browsers
  • Add viewport-fit=cover to the viewport meta tag to enable env(safe-area-inset-*) on notched/rounded devices
  • Add padding-bottom: max(12px, env(safe-area-inset-bottom)) to .chat-input for devices with a home indicator bar

Fixes the issue where mobile browser bottom navigation bars (Brave on Android, Safari on iOS) completely cover the chat input box.

Test plan

  • Open web gateway on mobile browser — chat input should be fully visible above browser bottom bar
  • Type in the input — no obstruction from browser chrome
  • Verify desktop layout is unchanged (dvh == vh when no browser UI bars)
  • Test on notched device (iPhone) — extra padding from safe-area-inset should appear

🤖 Generated with Claude Code

…chat input

On mobile browsers (Brave/Android, Safari/iOS), the bottom navigation bar
covers the chat input because 100vh includes space behind browser chrome.
Switch to 100dvh (dynamic viewport height) with vh fallback for older
browsers, and add safe-area-inset padding for notched devices.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@github-actions github-actions Bot added scope: channel/web Web gateway channel size: XS < 10 changed lines (excluding docs) risk: medium Business logic, config, or moderate-risk modules contributor: regular 2-5 merged PRs labels Mar 4, 2026
@gemini-code-assist
Copy link
Copy Markdown
Contributor

Summary of Changes

Hello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request addresses a critical UI issue on mobile devices where browser navigation bars would obscure the chat input field. By adopting modern CSS viewport units (dvh) and leveraging safe area insets, the application's layout now correctly adapts to the visible viewport, ensuring the chat input remains fully accessible and visible across various mobile browsers and devices, including those with notches or home indicators.

Highlights

  • Mobile Viewport Sizing: Implemented 100dvh with 100vh fallback for body, #auth-screen, #app, and .job-files to ensure correct sizing on mobile browsers, accounting for dynamic toolbars.
  • Safe Area Insets: Added viewport-fit=cover to the meta tag and applied padding-bottom: max(12px, env(safe-area-inset-bottom)) to .chat-input to prevent content from being obscured by device notches or home indicators.
Changelog
  • src/channels/web/static/index.html
    • Added viewport-fit=cover to the viewport meta tag.
  • src/channels/web/static/style.css
    • Updated the body element's height to use 100dvh as a primary value with 100vh as a fallback.
    • Updated the #auth-screen element's height to use 100dvh as a primary value with 100vh as a fallback.
    • Updated the #app element's height to use 100dvh as a primary value with 100vh as a fallback.
    • Modified the .chat-input padding to dynamically adjust its bottom padding using env(safe-area-inset-bottom).
    • Updated the .job-files element's height to use calc(100dvh - 280px) as a primary value with calc(100vh - 280px) as a fallback.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request effectively addresses the issue of the mobile browser's bottom bar obscuring the chat input. The use of 100dvh with a 100vh fallback is the correct modern approach for handling dynamic viewport sizes. The addition of viewport-fit=cover and safe-area-inset-bottom padding is also a great implementation for handling notched devices. I have one suggestion in style.css to improve the maintainability of the padding properties for the chat input, but overall the changes are solid.

Comment thread src/channels/web/static/style.css Outdated
@henrypark133
Copy link
Copy Markdown
Collaborator

Fixes: #410

@ilblackdragon ilblackdragon enabled auto-merge (squash) March 4, 2026 01:49
@ilblackdragon ilblackdragon merged commit a181c8b into main Mar 4, 2026
14 checks passed
@ilblackdragon ilblackdragon deleted the fix/mobile-viewport-chat-input branch March 4, 2026 01:55
@github-actions github-actions Bot mentioned this pull request Mar 4, 2026
bkutasi pushed a commit to bkutasi/ironclaw that referenced this pull request Mar 28, 2026
* fix(web): use dvh units to prevent mobile browser bar from obscuring chat input

On mobile browsers (Brave/Android, Safari/iOS), the bottom navigation bar
covers the chat input because 100vh includes space behind browser chrome.
Switch to 100dvh (dynamic viewport height) with vh fallback for older
browsers, and add safe-area-inset padding for notched devices.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Fix padding declaration in chat input style

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: Illia Polosukhin <ilblackdragon@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

contributor: regular 2-5 merged PRs risk: medium Business logic, config, or moderate-risk modules scope: channel/web Web gateway channel size: XS < 10 changed lines (excluding docs)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants