peer-at-code-web/app/layout.tsx
2023-07-05 18:48:59 +02:00

72 lines
1.7 KiB
TypeScript

import '@/styles/global.css';
import { type Metadata } from 'next';
import { Fira_Code } from 'next/font/google';
import localFont from 'next/font/local';
import { type ReactNode } from 'react';
import { cn, getURL } from '@/lib/utils';
import { ThemeProvider } from '@/components/ThemeProvider';
const sans = localFont({
variable: '--font-sans',
src: './fonts/Karrik.woff2',
weight: 'variable',
display: 'swap'
});
const code = Fira_Code({
variable: '--font-code',
subsets: ['latin'],
weight: 'variable',
display: 'swap'
});
export const metadata: Metadata = {
title: {
default: 'Peer-at Code',
template: `%s - Peer-at Code`
},
description: "Apprendre la programmation et la cybersécurité en s'amusant.",
// manifest: getURL('/favicon/site.webmanifest'),
alternates: {
canonical: getURL()
},
icons: {
icon: [
{
url: getURL('/assets/icons/favicon-32x32.png'),
sizes: '32x32'
},
{
url: getURL('/assets/icons/favicon-16x16.png'),
sizes: '16x16'
}
],
shortcut: getURL('/favicon.ico'),
apple: getURL('/assets/icons/apple-touch-icon.png')
},
themeColor: '#110F15'
};
export default function RootLayout({ children }: { children: ReactNode }) {
return (
<html
lang="fr"
dir="ltr"
className={cn(
'scroll-smooth bg-gradient-to-b from-primary-800 to-primary-900',
sans.variable,
code.variable
)}
>
<head />
<body className="relative min-h-screen">
<ThemeProvider attribute="class" defaultTheme="dark" enableSystem>
<main>{children}</main>
</ThemeProvider>
</body>
</html>
);
}