import type { Metadata, Viewport } from "next"; import { Geist_Mono, Space_Grotesk } from "next/font/google"; import localFont from "next/font/local"; import type { ReactNode } from "react"; import { safeJsonLd } from "@/lib/jsonld"; import { buildPersonJsonLd, buildWebSiteJsonLd } from "@/lib/seo"; import { siteUrl } from "@/lib/site-content"; import CinematicOverlays from "./components/cinematic/CinematicOverlays"; import GoogleAnalytics from "./components/GoogleAnalytics"; import { Header } from "./components/Header"; import "./globals.css"; const defaultTitle = "Sistemas sob medida para empresas | Evandro.dev.br"; const seoDescription = "Desenvolvimento de sistemas web, aplicativos e integrações sob medida. Do entendimento do negócio à entrega em produção, com Evandro Fonseca Junior. Base em Santa Catarina e atendimento remoto."; const spaceGrotesk = Space_Grotesk({ subsets: ["latin"], weight: ["400", "500", "600", "700"], display: "swap", variable: "--font-space-grotesk", }); const geistMono = Geist_Mono({ subsets: ["latin"], weight: ["400", "500", "600"], display: "swap", variable: "--font-geist-mono", }); const monumentExtended = localFont({ src: [ { path: "../public/fonts/MonumentExtended-Regular.otf", weight: "400", style: "normal", }, { path: "../public/fonts/MonumentExtended-Ultrabold.otf", weight: "800", style: "normal", }, ], display: "swap", variable: "--font-monument-extended", }); export const metadata: Metadata = { title: { default: defaultTitle, template: "%s | Evandro Fonseca Junior", }, description: seoDescription, authors: [{ name: "Evandro Fonseca Junior" }], creator: "Evandro Fonseca Junior", publisher: "Evandro Fonseca Junior", applicationName: "Evandro.dev.br", category: "Technology", metadataBase: new URL(siteUrl), alternates: { canonical: "/", }, formatDetection: { email: false, address: false, telephone: false, }, openGraph: { title: defaultTitle, description: seoDescription, url: siteUrl, siteName: "Evandro.dev.br", locale: "pt_BR", type: "website", images: [ { url: "/opengraph-image", width: 1200, height: 630, alt: "Evandro.dev.br | Sistemas sob medida para empresas", }, ], }, twitter: { card: "summary_large_image", title: defaultTitle, description: seoDescription, creator: "@evandrodevbr", images: [ { url: "/opengraph-image", alt: "Evandro.dev.br | Sistemas sob medida para empresas", }, ], }, robots: { index: true, follow: true, googleBot: { index: true, follow: true, "max-video-preview": -1, "max-image-preview": "large", "max-snippet": -1, }, }, }; export const viewport: Viewport = { themeColor: "#000000", width: "device-width", initialScale: 1, maximumScale: 5, }; interface RootLayoutProps { children: ReactNode; } export default function RootLayout({ children }: Readonly) { const jsonLd = { "@context": "https://schema.org", "@graph": [buildWebSiteJsonLd(), buildPersonJsonLd()], }; return ( {/* Set arrival policy before native restoration and client-side layout changes. */} Pular para o conteúdo
{children}
); }