58 lines
1.4 KiB
TypeScript
58 lines
1.4 KiB
TypeScript
import type { Metadata, Viewport } from "next";
|
|
import { Geist } from "next/font/google";
|
|
import { Header } from "@/components/Header";
|
|
import { BottomNav } from "@/components/BottomNav";
|
|
import "./globals.css";
|
|
|
|
const geistSans = Geist({
|
|
variable: "--font-geist-sans",
|
|
subsets: ["latin"],
|
|
});
|
|
|
|
export const metadata: Metadata = {
|
|
title: {
|
|
default: "晴天漫画 · Sunny MH",
|
|
template: "%s | 晴天漫画",
|
|
},
|
|
description: "晴天漫画 — 精选好漫画,手机阅读更流畅。",
|
|
metadataBase: new URL("https://www.04080616.xyz"),
|
|
openGraph: {
|
|
type: "website",
|
|
siteName: "晴天漫画",
|
|
},
|
|
};
|
|
|
|
export const viewport: Viewport = {
|
|
width: "device-width",
|
|
initialScale: 1,
|
|
maximumScale: 1,
|
|
viewportFit: "cover",
|
|
interactiveWidget: "overlays-content",
|
|
colorScheme: "light",
|
|
themeColor: [
|
|
{ media: "(prefers-color-scheme: light)", color: "#ffffff" },
|
|
{ media: "(prefers-color-scheme: dark)", color: "#ffffff" },
|
|
],
|
|
};
|
|
|
|
export default function RootLayout({
|
|
children,
|
|
}: Readonly<{
|
|
children: React.ReactNode;
|
|
}>) {
|
|
return (
|
|
<html
|
|
lang="en"
|
|
className={`${geistSans.variable} antialiased`}
|
|
data-scroll-behavior="smooth"
|
|
suppressHydrationWarning
|
|
>
|
|
<body className="min-h-dvh flex flex-col bg-background text-foreground">
|
|
<Header />
|
|
<main className="flex-1 bg-background">{children}</main>
|
|
<BottomNav />
|
|
</body>
|
|
</html>
|
|
);
|
|
}
|