fix(dashboard): keep mobile nav bar pinned when iOS keyboard opens

The visualViewport ICB compensation (intended for Android ICB-stuck-large
and pinch-zoom) was also reacting to iOS soft-keyboard shrinkage, pushing
the mobile bottom nav up above the keyboard. Pass the existing
`keyboardOpen` prop through to a `mobile-nav-bar--keyboard-open` modifier
class that pins `bottom: 0` so the keyboard simply covers the bar.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
gsxdsm
2026-05-23 02:50:37 -07:00
parent 57f33ea2d2
commit a7ad30f22a
3 changed files with 15 additions and 2 deletions

View File

@@ -44,6 +44,14 @@
bottom: var(--icb-bottom-offset, 0px);
}
/* When the on-screen keyboard is open, ignore the visualViewport
compensation that would otherwise push the bar up by the keyboard
height (iOS shrinks vv.height; bottomOffset becomes ~keyboard height).
Pin the nav to the page bottom so the keyboard simply covers it. */
.mobile-nav-bar--keyboard-open {
bottom: 0;
}
/* Content padding: mobile nav only (no footer). Bar is flush at bottom (no safe-area pad). */
.project-content--with-mobile-nav:not(.project-content--with-footer) {
padding-bottom: calc(var(--mobile-nav-height) + max(env(safe-area-inset-bottom, 0px), 12px) + var(--standalone-bottom-gap));