Session 37: Design system Phase F — mobile parity: 5-tab bar, More sheet, PWA polish (1872 tests)
VYNDR 2.0 conversion, Phase F (mobile is the PWA we launch first). Frontend-only; zero backend changes. - BottomTabBar rewritten to the §6 5-tab spec: Slate/Terminal/Scan/Ledger/More, with Scan as the prominent raised grade-green action. Shown for anon too (only mobile nav). Integrated More bottom sheet (sheet-up, backdrop dismiss, 48px mono rows). iOS safe-area + 44px touch targets. - Nav hamburger retired on mobile (tab bar owns nav). - globals.css mobile section: tab-bar hidden >=768, main bottom padding, grade-hero 80px, terminal-grid stacks, game-lines horizontal scroll. - PWA: manifest shortcuts (Slate/Scan/Terminal) + categories; viewport-fit=cover. Gotcha: `as const` on the TABS array broke type-check (distinct literal types); fixed with a shared TabDef interface. 19 new tests. Backend 1853 -> 1872, 145 suites, zero regressions. Web build clean. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -89,6 +89,9 @@ export const viewport: Viewport = {
|
||||
width: 'device-width',
|
||||
initialScale: 1,
|
||||
maximumScale: 5,
|
||||
// Session 37 — extend under the iOS notch / home indicator so the
|
||||
// mobile tab bar's env(safe-area-inset-*) padding has room to work.
|
||||
viewportFit: 'cover',
|
||||
};
|
||||
|
||||
export default async function RootLayout({ children }: { children: React.ReactNode }) {
|
||||
|
||||
Reference in New Issue
Block a user