-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathlayout.tsx
More file actions
90 lines (85 loc) · 2.93 KB
/
layout.tsx
File metadata and controls
90 lines (85 loc) · 2.93 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
import Header from "@/components/header";
import "./globals.css";
import { Inter } from "next/font/google";
import ActiveSectionContextProvider from "@/context/active-section-context";
import Footer from "@/components/footer";
import ThemeSwitch from "@/components/theme-switch";
import ThemeContextProvider from "@/context/theme-context";
import { GoogleAnalytics } from "@next/third-parties/google";
import { Analytics } from "@vercel/analytics/react";
const inter = Inter({
subsets: ["latin"],
display: "swap"
});
export const metadata = {
title: "Sean Coughlin | Software Engineer",
description:
"Sean is a full-stack developer with 3 years of experience. He is experienced in web and app development.",
icons: [{ url: "/s.webp", sizes: "any" }],
authors: [{ name: "Sean Coughlin", url: "https://seancoughlin.me" }],
metadataBase: new URL("https://seancoughlin.com"),
robots: {
index: true,
follow: true
},
openGraph: {
title: "Sean Coughlin | Software Engineer",
description:
"Sean is a full-stack developer with 3 years of experience. He is experienced in web and app development.",
url: "https://seancoughlin.me",
siteName: "Next.js",
images: [
{
url: "https://nextjs.org/profile.jpeg",
alt: "Profile picture of Sean Coughlin"
},
{
url: "https://nextjs.org/s.webp",
alt: "Fancy S favicon"
}
],
locale: "en_US",
type: "website"
}
};
export default function RootLayout({
children
}: {
children: React.ReactNode;
}) {
return (
<html lang="en" className="scroll-smooth!">
<body
className={`${inter.className} bg-gray-50 text-gray-950 relative pt-28 sm:pt-36 dark:bg-gray-900 dark:text-gray-50 dark:text-opacity-90`}
>
{/* Skip to main content link for screen readers */}
<a
href="#main-content"
className="sr-only focus:not-sr-only focus:absolute focus:top-4 focus:left-4 bg-blue-600 text-white px-4 py-2 rounded-md z-50"
>
Skip to main content
</a>
<div
className="bg-[#fbe2e3] absolute top-[-6rem] -z-10 right-[11rem] h-[31.25rem] w-[31.25rem] rounded-full blur-[10rem] sm:w-[68.75rem] dark:bg-[#946263]"
aria-hidden="true"
></div>
<div
className="bg-[#dbd7fb] absolute top-[-1rem] -z-10 left-[-35rem] h-[31.25rem] w-[50rem] rounded-full blur-[10rem] sm:w-[68.75rem] md:left-[-33rem] lg:left-[-28rem] xl:left-[-15rem] 2xl:left-[-5rem] dark:bg-[#676394]"
aria-hidden="true"
></div>
<ThemeContextProvider>
<ActiveSectionContextProvider>
<Header />
<main id="main-content" role="main">
{children}
</main>
<Footer />
<ThemeSwitch />
</ActiveSectionContextProvider>
</ThemeContextProvider>
</body>
<GoogleAnalytics gaId="G-XJSB0P6X9K" />
<Analytics />
</html>
);
}