mirror of
https://github.com/luxfi/lamport.git
synced 2026-10-30 16:21:45 +00:00
90 lines
2.5 KiB
TypeScript
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>
|
|
)
|
|
}
|