summaryrefslogtreecommitdiff
path: root/apps/web/src/app/layout.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'apps/web/src/app/layout.tsx')
-rw-r--r--apps/web/src/app/layout.tsx45
1 files changed, 45 insertions, 0 deletions
diff --git a/apps/web/src/app/layout.tsx b/apps/web/src/app/layout.tsx
new file mode 100644
index 00000000..d7dd18a5
--- /dev/null
+++ b/apps/web/src/app/layout.tsx
@@ -0,0 +1,45 @@
+import type { Metadata } from "next";
+import localFont from "next/font/local";
+import { ThemeProvider } from "next-themes";
+import { Analytics } from "@vercel/analytics/react";
+import "./globals.css";
+import { Toaster } from "../components/ui/sonner";
+import { TooltipProvider } from "../components/ui/tooltip";
+
+const geistSans = localFont({
+ src: "./fonts/GeistVF.woff",
+ variable: "--font-geist-sans",
+ weight: "100 900",
+});
+const geistMono = localFont({
+ src: "./fonts/GeistMonoVF.woff",
+ variable: "--font-geist-mono",
+ weight: "100 900",
+});
+
+export const metadata: Metadata = {
+ title: "Create Next App",
+ description: "Generated by create next app",
+};
+
+export default function RootLayout({
+ children,
+}: Readonly<{
+ children: React.ReactNode;
+}>) {
+ return (
+ <html lang="en" suppressHydrationWarning>
+ <body
+ className={`${geistSans.variable} ${geistMono.variable} antialiased`}
+ >
+ <ThemeProvider attribute="class" forcedTheme="dark" enableSystem>
+ <TooltipProvider>
+ {children}
+ <Analytics />
+ <Toaster />
+ </TooltipProvider>
+ </ThemeProvider>
+ </body>
+ </html>
+ );
+}