Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 | import type { Metadata, Viewport } from "next"; import "./css/euclid-circular-a-font.css"; import "./css/style.css"; import { JsonLd } from "@/components/shared/JsonLd"; import { generateRootMetadata, generateOrganizationSchema, generateWebsiteSchema, } from "@/lib/seo"; export const metadata: Metadata = generateRootMetadata(); export const viewport: Viewport = { themeColor: [ { media: "(prefers-color-scheme: light)", color: "#ffffff" }, { media: "(prefers-color-scheme: dark)", color: "#1a1a2e" }, ], width: "device-width", initialScale: 1, maximumScale: 5, userScalable: true, }; export default function RootLayout({ children, }: { children: React.ReactNode; }) { return ( <html lang="en" suppressHydrationWarning={true} data-scroll-behavior="smooth"> <head> {/* Preload critical fonts for faster LCP */} <link rel="preload" href="/fonts/EuclidCircularA-Regular.woff2" as="font" type="font/woff2" crossOrigin="anonymous" /> <link rel="preload" href="/fonts/EuclidCircularA-SemiBold.woff2" as="font" type="font/woff2" crossOrigin="anonymous" /> {/* Preconnect to external resources for faster loading */} <link rel="preconnect" href="https://fonts.googleapis.com" /> <link rel="preconnect" href="https://fonts.gstatic.com" crossOrigin="anonymous" /> <link rel="preconnect" href="https://js.stripe.com" /> {/* DNS prefetch for additional optimization */} <link rel="dns-prefetch" href="//fonts.googleapis.com" /> <link rel="dns-prefetch" href="//fonts.gstatic.com" /> {/* Organization and Website JSON-LD structured data */} <JsonLd data={generateOrganizationSchema()} /> <JsonLd data={generateWebsiteSchema()} /> </head> <body>{children}</body> </html> ); } |