Spaces:
Sleeping
Sleeping
import { Logo } from '@/components/Logo'; | |
import type { Metadata } from "next"; | |
import localFont from "next/font/local"; | |
import "./globals.css"; | |
const geistSans = localFont({ | |
src: "./fonts/GeistVF.woff", | |
variable: "--font-geist-sans", | |
weight: "100 900", | |
}); | |
const geistMono = localFont({ | |
src: "./fonts/GeistMonoVF.woff", | |
variable: "--font-geist-mono", | |
weight: "100 900", | |
}); | |
export const metadata: Metadata = { | |
title: "Warisan Nusantara | Ragam Warisan Budaya Indonesia", | |
description: "Jelajahi keberagaman warisan budaya Indonesia, dari seni tradisional, kuliner khas, hingga adat istiadat yang memperkaya Nusantara.", | |
keywords: "budaya indonesia, warisan budaya, seni tradisional, kuliner indonesia, adat istiadat", | |
icons: { | |
icon: [ | |
{ | |
url: 'data:image/svg+xml;base64,' + btoa(` | |
<svg width="32" height="32" viewBox="0 0 512 512" fill="none" xmlns="http://www.w3.org/2000/svg"> | |
<rect width="512" height="512" fill="#DC2626"/> | |
<path d="M256 48 C384 48, 464 128, 464 256 C464 384, 384 464, 256 464 C128 464, 48 384, 48 256 C48 128, 128 48, 256 48Z" stroke="white" stroke-width="24" fill="none"/> | |
<circle cx="256" cy="176" r="48" fill="white" opacity="0.95"/> | |
<circle cx="336" cy="256" r="48" fill="white" opacity="0.95"/> | |
<circle cx="256" cy="336" r="48" fill="white" opacity="0.95"/> | |
<circle cx="176" cy="256" r="48" fill="white" opacity="0.95"/> | |
<circle cx="256" cy="256" r="32" fill="white"/> | |
<path d="M256 88 C344 88, 424 168, 424 256 C424 344, 344 424, 256 424 C168 424, 88 344, 88 256 C88 168, 168 88, 256 88Z" stroke="white" stroke-width="8" fill="none" opacity="0.6"/> | |
</svg> | |
`), | |
sizes: 'any', | |
type: 'image/svg+xml' | |
} | |
] | |
}, | |
openGraph: { | |
title: "Warisan Nusantara", | |
description: "Menjelajahi Ragam Warisan Budaya Indonesia", | |
locale: "id_ID", | |
type: "website", | |
images: [ | |
{ | |
url: '/og-image.png', | |
width: 1200, | |
height: 630, | |
alt: 'Warisan Nusantara' | |
} | |
] | |
}, | |
}; | |
export default function RootLayout({ | |
children, | |
}: Readonly<{ | |
children: React.ReactNode; | |
}>) { | |
return ( | |
<html lang="id"> | |
<body className={`${geistSans.variable} ${geistMono.variable} antialiased`}> | |
<nav className="fixed top-0 left-0 right-0 bg-white/80 backdrop-blur-sm z-50 border-b border-red-100"> | |
<div className="max-w-4xl mx-auto px-4 py-3 flex items-center gap-3"> | |
<Logo className="text-red-600" /> | |
<span className="font-bold text-red-800 text-lg">Warisan Nusantara</span> | |
</div> | |
</nav> | |
<div className="pt-16"> | |
{children} | |
</div> | |
</body> | |
</html> | |
); | |
} | |