59 lines
1.3 KiB
TypeScript
59 lines
1.3 KiB
TypeScript
import type { Metadata, Viewport } from 'next';
|
|
import { Space_Grotesk, Bebas_Neue } from 'next/font/google';
|
|
import './globals.css';
|
|
import Script from 'next/script';
|
|
|
|
const spaceGrotesk = Space_Grotesk({
|
|
subsets: ['latin'],
|
|
variable: '--font-sans',
|
|
display: 'swap',
|
|
});
|
|
|
|
const bebasNeue = Bebas_Neue({
|
|
weight: '400',
|
|
subsets: ['latin'],
|
|
variable: '--font-display',
|
|
display: 'swap',
|
|
});
|
|
|
|
export const viewport: Viewport = {
|
|
themeColor: '#0A0A0A',
|
|
width: 'device-width',
|
|
initialScale: 1,
|
|
maximumScale: 1,
|
|
userScalable: false,
|
|
};
|
|
|
|
export const metadata: Metadata = {
|
|
title: 'Workout Planner',
|
|
description: 'Track. Lift. Dominate.',
|
|
manifest: '/manifest.json',
|
|
appleWebApp: {
|
|
capable: true,
|
|
statusBarStyle: 'black-translucent',
|
|
title: 'Workout',
|
|
},
|
|
icons: {
|
|
icon: '/icons/favicon.svg',
|
|
apple: '/icons/icon-192x192.png',
|
|
},
|
|
};
|
|
|
|
export default function RootLayout({
|
|
children,
|
|
}: {
|
|
children: React.ReactNode;
|
|
}) {
|
|
return (
|
|
<html lang="en" className={`dark ${spaceGrotesk.variable} ${bebasNeue.variable}`}>
|
|
<head>
|
|
<link rel="apple-touch-icon" href="/icons/icon-192x192.png" />
|
|
</head>
|
|
<body className="bg-[#0A0A0A] text-white antialiased font-sans">
|
|
{children}
|
|
<Script src="/sw-register.js" strategy="lazyOnload" />
|
|
</body>
|
|
</html>
|
|
);
|
|
}
|