diff --git a/.env.example b/.env.example
index 2693a05a..850b4ee6 100644
--- a/.env.example
+++ b/.env.example
@@ -6,13 +6,13 @@
GITHUB_TOKEN=
KV_REST_API_TOKEN=
KV_REST_API_URL=
+RESEND_API_KEY=
+RESEND_FROM_EMAIL=
+RESEND_TO_EMAIL=
+TURNSTILE_SECRET_KEY=
NEXT_PUBLIC_GISCUS_CATEGORY_ID=
NEXT_PUBLIC_GISCUS_REPO_ID=
NEXT_PUBLIC_ONION_DOMAIN=
NEXT_PUBLIC_TURNSTILE_SITE_KEY=
NEXT_PUBLIC_UMAMI_URL=
NEXT_PUBLIC_UMAMI_WEBSITE_ID=
-RESEND_API_KEY=
-RESEND_FROM_EMAIL=
-RESEND_TO_EMAIL=
-TURNSTILE_SECRET_KEY=
diff --git a/app/fonts.ts b/app/fonts.ts
index f6a36961..548cac31 100644
--- a/app/fonts.ts
+++ b/app/fonts.ts
@@ -11,6 +11,7 @@ export const GeistSans = GeistSansLoader({
"system-ui",
"sans-serif",
],
+ variable: "--fonts-sans",
preload: true,
});
@@ -28,5 +29,6 @@ export const GeistMono = GeistMonoLoader({
"monospace",
],
adjustFontFallback: false,
+ variable: "--fonts-mono",
preload: true,
});
diff --git a/app/global.css b/app/global.css
index 23926951..e9b96424 100644
--- a/app/global.css
+++ b/app/global.css
@@ -1,4 +1,7 @@
-/*! Adapted from modern-normalize.css | MIT License | https://github.com/sindresorhus/modern-normalize */
+/*!
+ * modern-normalize v3.0.1 | MIT License | https://github.com/sindresorhus/modern-normalize/tree/v3.0.1
+ */
+
*,
::before,
::after {
@@ -15,6 +18,7 @@ html {
body {
margin: 0;
font-family: var(--fonts-sans);
+ background-color: var(--colors-background-inner);
}
code,
diff --git a/app/layout.module.css b/app/layout.module.css
index 3331a314..2648716e 100644
--- a/app/layout.module.css
+++ b/app/layout.module.css
@@ -1,7 +1,3 @@
-.body {
- background-color: var(--colors-background-inner);
-}
-
.layout {
display: flex;
flex-direction: column;
diff --git a/app/layout.tsx b/app/layout.tsx
index a9f908f4..abe061e0 100644
--- a/app/layout.tsx
+++ b/app/layout.tsx
@@ -1,11 +1,11 @@
import { JsonLd } from "react-schemaorg";
+import clsx from "clsx";
import Analytics from "./analytics";
import { ThemeProvider, ThemeScript } from "../contexts/ThemeContext";
import Header from "../components/Header";
import Footer from "../components/Footer";
-import { SkipToContentLink, SkipToContentTarget } from "../components/SkipToContent";
+import { SkipNavLink, SkipNavTarget } from "../components/SkipNav";
import { defaultMetadata } from "../lib/helpers/metadata";
-import { setRootCssVariables } from "../lib/helpers/styles";
import * as config from "../lib/config";
import { BASE_URL, MAX_WIDTH } from "../lib/config/constants";
import type { Metadata } from "next";
@@ -69,25 +69,21 @@ const RootLayout = ({ children }: Readonly<{ children: React.ReactNode }>) => {
/>
-
-
-
+
-
+
-
- {children}
+
+
+ {children}
+
diff --git a/components/Heading/Heading.module.css b/components/Heading/Heading.module.css
index 7b786dfc..111bd3e8 100644
--- a/components/Heading/Heading.module.css
+++ b/components/Heading/Heading.module.css
@@ -3,8 +3,10 @@
margin-bottom: 0.5em;
line-height: 1.5;
- /* offset (approximately) with sticky header so jumped-to content isn't hiding behind it.
- note: use rem so it isn't based on the heading's font size. */
+ /*
+ * offset (approximately) with sticky header so jumped-to content isn't hiding behind it.
+ * note: use rem so it isn't based on the heading's font size.
+ */
scroll-margin-top: 5.5rem;
}
diff --git a/components/SkipToContent/SkipToContent.module.css b/components/SkipNav/SkipNav.module.css
similarity index 76%
rename from components/SkipToContent/SkipToContent.module.css
rename to components/SkipNav/SkipNav.module.css
index 4c0617f7..02fed8bb 100644
--- a/components/SkipToContent/SkipToContent.module.css
+++ b/components/SkipNav/SkipNav.module.css
@@ -1,5 +1,6 @@
-/* accessible invisibility stuff pulled from @reach/skip-nav:
-https://github.com/reach/reach-ui/blob/main/packages/skip-nav/styles.css */
+/*
+ * Pulled from @reach/skip-nav: https://github.com/reach/reach-ui/blob/main/packages/skip-nav/styles.css
+ */
.hidden {
border: 0;
diff --git a/components/SkipToContent/SkipToContent.tsx b/components/SkipNav/SkipNav.tsx
similarity index 53%
rename from components/SkipToContent/SkipToContent.tsx
rename to components/SkipNav/SkipNav.tsx
index f647b019..a2129442 100644
--- a/components/SkipToContent/SkipToContent.tsx
+++ b/components/SkipNav/SkipNav.tsx
@@ -1,8 +1,8 @@
-import styles from "./SkipToContent.module.css";
+import styles from "./SkipNav.module.css";
const skipNavId = "skip-nav";
-export const SkipToContentLink = () => {
+export const SkipNavLink = () => {
return (
Skip to content
@@ -10,8 +10,8 @@ export const SkipToContentLink = () => {
);
};
-export const SkipToContentTarget = () => {
+export const SkipNavTarget = () => {
return ;
};
-export default SkipToContentLink;
+export default SkipNavLink;
diff --git a/components/SkipNav/index.ts b/components/SkipNav/index.ts
new file mode 100644
index 00000000..b3528025
--- /dev/null
+++ b/components/SkipNav/index.ts
@@ -0,0 +1,2 @@
+export * from "./SkipNav";
+export { default } from "./SkipNav";
diff --git a/components/SkipToContent/index.ts b/components/SkipToContent/index.ts
deleted file mode 100644
index 98505134..00000000
--- a/components/SkipToContent/index.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-export * from "./SkipToContent";
-export { default } from "./SkipToContent";
diff --git a/instrumentation.ts b/instrumentation.ts
index cfb5f21d..f8a9ce12 100644
--- a/instrumentation.ts
+++ b/instrumentation.ts
@@ -1,7 +1,9 @@
import { registerOTel } from "@vercel/otel";
export const register = () => {
- registerOTel({
- serviceName: "jarvis",
- });
+ if (process.env.VERCEL_ENV === "production") {
+ registerOTel({
+ serviceName: "jarvis",
+ });
+ }
};
diff --git a/lib/helpers/styles.ts b/lib/helpers/styles.ts
deleted file mode 100644
index e2f2b8d5..00000000
--- a/lib/helpers/styles.ts
+++ /dev/null
@@ -1,14 +0,0 @@
-import hash from "@emotion/hash";
-
-// a little hacky-hack to have react combine all of these css var declarations into a single