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> | |
| ); | |
| } | |