mirror of
				https://github.com/bartvdbraak/hellob.art.git
				synced 2025-11-03 21:59:09 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			98 lines
		
	
	
	
		
			2.3 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			98 lines
		
	
	
	
		
			2.3 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
import { Inter as FontSans } from "next/font/google";
 | 
						|
import localFont from "next/font/local";
 | 
						|
 | 
						|
import "@/styles/globals.css";
 | 
						|
import { siteConfig } from "@/config/site";
 | 
						|
import { cn } from "@/lib/utils";
 | 
						|
import { Analytics } from "@vercel/analytics/react";
 | 
						|
import { TailwindIndicator } from "@/components/tailwind-indicator";
 | 
						|
import { ThemeProvider } from "@/components/theme-provider";
 | 
						|
 | 
						|
export const metadata = {
 | 
						|
  title: {
 | 
						|
    default: siteConfig.name,
 | 
						|
    template: `%s | ${siteConfig.name}`,
 | 
						|
  },
 | 
						|
  metadataBase: new URL(`https://${siteConfig.url}}`),
 | 
						|
  description: siteConfig.description,
 | 
						|
  keywords: [
 | 
						|
    "Portfolio",
 | 
						|
    "Next.js",
 | 
						|
    "React",
 | 
						|
    "Azure",
 | 
						|
    "Kubernetes",
 | 
						|
    "DevOps",
 | 
						|
    "Python",
 | 
						|
  ],
 | 
						|
  authors: [
 | 
						|
    {
 | 
						|
      name: "Bart van der Braak",
 | 
						|
      url: siteConfig.url,
 | 
						|
    },
 | 
						|
  ],
 | 
						|
  creator: "bartvdbraak",
 | 
						|
  themeColor: [
 | 
						|
    { media: "(prefers-color-scheme: light)", color: "white" },
 | 
						|
    { media: "(prefers-color-scheme: dark)", color: "black" },
 | 
						|
  ],
 | 
						|
  openGraph: {
 | 
						|
    type: "website",
 | 
						|
    locale: "en_US",
 | 
						|
    url: siteConfig.url,
 | 
						|
    title: siteConfig.name,
 | 
						|
    description: siteConfig.description,
 | 
						|
    siteName: siteConfig.name,
 | 
						|
  },
 | 
						|
  twitter: {
 | 
						|
    card: "summary_large_image",
 | 
						|
    title: siteConfig.name,
 | 
						|
    description: siteConfig.description,
 | 
						|
    images: [`${siteConfig.url}/og.jpg`],
 | 
						|
    creator: "@bartvdbraak",
 | 
						|
  },
 | 
						|
  icons: {
 | 
						|
    icon: "/favicon.ico",
 | 
						|
    shortcut: "/favicon-16x16.png",
 | 
						|
    apple: "/apple-touch-icon.png",
 | 
						|
  },
 | 
						|
  manifest: `${siteConfig.url}/site.webmanifest`,
 | 
						|
};
 | 
						|
 | 
						|
interface RootLayoutProps {
 | 
						|
  children: React.ReactNode;
 | 
						|
}
 | 
						|
 | 
						|
const fontSans = FontSans({
 | 
						|
  subsets: ["latin"],
 | 
						|
  variable: "--font-sans",
 | 
						|
});
 | 
						|
 | 
						|
const fontHeading = localFont({
 | 
						|
  src: "../assets/fonts/CalSans-SemiBold.woff2",
 | 
						|
  variable: "--font-heading",
 | 
						|
});
 | 
						|
 | 
						|
interface RootLayoutProps {
 | 
						|
  children: React.ReactNode;
 | 
						|
}
 | 
						|
 | 
						|
export default function RootLayout({ children }: RootLayoutProps) {
 | 
						|
  return (
 | 
						|
    <html lang="en" suppressHydrationWarning>
 | 
						|
      <head />
 | 
						|
      <body
 | 
						|
        className={cn(
 | 
						|
          "min-h-screen bg-background font-sans antialiased",
 | 
						|
          fontSans.variable,
 | 
						|
          fontHeading.variable
 | 
						|
        )}
 | 
						|
      >
 | 
						|
        <ThemeProvider attribute="class" defaultTheme="system" enableSystem>
 | 
						|
          {children}
 | 
						|
          <TailwindIndicator />
 | 
						|
        </ThemeProvider>
 | 
						|
        <Analytics />
 | 
						|
      </body>
 | 
						|
    </html>
 | 
						|
  );
 | 
						|
}
 |