First Commit

This commit is contained in:
Benjamin Toby
2024-12-09 16:36:17 +01:00
parent f24b493566
commit b037cec100
128 changed files with 3281 additions and 193 deletions
+51
View File
@@ -0,0 +1,51 @@
import Button from "@/components/lib/layout/Button";
import H1 from "@/components/lib/layout/H1";
import Row from "@/components/lib/layout/Row";
import Section from "@/components/lib/layout/Section";
import Span from "@/components/lib/layout/Span";
import Stack from "@/components/lib/layout/Stack";
import Layout from "@/layouts/main";
import { Antenna, UtilityPole } from "lucide-react";
export default function Home() {
return (
<Layout>
<Section>
<Stack>
<Row className="items-center gap-20">
<UtilityPole
size={100}
strokeWidth={1}
className="mt-4"
opacity={0.5}
/>
<Stack className="gap-4">
<H1 className="text-[60px] m-0 leading-[50px]">
404
</H1>
<Span>Page Not Found!</Span>
<Row className="gap-4 max-w-[400px] w-[400px]">
<Button
onClick={() => window.history.back()}
className="grow"
>
Go Back
</Button>
<Button
href="/"
variant="outlined"
linkProps={{
className: "grow",
}}
className="w-full"
>
Home
</Button>
</Row>
</Stack>
</Row>
</Stack>
</Section>
</Layout>
);
}
+1 -1
View File
@@ -2,5 +2,5 @@ import "@/styles/globals.css";
import type { AppProps } from "next/app";
export default function App({ Component, pageProps }: AppProps) {
return <Component {...pageProps} />;
return <Component {...pageProps} />;
}
+9 -9
View File
@@ -1,13 +1,13 @@
import { Html, Head, Main, NextScript } from "next/document";
export default function Document() {
return (
<Html lang="en">
<Head />
<body className="antialiased">
<Main />
<NextScript />
</body>
</Html>
);
return (
<Html lang="en" className="dark">
<Head />
<body className="antialiased">
<Main />
<NextScript />
</body>
</Html>
);
}
+10
View File
@@ -0,0 +1,10 @@
import Layout from "@/layouts/main";
import Main from "@/components/pages/about";
export default function ContactPage() {
return (
<Layout>
<Main />
</Layout>
);
}
+10
View File
@@ -0,0 +1,10 @@
import Layout from "@/layouts/main";
import Main from "@/components/pages/contact";
export default function ContactPage() {
return (
<Layout>
<Main />
</Layout>
);
}
+18 -112
View File
@@ -1,115 +1,21 @@
import Image from "next/image";
import localFont from "next/font/local";
const geistSans = localFont({
src: "./fonts/GeistVF.woff",
variable: "--font-geist-sans",
weight: "100 900",
});
const geistMono = localFont({
src: "./fonts/GeistMonoVF.woff",
variable: "--font-geist-mono",
weight: "100 900",
});
import Layout from "@/layouts/main";
import H1 from "@/components/lib/layout/H1";
import Main from "@/components/pages/Home";
import AboutSection from "@/components/pages/Home/(sections)/AboutSection";
import Divider from "@/components/lib/layout/Divider";
import MySkillsSection from "@/components/pages/Home/(sections)/MySkillsSection";
import MyWorkSection from "@/components/pages/Home/(sections)/MyWorkSection";
export default function Home() {
return (
<div
className={`${geistSans.variable} ${geistMono.variable} grid grid-rows-[20px_1fr_20px] items-center justify-items-center min-h-screen p-8 pb-20 gap-16 sm:p-20 font-[family-name:var(--font-geist-sans)]`}
>
<main className="flex flex-col gap-8 row-start-2 items-center sm:items-start">
<Image
className="dark:invert"
src="/next.svg"
alt="Next.js logo"
width={180}
height={38}
priority
/>
<ol className="list-inside list-decimal text-sm text-center sm:text-left font-[family-name:var(--font-geist-mono)]">
<li className="mb-2">
Get started by editing{" "}
<code className="bg-black/[.05] dark:bg-white/[.06] px-1 py-0.5 rounded font-semibold">
pages/index.tsx
</code>
.
</li>
<li>Save and see your changes instantly.</li>
</ol>
<div className="flex gap-4 items-center flex-col sm:flex-row">
<a
className="rounded-full border border-solid border-transparent transition-colors flex items-center justify-center bg-foreground text-background gap-2 hover:bg-[#383838] dark:hover:bg-[#ccc] text-sm sm:text-base h-10 sm:h-12 px-4 sm:px-5"
href="https://vercel.com/new?utm_source=create-next-app&utm_medium=default-template-tw&utm_campaign=create-next-app"
target="_blank"
rel="noopener noreferrer"
>
<Image
className="dark:invert"
src="/vercel.svg"
alt="Vercel logomark"
width={20}
height={20}
/>
Deploy now
</a>
<a
className="rounded-full border border-solid border-black/[.08] dark:border-white/[.145] transition-colors flex items-center justify-center hover:bg-[#f2f2f2] dark:hover:bg-[#1a1a1a] hover:border-transparent text-sm sm:text-base h-10 sm:h-12 px-4 sm:px-5 sm:min-w-44"
href="https://nextjs.org/docs?utm_source=create-next-app&utm_medium=default-template-tw&utm_campaign=create-next-app"
target="_blank"
rel="noopener noreferrer"
>
Read our docs
</a>
</div>
</main>
<footer className="row-start-3 flex gap-6 flex-wrap items-center justify-center">
<a
className="flex items-center gap-2 hover:underline hover:underline-offset-4"
href="https://nextjs.org/learn?utm_source=create-next-app&utm_medium=default-template-tw&utm_campaign=create-next-app"
target="_blank"
rel="noopener noreferrer"
>
<Image
aria-hidden
src="/file.svg"
alt="File icon"
width={16}
height={16}
/>
Learn
</a>
<a
className="flex items-center gap-2 hover:underline hover:underline-offset-4"
href="https://vercel.com/templates?framework=next.js&utm_source=create-next-app&utm_medium=default-template-tw&utm_campaign=create-next-app"
target="_blank"
rel="noopener noreferrer"
>
<Image
aria-hidden
src="/window.svg"
alt="Window icon"
width={16}
height={16}
/>
Examples
</a>
<a
className="flex items-center gap-2 hover:underline hover:underline-offset-4"
href="https://nextjs.org?utm_source=create-next-app&utm_medium=default-template-tw&utm_campaign=create-next-app"
target="_blank"
rel="noopener noreferrer"
>
<Image
aria-hidden
src="/globe.svg"
alt="Globe icon"
width={16}
height={16}
/>
Go to nextjs.org
</a>
</footer>
</div>
);
return (
<Layout>
<Main />
<Divider />
<AboutSection />
<Divider />
<MySkillsSection />
<Divider />
<MyWorkSection />
</Layout>
);
}
+14
View File
@@ -0,0 +1,14 @@
import Layout from "@/layouts/main";
import Main from "@/components/pages/skills";
import Divider from "@/components/lib/layout/Divider";
import MySkillsSection from "@/components/pages/Home/(sections)/MySkillsSection";
export default function SkillsPage() {
return (
<Layout>
<Main />
<Divider />
<MySkillsSection noTitle expand />
</Layout>
);
}
+14
View File
@@ -0,0 +1,14 @@
import Layout from "@/layouts/main";
import Main from "@/components/pages/work";
import Divider from "@/components/lib/layout/Divider";
import MyWorkSection from "@/components/pages/Home/(sections)/MyWorkSection";
export default function WorkPage() {
return (
<Layout>
<Main />
<Divider />
<MyWorkSection noTitle expand />
</Layout>
);
}