--- phase: 27-top-nav-restructure-and-search-bar-rethink plan: "03" subsystem: ui tags: [react, tanstack-router, tailwind, navigation, mobile] requires: - phase: 27-01 provides: TopNav and BottomTabBar components - phase: 27-02 provides: /setups route page and Collection page tab reduction provides: - Root layout wired with TopNav replacing TotalsBar - BottomTabBar rendered for mobile viewports - FAB hidden on mobile (hidden md:block wrapper) - /setups added to isPublicRoute for anonymous direct navigation - pb-16 md:pb-0 mobile bottom padding preventing content occlusion - Landing page without hero section — starts with Popular Setups affects: - Any phase touching root layout, navigation, or landing page tech-stack: added: [] patterns: - "Mobile nav pattern: hidden md:block for desktop-only elements, md:hidden for mobile-only elements" - "Bottom safe area: pb-16 md:pb-0 on root div accounts for fixed bottom tab bar" key-files: created: [] modified: - src/client/routes/__root.tsx - src/client/routes/index.tsx key-decisions: - "No architectural changes — integration plan only, wiring components from Plans 01 and 02" patterns-established: - "pb-16 md:pb-0 on root container prevents fixed bottom tab bar from obscuring page content" requirements-completed: [NAV-01, NAV-02, NAV-03, NAV-04] duration: 3min completed: "2026-04-10" --- # Phase 27 Plan 03: Root Layout Integration Summary **TopNav replaces TotalsBar across all pages, BottomTabBar wired for mobile, hero removed from landing page, and /setups added as a public route** ## Performance - **Duration:** ~3 min - **Started:** 2026-04-10T21:46:00Z - **Completed:** 2026-04-10T21:47:55Z - **Tasks:** 2 auto + 1 checkpoint (auto-approved) - **Files modified:** 2 ## Accomplishments - Swapped TotalsBar for TopNav in root layout — persistent top nav now appears on every page - BottomTabBar added to root layout — renders itself only on mobile via md:hidden in the component - FAB wrapped in hidden md:block — invisible on mobile, unchanged on desktop - /setups added to isPublicRoute — anonymous users can navigate directly to the setups index - Root div gains pb-16 md:pb-0 — content not cut off by fixed bottom tab bar on mobile - Hero section removed from landing page — starts directly with Popular Setups, search moved exclusively to TopNav ## Task Commits Each task was committed atomically: 1. **Task 1: Wire TopNav, BottomTabBar, and FAB changes into __root.tsx** - `d99ebbd` (feat) 2. **Task 2: Remove hero section from landing page** - `c628d6b` (feat) 3. **Task 3: Verify full navigation flow** - auto-approved checkpoint (no commit) ## Files Created/Modified - `src/client/routes/__root.tsx` - Replaces TotalsBar with TopNav, adds BottomTabBar, hides FAB on mobile, extends public routes, adds mobile bottom padding - `src/client/routes/index.tsx` - Removes HeroSection function and all unused imports (Link, Search, useAuth, useUIStore); LandingPage now renders content sections only ## Decisions Made None — integration plan executed exactly as specified. All components and patterns were established in Plans 01 and 02. ## Deviations from Plan None — plan executed exactly as written. ## Issues Encountered None. The automated verification grep used double-quotes to match `/setups"` but the source file uses single quotes. Manual inspection confirmed the `/setups` public route was correctly inserted. ## User Setup Required None — no external service configuration required. ## Next Phase Readiness - Complete navigation restructure for Phase 27 is done (all 3 plans) - All 17 locked decisions (D-01 through D-17) satisfied - TopNav with search, BottomTabBar for mobile, Setups as top-level route, Collection with 2 tabs, landing without hero — all wired - Phase 27 is ready for verifier/transition --- *Phase: 27-top-nav-restructure-and-search-bar-rethink* *Completed: 2026-04-10*