T3-Template/src/app/layout.tsx
2025-05-13 16:06:39 -05:00

62 lines
1.6 KiB
TypeScript

import { type Metadata } from 'next';
import '@/styles/globals.css';
import { Geist } from 'next/font/google';
import { cn } from '@/lib/utils';
import { ThemeProvider } from '@/components/context/theme';
import Navigation from '@/components/navigation';
import Footer from '@/components/footer';
export const metadata: Metadata = {
title: 'T3 Template with Supabase',
description: 'Generated by create-t3-app',
icons: [
{
rel: 'icon',
url: '/images/favicon.ico',
},
{
rel: 'icon',
type: 'image/png',
sizes: '32x32',
url: '/images/favicon.png',
},
{
rel: 'apple-touch-icon',
url: '/images/appicon.png',
},
],
};
const geist = Geist({
subsets: ['latin'],
variable: '--font-geist-sans',
});
const RootLayout = ({ children }: Readonly<{ children: React.ReactNode }>) => {
return (
<html lang='en' className={`${geist.variable}`} suppressHydrationWarning>
<body
className={cn('bg-background text-foreground font-sans antialiased')}
>
<ThemeProvider
attribute='class'
defaultTheme='system'
enableSystem
disableTransitionOnChange
>
<main className='min-h-screen flex flex-col items-center'>
<div className='flex-1 w-full flex flex-col gap-20 items-center'>
<Navigation />
<div className='flex flex-col gap-20 max-w-5xl p-5 w-full'>
{children}
</div>
</div>
<Footer />
</main>
</ThemeProvider>
</body>
</html>
);
};
export default RootLayout;