55 lines
1.3 KiB
TypeScript
Executable File
55 lines
1.3 KiB
TypeScript
Executable File
import "@/styles/globals.css";
|
|
import { Metadata, Viewport } from "next";
|
|
import clsx from "clsx";
|
|
|
|
import { Providers } from "./providers";
|
|
|
|
import { siteConfig } from "@/config/site";
|
|
import { fontSans } from "@/config/fonts";
|
|
import { Navbar } from "@/components/navbar";
|
|
|
|
export const metadata: Metadata = {
|
|
title: {
|
|
default: siteConfig.name,
|
|
template: `%s - ${siteConfig.name}`,
|
|
},
|
|
description: siteConfig.description,
|
|
icons: {
|
|
icon: "/favicon.ico",
|
|
},
|
|
};
|
|
|
|
export const viewport: Viewport = {
|
|
themeColor: [
|
|
{ media: "(prefers-color-scheme: light)", color: "white" },
|
|
{ media: "(prefers-color-scheme: dark)", color: "black" },
|
|
],
|
|
};
|
|
|
|
export default function RootLayout({
|
|
children,
|
|
}: {
|
|
children: React.ReactNode;
|
|
}) {
|
|
return (
|
|
<html suppressHydrationWarning lang="en">
|
|
<head />
|
|
<body
|
|
className={clsx(
|
|
"min-h-screen bg-background font-sans antialiased",
|
|
fontSans.variable,
|
|
)}
|
|
>
|
|
<Providers themeProps={{ attribute: "class", defaultTheme: "light" }}>
|
|
<div className="flex flex-col min-h-screen">
|
|
<Navbar />
|
|
<main className="flex-1">
|
|
{children}
|
|
</main>
|
|
</div>
|
|
</Providers>
|
|
</body>
|
|
</html>
|
|
);
|
|
}
|