web-portfolio/app/layout.tsx

54 lines
1.3 KiB
TypeScript
Raw Normal View History

import type { ReactNode } from 'react';
import type { Metadata, Viewport } from 'next';
import { Inter, JetBrains_Mono, Space_Grotesk } from 'next/font/google';
import './globals.css';
import Header from '@/components/layout/layout-header';
import Footer from '@/components/layout/layout-footer';
import PageBackground from '@/components/layout/page-background';
2026-07-16 16:41:56 -05:00
const spaceGrotesk = Space_Grotesk({
subsets: ['latin'],
variable: '--font-space-grotesk',
});
2026-07-16 16:41:56 -05:00
const inter = Inter({
subsets: ['latin'],
variable: '--font-inter',
});
2026-07-16 16:41:56 -05:00
const jetbrainsMono = JetBrains_Mono({
subsets: ['latin'],
variable: '--font-jetbrains-mono',
weight: ['400', '500'],
});
2026-07-16 16:41:56 -05:00
export const metadata: Metadata = {
title: 'Cayden — Web Developer',
description:
'Web developer building clinical interfaces and fleet software.',
2026-07-16 16:41:56 -05:00
};
export const viewport: Viewport = {
themeColor: '#040807',
};
export default function RootLayout({
children,
}: Readonly<{
children: ReactNode;
2026-07-16 16:41:56 -05:00
}>) {
return (
<html
lang="en"
className={`${spaceGrotesk.variable} ${inter.variable} ${jetbrainsMono.variable} h-full bg-obsidian antialiased`}
>
<body className="relative isolate flex min-h-full flex-col font-sans text-ink">
<PageBackground />
<Header />
<div className="flex-1">{children}</div>
<Footer />
</body>
</html>
);
2026-07-16 16:41:56 -05:00
}