Files
HaBit/app/layout.tsx
Harkamal Randhawa 831170573b Pin bottom nav to viewport and reserve scroll clearance.
Track visual viewport for keyboard offset, add bottom spacer, use solid
nav background with safe-area padding, and avoid zero nav offset fallback.
2026-05-24 04:34:34 -06:00

56 lines
1.4 KiB
TypeScript

import type { Metadata, Viewport } from "next";
import { Press_Start_2P } from "next/font/google";
import { ThemeProvider } from "next-themes";
import { GlobalBottomNav } from "@/components/layout/global-bottom-nav";
import { ToastProvider } from "@/components/ui/toast-provider";
import "./globals.css";
const defaultUrl = process.env.VERCEL_URL
? `https://${process.env.VERCEL_URL}`
: "http://localhost:3000";
export const metadata: Metadata = {
metadataBase: new URL(defaultUrl),
title: "Habit Pet",
description: "Build habits, care for your pixel pet, and track wellness every day.",
};
export const viewport: Viewport = {
width: "device-width",
initialScale: 1,
viewportFit: "cover",
interactiveWidget: "resizes-content",
};
const pixelFont = Press_Start_2P({
weight: "400",
subsets: ["latin"],
variable: "--font-pixel",
display: "swap",
});
export default function RootLayout({
children,
}: Readonly<{
children: React.ReactNode;
}>) {
return (
<html lang="en" suppressHydrationWarning>
<body className={`${pixelFont.variable} font-sans`}>
<ThemeProvider
attribute="class"
defaultTheme="system"
enableSystem
disableTransitionOnChange
>
<ToastProvider>
{children}
<GlobalBottomNav />
</ToastProvider>
</ThemeProvider>
</body>
</html>
);
}