Files
cima.it/frontend/src/app/layout.tsx
T

73 lines
2.0 KiB
TypeScript

import type { Metadata, Viewport } from "next";
import { Inter } from "next/font/google";
import "./globals.css";
import Navbar from "@/components/Navbar";
import Footer from "@/components/Footer";
const inter = Inter({
subsets: ["latin"],
variable: "--font-inter",
});
export const viewport: Viewport = {
width: "device-width",
initialScale: 1,
viewportFit: "cover",
};
export const metadata: Metadata = {
title: "CiMa Progetti | Digital Architecture & Integration",
description:
"Progettiamo la struttura digitale del vostro business. Portali, database, e-commerce, automazioni IA e cybersicurezza.",
icons: {
icon: [
{
url: "/favicon-light.svg",
type: "image/svg+xml",
media: "(prefers-color-scheme: light)",
},
{
url: "/favicon-dark.svg",
type: "image/svg+xml",
media: "(prefers-color-scheme: dark)",
},
],
},
};
export default function RootLayout({
children,
}: Readonly<{
children: React.ReactNode;
}>) {
return (
<html lang="it" className={`${inter.variable} scroll-smooth`}>
<head>
{/* Preconnect to Google Fonts for faster loading */}
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link
rel="preconnect"
href="https://fonts.gstatic.com"
crossOrigin="anonymous"
/>
{/* DNS prefetch for third-party domains */}
<link rel="dns-prefetch" href="https://fonts.googleapis.com" />
{/* Material Symbols — reduced to single weight/fill, display=swap prevents render blocking */}
<link
href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:wght,FILL@400,0&display=swap"
rel="stylesheet"
/>
{/* Inter font is self-hosted by next/font — no external preload needed */}
</head>
<body className="min-h-screen flex flex-col">
<Navbar />
<main className="flex-1">{children}</main>
<Footer />
</body>
</html>
);
}