Files
Webserver/app/layout.tsx

79 lines
2.4 KiB
TypeScript
Raw Normal View History

2026-02-06 14:10:59 -05:00
import type { Metadata } from "next";
2026-04-11 23:27:29 -04:00
import {
IBM_Plex_Mono,
Instrument_Sans,
} from "next/font/google";
import Script from "next/script";
2026-05-25 09:49:40 -04:00
import { Suspense } from "react";
2026-02-06 14:10:59 -05:00
import "./globals.css";
2026-04-11 23:27:29 -04:00
import { Analytics } from "@/components/Analytics";
import { AmbientCanvas } from "@/components/layout/AmbientCanvas";
import { Footer } from "@/components/layout/Footer";
import { Navbar } from "@/components/layout/Navbar";
2026-02-06 14:10:59 -05:00
2026-04-11 23:27:29 -04:00
const instrumentSans = Instrument_Sans({
variable: "--font-instrument-sans",
2026-02-06 14:10:59 -05:00
subsets: ["latin"],
2026-02-07 20:17:46 -05:00
display: "swap",
2026-04-11 23:27:29 -04:00
weight: ["400", "500", "600", "700"],
});
const ibmPlexMono = IBM_Plex_Mono({
variable: "--font-ibm-plex-mono",
subsets: ["latin"],
display: "swap",
weight: ["400", "500"],
2026-02-06 14:10:59 -05:00
});
export const metadata: Metadata = {
2026-02-08 23:18:21 -05:00
metadataBase: new URL("https://akkolli.net"),
title: {
default: "Akshay Kolli",
template: "%s | Akshay Kolli",
},
2026-06-08 19:31:19 -04:00
description: "Akshay Kolli is a CS PhD student at UMass Lowell working on world models for RL, ML hardware, GPUs, and deep learning systems.",
2026-02-08 23:18:21 -05:00
openGraph: {
title: "Akshay Kolli",
2026-06-08 19:31:19 -04:00
description: "CS PhD student at UMass Lowell working on world models for RL, ML hardware, GPUs, and deep learning systems.",
2026-02-08 23:18:21 -05:00
siteName: "Akshay Kolli",
type: "website",
},
twitter: {
card: "summary",
creator: "@thekolliakshay",
},
2026-02-06 14:10:59 -05:00
};
export default function RootLayout({
children,
}: Readonly<{
children: React.ReactNode;
}>) {
return (
2026-04-11 23:27:29 -04:00
<html lang="en" suppressHydrationWarning>
2026-02-06 14:10:59 -05:00
<body
2026-04-11 23:27:29 -04:00
className={`${instrumentSans.variable} ${ibmPlexMono.variable} min-h-screen bg-paper font-sans text-ink antialiased`}
2026-02-06 14:10:59 -05:00
>
2026-05-25 09:49:40 -04:00
<Script src="/theme-init.js" strategy="beforeInteractive" />
2026-04-11 23:27:29 -04:00
<a
href="#main-content"
className="sr-only focus:not-sr-only focus:absolute focus:left-4 focus:top-4 focus:z-[100] focus:rounded-full focus:bg-paper-strong focus:px-4 focus:py-2 focus:text-sm focus:font-medium focus:text-ink focus:shadow-[0_12px_30px_rgba(23,28,24,0.08)]"
>
2026-02-08 23:18:21 -05:00
Skip to content
</a>
2026-04-11 23:27:29 -04:00
<AmbientCanvas />
<div className="site-shell flex min-h-screen flex-col">
<Navbar />
<main id="main-content" className="flex-grow">
{children}
</main>
<Footer />
2026-05-25 09:49:40 -04:00
<Suspense fallback={null}>
<Analytics />
</Suspense>
2026-04-11 23:27:29 -04:00
</div>
2026-02-06 14:10:59 -05:00
</body>
</html>
);
}