Initial import: was v0 exportiert hat
This commit is contained in:
commit
0194931215
167 changed files with 16465 additions and 0 deletions
90
app/layout.tsx
Normal file
90
app/layout.tsx
Normal file
|
|
@ -0,0 +1,90 @@
|
|||
import type { Metadata, Viewport } from 'next'
|
||||
import { Inter, Instrument_Serif, JetBrains_Mono } from 'next/font/google'
|
||||
import { Analytics } from '@vercel/analytics/next'
|
||||
import './globals.css'
|
||||
|
||||
const inter = Inter({
|
||||
subsets: ['latin'],
|
||||
variable: '--font-inter',
|
||||
display: 'swap',
|
||||
})
|
||||
|
||||
const instrumentSerif = Instrument_Serif({
|
||||
weight: '400',
|
||||
subsets: ['latin'],
|
||||
variable: '--font-instrument-serif',
|
||||
display: 'swap',
|
||||
})
|
||||
|
||||
const jetbrainsMono = JetBrains_Mono({
|
||||
subsets: ['latin'],
|
||||
variable: '--font-jetbrains-mono',
|
||||
display: 'swap',
|
||||
})
|
||||
|
||||
export const metadata: Metadata = {
|
||||
title: 'Jamulix | 40 Jahre Code',
|
||||
description: 'Seit 40 Jahren Code. Von Fortran IV bis KI-Projekte in Python und Rust. Erfahrener Programmierer, Linux-Veteran und KI-Entwickler.',
|
||||
keywords: ['Programmierung', 'Linux', 'KI', 'Python', 'Rust', 'Software-Entwicklung', 'AI', 'Fortran', 'Unix'],
|
||||
authors: [{ name: 'Jamulix' }],
|
||||
creator: 'Jamulix',
|
||||
openGraph: {
|
||||
type: 'website',
|
||||
locale: 'de_DE',
|
||||
url: 'https://jamulix.de',
|
||||
siteName: 'Jamulix',
|
||||
title: 'Jamulix | 40 Jahre Code',
|
||||
description: 'Seit 40 Jahren Code. Von Fortran IV bis KI-Projekte in Python und Rust.',
|
||||
},
|
||||
twitter: {
|
||||
card: 'summary_large_image',
|
||||
title: 'Jamulix | 40 Jahre Code',
|
||||
description: 'Seit 40 Jahren Code. Von Fortran IV bis KI-Projekte in Python und Rust.',
|
||||
},
|
||||
robots: {
|
||||
index: true,
|
||||
follow: true,
|
||||
},
|
||||
}
|
||||
|
||||
export const viewport: Viewport = {
|
||||
themeColor: [
|
||||
{ media: '(prefers-color-scheme: light)', color: '#faf9f7' },
|
||||
{ media: '(prefers-color-scheme: dark)', color: '#1a1a1f' },
|
||||
],
|
||||
width: 'device-width',
|
||||
initialScale: 1,
|
||||
}
|
||||
|
||||
export default function RootLayout({
|
||||
children,
|
||||
}: Readonly<{
|
||||
children: React.ReactNode
|
||||
}>) {
|
||||
return (
|
||||
<html
|
||||
lang="de"
|
||||
className={`${inter.variable} ${instrumentSerif.variable} ${jetbrainsMono.variable} dark bg-background`}
|
||||
suppressHydrationWarning
|
||||
>
|
||||
<head>
|
||||
<script
|
||||
dangerouslySetInnerHTML={{
|
||||
__html: `
|
||||
(function() {
|
||||
const stored = localStorage.getItem('theme');
|
||||
const prefersDark = window.matchMedia('(prefers-color-scheme: dark)').matches;
|
||||
const theme = stored || (prefersDark ? 'dark' : 'light');
|
||||
document.documentElement.classList.toggle('dark', theme === 'dark');
|
||||
})();
|
||||
`,
|
||||
}}
|
||||
/>
|
||||
</head>
|
||||
<body className="font-sans antialiased min-h-screen">
|
||||
{children}
|
||||
{process.env.NODE_ENV === 'production' && <Analytics />}
|
||||
</body>
|
||||
</html>
|
||||
)
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue