Restore mobile bottom nav with scroll-to-hide behavior
Bring back the mobile bottom navigation bar with Home, Notifications, and Search buttons. The nav slides out of view when scrolling down and reappears on upward scroll, keeping the viewport uncluttered while reading. Search retains the popover account search sheet for fast profile lookup without navigating away. Updated CSS height calculations for full-screen pages (AI chat, vines, livestream) and FAB positioning to account for the nav.
This commit is contained in:
+14
-9
@@ -40,9 +40,14 @@
|
||||
bottom: env(safe-area-inset-bottom, 0px);
|
||||
}
|
||||
|
||||
/* FAB bottom offset: clears safe area inset */
|
||||
/* FAB bottom offset: clears bottom nav + safe area inset on mobile */
|
||||
.bottom-fab {
|
||||
bottom: calc(1.5rem + env(safe-area-inset-bottom, 0px));
|
||||
bottom: calc(1.5rem + 3.5rem + env(safe-area-inset-bottom, 0px));
|
||||
}
|
||||
|
||||
/* Position above mobile bottom nav (h-14 = 3.5rem) + safe area */
|
||||
.bottom-mobile-nav {
|
||||
bottom: calc(3.5rem + env(safe-area-inset-bottom, 0px));
|
||||
}
|
||||
|
||||
/* Mobile top bar height (48px) + safe area inset for sticky elements */
|
||||
@@ -50,20 +55,20 @@
|
||||
top: calc(3rem + env(safe-area-inset-top, 0px));
|
||||
}
|
||||
|
||||
/* AI chat height on mobile: full viewport minus top bar and safe-area insets */
|
||||
/* AI chat height on mobile: full viewport minus top bar, bottom nav (3.5rem), and safe-area insets */
|
||||
.ai-chat-height {
|
||||
height: calc(100dvh - 3rem - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px));
|
||||
height: calc(100dvh - 3rem - 3.5rem - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px));
|
||||
}
|
||||
|
||||
/* Live stream page height on mobile: full viewport minus top bar and safe-area insets */
|
||||
/* Live stream page height on mobile: full viewport minus top bar, bottom nav, and safe-area insets */
|
||||
.livestream-height {
|
||||
height: calc(100dvh - 3rem - env(safe-area-inset-bottom, 0px));
|
||||
max-height: calc(100dvh - 3rem - env(safe-area-inset-bottom, 0px));
|
||||
height: calc(100dvh - 3rem - 3.5rem - env(safe-area-inset-bottom, 0px));
|
||||
max-height: calc(100dvh - 3rem - 3.5rem - env(safe-area-inset-bottom, 0px));
|
||||
}
|
||||
|
||||
/* Vine feed slide height: full viewport minus top bar, tab bar, and safe-area insets */
|
||||
/* Vine feed slide height: full viewport minus top bar, tab bar, bottom nav, and safe-area insets */
|
||||
.vine-slide-height {
|
||||
height: calc(100dvh - env(safe-area-inset-top, 0px) - 3rem - 2.5rem - env(safe-area-inset-bottom, 0px));
|
||||
height: calc(100dvh - env(safe-area-inset-top, 0px) - 3rem - 2.5rem - 3.5rem - env(safe-area-inset-bottom, 0px));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user