SIGN IN SIGN UP

fix: flicker-free mobile formatting toolbar via CSS custom properties (#2617)

* fix: flicker-free mobile formatting toolbar via CSS custom properties

Replace React state-driven positioning with CSS custom property
(--bn-mobile-keyboard-offset) for zero re-render toolbar positioning.

Two-tier keyboard detection:
1. VirtualKeyboard API (Chrome/Edge 94+) — exact geometry, no delay
2. Visual Viewport API fallback (Safari iOS 13+, Firefox 68+) — with
   focus-based prediction for instant initial positioning

Additional improvements:
- Auto-scroll selection into view when keyboard opens
- touch-action: pan-x for horizontal toolbar scrolling
- env(safe-area-inset-bottom) for notch/home indicator handling
- Smooth 150ms CSS transition instead of React re-renders

Closes #2616

* fix: replace hardcoded TOOLBAR_HEIGHT with dynamic measurement
M
Movm committed
a33541e8740b90b908f9e2dca6e98936278007c4
Parent: 2e2d225
Committed by GitHub <noreply@github.com> on 5/13/2026, 9:01:42 AM