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>
|
|
|
|
|
);
|
|
|
|
|
}
|