50 lines
1.2 KiB
TypeScript
50 lines
1.2 KiB
TypeScript
import type { Metadata, Viewport } from 'next';
|
|
import { Syne, DM_Sans } from 'next/font/google';
|
|
import '../styles/globals.scss';
|
|
import Header from '@/components/layout/Header';
|
|
import Footer from '@/components/layout/Footer';
|
|
import { personal } from '@/content/personal';
|
|
|
|
const syne = Syne({
|
|
subsets: ['latin'],
|
|
variable: '--font-display',
|
|
weight: ['400', '500', '600', '700', '800'],
|
|
});
|
|
|
|
const dmSans = DM_Sans({
|
|
subsets: ['latin'],
|
|
variable: '--font-body',
|
|
weight: ['400', '500'],
|
|
});
|
|
|
|
export const metadata: Metadata = {
|
|
title: `${personal.name} — ${personal.role}`,
|
|
description: personal.tagline,
|
|
openGraph: {
|
|
title: `${personal.name} — ${personal.role}`,
|
|
description: personal.tagline,
|
|
type: 'website',
|
|
},
|
|
};
|
|
|
|
export const viewport: Viewport = {
|
|
width: 'device-width',
|
|
initialScale: 1,
|
|
maximumScale: 5,
|
|
};
|
|
|
|
export default function RootLayout({ children }: { children: React.ReactNode }) {
|
|
return (
|
|
<html lang="en" className={`${syne.variable} ${dmSans.variable}`}>
|
|
<body>
|
|
<a href="#main" className="skipLink">
|
|
Skip to content
|
|
</a>
|
|
<Header />
|
|
<main id="main">{children}</main>
|
|
<Footer />
|
|
</body>
|
|
</html>
|
|
);
|
|
}
|