fix(frontend): mobile navbar reachable to all pages + responsive form controls

- Root cause of 'navbar mobile tak bisa pindah halaman': the chatbot FAB
  (fixed right-4 bottom-5 z-50) overlapped the rightmost mobile bottom-nav
  items (z-40) and intercepted taps. Raise the FAB above the nav on mobile
  (bottom above nav, md:bottom-5 on desktop) so it never blocks nav taps.
- Mobile bottom nav now mirrors the FULL desktop sidebar (all 7 items:
  dashboard, messages, voice, media, recordings, moderation, analysis);
  horizontally scrollable + snap-to-active on narrow screens.
- Select dropdown: clamp portal position within viewport + min-width so it
  never overflows off-screen on mobile triggers near the right edge; larger
  tap targets on touch.
- Input/Textarea: text-base (16px) on touch to prevent iOS auto-zoom on
  focus, text-sm on >=sm; comfortable mobile min-height for chat input.
- Add .hermes/plans/mobile-nav-form-responsive.md spec.
This commit is contained in:
asepharyana committed 2026-08-28 01:07:37 +07:00
1 parent e7b0f02620
commit ae41f64e46
8 files changed
+135 -51

No files matched your search

+4 -4
View File
@@ -66,11 +66,11 @@ export const navItems: NavItem[] = [
];
/**
* Mobile bottom bar items (subset of primary nav).
* Mobile bottom bar items. Mirrors the FULL desktop sidebar (all primary nav
* items) so every page is reachable on mobile; the bar scrolls horizontally on
* narrow screens (see MobileNav).
*/
export const mobileNavItems: NavItem[] = navItems.filter((item) =>
["/dashboard", "/messages", "/voice", "/media"].includes(item.href),
);
export const mobileNavItems: NavItem[] = navItems;
export type NavItemId = (typeof navItems)[number]["href"];