57 lines
1.5 KiB
TypeScript
57 lines
1.5 KiB
TypeScript
import type { Metadata } from "next";
|
|
import Script from "next/script";
|
|
import { Archivo, Inter, Geist_Mono } from "next/font/google";
|
|
import "./globals.css";
|
|
|
|
const archivo = Archivo({
|
|
subsets: ["latin"],
|
|
weight: ["500", "700", "800"],
|
|
style: ["normal", "italic"],
|
|
variable: "--font-archivo",
|
|
display: "swap",
|
|
});
|
|
|
|
const inter = Inter({
|
|
subsets: ["latin"],
|
|
weight: ["400", "500", "600", "700"],
|
|
variable: "--font-body",
|
|
display: "swap",
|
|
});
|
|
|
|
const geistMono = Geist_Mono({
|
|
subsets: ["latin"],
|
|
weight: ["400", "500", "600"],
|
|
variable: "--font-mono",
|
|
display: "swap",
|
|
});
|
|
|
|
export const metadata: Metadata = {
|
|
title: "WM 26 — Gruppen & K.o.-Baum",
|
|
description:
|
|
"Live-Gruppentabellen, Drittplatzierten-Wertung und der vollständige K.o.-Baum der FIFA WM 2026 mit Annex-C-Zuordnung und Polymarket-Wahrscheinlichkeiten.",
|
|
};
|
|
|
|
export const viewport = {
|
|
width: "device-width",
|
|
initialScale: 1,
|
|
};
|
|
|
|
export default function RootLayout({ children }: { children: React.ReactNode }) {
|
|
return (
|
|
<html lang="de" className={`${archivo.variable} ${inter.variable} ${geistMono.variable}`}>
|
|
<head />
|
|
<body>
|
|
{children}
|
|
{process.env.NEXT_PUBLIC_UMAMI_SRC && process.env.NEXT_PUBLIC_UMAMI_ID && (
|
|
<Script
|
|
defer
|
|
src={process.env.NEXT_PUBLIC_UMAMI_SRC}
|
|
data-website-id={process.env.NEXT_PUBLIC_UMAMI_ID}
|
|
strategy="afterInteractive"
|
|
/>
|
|
)}
|
|
</body>
|
|
</html>
|
|
);
|
|
}
|