Files
2026-08-23 14:56:50 -07:00

90 lines
2.5 KiB
TypeScript

import type { ReactNode } from 'react'
import { RootProvider } from 'fumadocs-ui/provider'
import { ZenMono } from '@hanzo/font/mono'
import { ZenSans } from '@hanzo/font/sans'
import 'fumadocs-ui/style.css'
import './globals.css'
// ============================================================================
// CONFIGURE YOUR DOCS SITE HERE
// ============================================================================
const SITE_CONFIG = {
name: 'Lamport OTS',
description: 'Production-ready Lamport One-Time Signatures for Solidity and Go. Quantum-resistant digital signatures using only hash functions.',
url: 'https://lamport.lux.network',
keywords: ['Lamport', 'one-time signatures', 'quantum-resistant', 'post-quantum', 'cryptography', 'Solidity', 'EVM', 'Lux Network'],
}
export const metadata = {
title: {
default: SITE_CONFIG.name,
template: `%s | ${SITE_CONFIG.name}`,
},
description: SITE_CONFIG.description,
keywords: SITE_CONFIG.keywords,
authors: [{ name: 'Lux Network' }],
metadataBase: new URL(SITE_CONFIG.url),
icons: {
icon: '/favicon.svg',
apple: '/favicon.svg',
},
openGraph: {
title: SITE_CONFIG.name,
description: SITE_CONFIG.description,
type: 'website',
siteName: SITE_CONFIG.name,
images: [
{
url: '/og.png',
width: 1200,
height: 630,
alt: SITE_CONFIG.name,
},
],
},
twitter: {
card: 'summary_large_image',
title: SITE_CONFIG.name,
description: SITE_CONFIG.description,
images: ['/og.png'],
},
}
export default function RootLayout({
children
}: {
children: ReactNode
}) {
return (
<html lang="en" className={`${ZenSans.variable} ${ZenMono.variable}`} suppressHydrationWarning>
<head>
{/* Prevent flash - respect system preference */}
<script
dangerouslySetInnerHTML={{
__html: `
(function() {
const prefersDark = window.matchMedia('(prefers-color-scheme: dark)').matches;
if (prefersDark) {
document.documentElement.classList.add('dark');
}
})();
`,
}}
/>
</head>
<body className="min-h-screen bg-background font-sans antialiased">
<RootProvider
theme={{
enabled: true,
defaultTheme: 'system',
}}
>
<div className="relative flex min-h-screen flex-col">
{children}
</div>
</RootProvider>
</body>
</html>
)
}