Repository navigation
feat(mobile): Liquid Glass floating tab bar on iOS 26 - #14707
Conversation
On iOS 26 the bottom tab bar is now a floating Liquid Glass pill, with a highlight that springs to the active tab. When a track is loaded, the play bar is its own glass pill above it, and the collapsed now-playing drawer is see-through so content shows around both pills. The full player's background fades in as the drawer opens. The pills take up the same space as the old bar, so BottomChin, chat and the drawer offsets are unchanged. Android, iOS < 26 and home-button iPhones keep the classic bar. Uses @callstack/liquid-glass. The library is only required when its native module is in the binary, so OTA JS on older builds falls back to the classic bar instead of crashing. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
|
Dependency limit exceeded — report not shown. This pull request scan exceeded the 10,000-dependency limit applied to this scan, so the results are incomplete and may be inaccurate. To avoid reporting false positives, Socket has not posted a report. Upgrade your plan to raise the dependency limit and get complete reports, or view the partial scan in the dashboard. Socket is always free for open source. If this is a non-commercial open source project, contact us to request a free Team account. |
What
On iOS 26 the bottom tab bar becomes a floating Liquid Glass pill, styled like the iOS 26 system tab bar.
How
@callstack/liquid-glass0.8.2 (UIGlassEffect; needs RN 0.80+ and Xcode 26). This adds a native module, so the full effect needs a new binary.core/Screen/LiquidGlass.tschecksTurboModuleRegistry.get('NativeLiquidGlassModule')before requiring the library. The library looks up its module withgetEnforcingon import, which would crash OTA JS running on older binaries; with the check, those builds just keep the classic bar.useFloatingTabBardecides when to float: iOS 26+, and only on phones with a home indicator. The pill takes up exactly the old bar's space (BOTTOM_BAR_HEIGHT+ bottom inset), soBottomChin, the chat screen and the drawer offsets are untouched.Testing
tscand eslint clean. No jest tests cover these components.🤖 Generated with Claude Code