Files
mintel.me/apps/web/app/(site)/layout.tsx
T
mmintelandClaude Sonnet 5.5 f258e2a483 feat: dark theme foundation, new header/footer, shared site primitives
Adds dark design tokens, Inter + JetBrains Mono, a header with Notes,
Process, About and a Book a call button, and a footer with the availability
line driven by the tested domain core. Shared primitives live in
src/components/site, site constants in src/content/site.ts. Legacy pages
(blog, legal, contact, tags, technologies) keep a light surface via
LegacyLightSurface. Stub routes for /notes, /process and /book.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-03 19:00:07 +02:00

66 lines
1.8 KiB
TypeScript

import type { Metadata } from "next";
import { Inter, JetBrains_Mono, Newsreader } from "next/font/google";
import { Analytics } from "@/src/components/Analytics";
import { Footer } from "@/src/components/Footer";
import { Header } from "@/src/components/Header";
import { InteractiveElements } from "@/src/components/InteractiveElements";
import "./globals.css";
const inter = Inter({ subsets: ["latin"], variable: "--font-inter" });
const jetbrainsMono = JetBrains_Mono({
subsets: ["latin"],
variable: "--font-jetbrains-mono",
display: "swap",
});
const newsreader = Newsreader({
subsets: ["latin"],
variable: "--font-newsreader",
style: "italic",
display: "swap",
});
const DESCRIPTION =
"Senior engineer for teams that build fast with AI and don't want chaos. Strong in design and frontend, provably clean in architecture and tests. Remote, booked in weekly capacity blocks.";
export const metadata: Metadata = {
title: {
default: "Marc Mintel — Senior engineer for AI-built software",
template: "%s | Marc Mintel",
},
description: DESCRIPTION,
metadataBase: new URL("https://mintel.me"),
openGraph: {
type: "website",
siteName: "Marc Mintel",
title: "Marc Mintel — Senior engineer for AI-built software",
description: DESCRIPTION,
url: "https://mintel.me",
locale: "en_US",
},
twitter: { card: "summary_large_image" },
icons: {
icon: "/favicon.svg",
},
};
export default function RootLayout({
children,
}: {
children: React.ReactNode;
}) {
return (
<html
lang="en"
className={`${inter.variable} ${jetbrainsMono.variable} ${newsreader.variable}`}
>
<body className="min-h-screen bg-bg font-sans text-fg antialiased">
<Header />
<main>{children}</main>
<Footer />
<InteractiveElements />
<Analytics />
</body>
</html>
);
}