From 768a16c170312b2b6c429954ba3571d5eb90465c Mon Sep 17 00:00:00 2001 From: Jack Merrill <8814123+jackmerrill@users.noreply.github.com> Date: Fri, 3 Sep 2021 17:13:30 +0000 Subject: [PATCH 1/6] start revision --- .breakpoints | 18 ++++++ .replit | 2 + components/Images/Logo.tsx | 3 +- components/Navbar.tsx | 127 ++++++++++++++++++++++++------------- package.json | 2 + pages/_app.tsx | 6 -- pages/index.tsx | 36 +++++++++-- util/hooks/useOnScreen.ts | 20 ++++++ yarn.lock | 10 +++ 9 files changed, 168 insertions(+), 56 deletions(-) create mode 100644 .breakpoints create mode 100644 .replit create mode 100644 util/hooks/useOnScreen.ts diff --git a/.breakpoints b/.breakpoints new file mode 100644 index 0000000..74e7c48 --- /dev/null +++ b/.breakpoints @@ -0,0 +1,18 @@ +{ + "files": { + "components/Navbar.tsx": [ + { + "id": "5aa0d634-c476-4ab2-9957-d364b66311b2", + "line": 2, + "version": 15, + "index": 39 + }, + { + "id": "01e112b0-3705-4b70-bf88-5b2716dd492d", + "line": 64, + "version": 35, + "index": 2597 + } + ] + } +} \ No newline at end of file diff --git a/.replit b/.replit new file mode 100644 index 0000000..0ac7acd --- /dev/null +++ b/.replit @@ -0,0 +1,2 @@ +language = "nodejs" +run = "yarn dev" \ No newline at end of file diff --git a/components/Images/Logo.tsx b/components/Images/Logo.tsx index 03a2e3d..0a7469b 100644 --- a/components/Images/Logo.tsx +++ b/components/Images/Logo.tsx @@ -1,4 +1,4 @@ -const Logo = () => ( +const Logo = (props) => ( ( clipRule='evenodd' strokeLinejoin='round' strokeMiterlimit='2' + {...props} > diff --git a/components/Navbar.tsx b/components/Navbar.tsx index 6febf97..a6d0c12 100644 --- a/components/Navbar.tsx +++ b/components/Navbar.tsx @@ -1,14 +1,23 @@ import Link from "next/link"; -import { useEffect, useState } from "react"; +import { Fragment, useState, useEffect } from 'react' +import { Disclosure, Menu, Transition } from '@headlessui/react' +import { BellIcon, MenuIcon, XIcon } from '@heroicons/react/outline' -const Navbar = ({ links }: { - links: { - label: string; - href: string; - }[] -}) => { - const [collapsed, setCollapsed] = useState(false); +import Logo from '../components/Images/Logo'; +const navigation = [ + { name: 'Home', href: '#', current: true }, + { name: 'About', href: '#', current: false }, + { name: 'Projects', href: '#', current: false }, + { name: 'Graphics', href: '#', current: false }, + { name: 'Contact', href: '#', current: false }, +]; + +function classNames(...classes) { + return classes.filter(Boolean).join(' ') +} + +const Navbar = ({ views }: { views: { view: string, viewing: boolean }[] }) => { const [atTop, setAtTop] = useState() useEffect(() => { @@ -23,47 +32,79 @@ const Navbar = ({ links }: { } else { setAtTop(false) } + + const currentlyViewing = views.find((view) => view.viewing === true) + navigation.forEach((nav) => nav.current = false) + navigation.find((nav) => nav.name === currentlyViewing.view).current = true }) }) - return ( -
-
-
- -

Jack Merrill

- -
- -
- +
+
+ {/* Mobile menu button */} + + Open main menu + {open ? ( + +
+ - - - ) + + +
+ {navigation.map((item) => ( + + {item.name} + + ))} +
+
+ + )} + + ) } export default Navbar; \ No newline at end of file diff --git a/package.json b/package.json index ced01f6..c1ad390 100644 --- a/package.json +++ b/package.json @@ -8,6 +8,8 @@ "type-check": "tsc" }, "dependencies": { + "@headlessui/react": "^1.4.1", + "@heroicons/react": "^1.0.4", "framer-motion": "^4.1.2", "next": "^10.1.3", "next-page-transitions": "^1.0.0-beta.2", diff --git a/pages/_app.tsx b/pages/_app.tsx index 07d6bf2..add3f4c 100644 --- a/pages/_app.tsx +++ b/pages/_app.tsx @@ -4,7 +4,6 @@ import SEO from '../next-seo.config'; import { DefaultSeo } from 'next-seo'; import 'tailwindcss/tailwind.css' import { useRouter } from 'next/dist/client/router'; -import Navbar from '../components/Navbar'; import Footer from '../components/Footer'; function MyApp({ Component, pageProps }: AppProps) { @@ -29,11 +28,6 @@ function MyApp({ Component, pageProps }: AppProps) {
-
diff --git a/pages/index.tsx b/pages/index.tsx index 792c757..5f1ec73 100644 --- a/pages/index.tsx +++ b/pages/index.tsx @@ -1,6 +1,6 @@ import Link from 'next/link' import Image from 'next/image'; -import { useEffect, useState } from 'react' +import { useEffect, useState, useRef } from 'react' import CodeIcon from '../components/Images/CodeIcon' import DesignIcon from '../components/Images/DesignIcon' import GitHubIcon from '../components/Images/GitHubIcon'; @@ -8,11 +8,26 @@ import MailIcon from '../components/Images/MailIcon'; import TwitterIcon from '../components/Images/TwitterIcon'; import Head from 'next/head'; +import Navbar from '../components/Navbar'; +import useOnScreen from '../util/hooks/useOnScreen'; + const IndexPage = () => { const [timeString, setTimeString] = useState( (new Date().getHours() < 12 ? 'Morning' : (new Date().getHours() >= 12 && new Date().getHours() <= 17 ? 'Afternoon' : (new Date().getHours() >= 17 && new Date().getHours() <= 24 ? 'Evening' : 'Morning'))) ) + const homeRef = useRef(null); + const aboutRef = useRef(null); + const graphicsRef = useRef(null); + const projectsRef = useRef(null); + const contactRef = useRef(null); + + const viewingHome = useOnScreen(homeRef) + const viewingAbout = useOnScreen(aboutRef) + const viewingGraphics = useOnScreen(graphicsRef) + const viewingProjects = useOnScreen(projectsRef) + const viewingContact = useOnScreen(contactRef) + useEffect(() => { const hours = new Date().getHours() @@ -33,12 +48,21 @@ const IndexPage = () => { return Math.abs(ageDate.getUTCFullYear() - 1970); } + + return ( <> -
+ +

Good {timeString}! I'm Jack Merrill.

@@ -59,7 +83,7 @@ const IndexPage = () => {
-
+

Nice to meet you!

@@ -116,7 +140,7 @@ const IndexPage = () => {
-
+

My recent work

Here are a few projects I've been working on!

@@ -168,7 +192,7 @@ const IndexPage = () => {
-
+

My Designs

Here are a few designs I've made!

@@ -212,7 +236,7 @@ const IndexPage = () => {
-
+

Want to contact me?

{ + observer = new IntersectionObserver( + ([entry]) => setIntersecting(entry.isIntersecting) + ) + + observer.observe(ref.current) + // Remove the observer as soon as the component is unmounted + return () => { observer.disconnect() } + }, []) + + return isIntersecting +} \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index 7fae4dc..8d4a976 100644 --- a/yarn.lock +++ b/yarn.lock @@ -97,6 +97,16 @@ resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-9.1.1.tgz#9daf5745156fd84b8e9889a2dc721f0c58e894aa" integrity sha512-CAEbWH7OIur6jEOzaai83jq3FmKmv4PmX1JYfs9IrYcGEVI/lyL1EXJGCj7eFVJ0bg5QR8LMxBlEtA+xKiLpFw== +"@headlessui/react@^1.4.1": + version "1.4.1" + resolved "https://registry.yarnpkg.com/@headlessui/react/-/react-1.4.1.tgz#0a8dbb20e1d63dcea55bfc3ab1b87637aaac7777" + integrity sha512-gL6Ns5xQM57cZBzX6IVv6L7nsam8rDEpRhs5fg28SN64ikfmuuMgunc+Rw5C1cMScnvFM+cz32ueVrlSFEVlSg== + +"@heroicons/react@^1.0.4": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@heroicons/react/-/react-1.0.4.tgz#11847eb2ea5510419d7ada9ff150a33af0ad0863" + integrity sha512-3kOrTmo8+Z8o6AL0rzN82MOf8J5CuxhRLFhpI8mrn+3OqekA6d5eb1GYO3EYYo1Vn6mYQSMNTzCWbEwUInb0cQ== + "@next/env@10.1.3": version "10.1.3" resolved "https://registry.yarnpkg.com/@next/env/-/env-10.1.3.tgz#29e5d62919b4a7b1859f8d36169848dc3f5ddebe" From c6174fab8db7e59fe27a95d956f51fab4943dc51 Mon Sep 17 00:00:00 2001 From: Jack Merrill <8814123+jackmerrill@users.noreply.github.com> Date: Tue, 7 Sep 2021 17:14:50 +0000 Subject: [PATCH 2/6] feat: a lot of stuff --- .breakpoints | 34 +++++++++--- components/Navbar.tsx | 19 ++++--- components/Projects.tsx | 73 +++++++++++++++++++++++++ components/Skills.tsx | 78 +++++++++++++++++++++++++++ pages/_app.tsx | 5 ++ pages/_document.tsx | 23 -------- pages/index.tsx | 116 +++------------------------------------- 7 files changed, 203 insertions(+), 145 deletions(-) create mode 100644 components/Projects.tsx create mode 100644 components/Skills.tsx delete mode 100644 pages/_document.tsx diff --git a/.breakpoints b/.breakpoints index 74e7c48..2e49167 100644 --- a/.breakpoints +++ b/.breakpoints @@ -3,15 +3,37 @@ "components/Navbar.tsx": [ { "id": "5aa0d634-c476-4ab2-9957-d364b66311b2", - "line": 2, - "version": 15, - "index": 39 + "line": 4, + "version": 883, + "index": 217 }, { "id": "01e112b0-3705-4b70-bf88-5b2716dd492d", - "line": 64, - "version": 35, - "index": 2597 + "line": 77, + "version": 883, + "index": 2943 + } + ], + "components/Projects.tsx": [ + { + "id": "f1084f0b-cb32-4b05-b4a3-02d058b717b2", + "line": 9, + "version": 205, + "index": 299 + } + ], + "pages/index.tsx": [ + { + "id": "91f8cc38-eb3c-426c-ba37-749bb88281ac", + "line": 89, + "version": 1001, + "index": 3811 + }, + { + "id": "d3363946-0aa7-43f5-b2ee-bc23387ea7a5", + "line": 13, + "version": 930, + "index": 519 } ] } diff --git a/components/Navbar.tsx b/components/Navbar.tsx index a6d0c12..8e5635a 100644 --- a/components/Navbar.tsx +++ b/components/Navbar.tsx @@ -7,13 +7,13 @@ import Logo from '../components/Images/Logo'; const navigation = [ { name: 'Home', href: '#', current: true }, - { name: 'About', href: '#', current: false }, - { name: 'Projects', href: '#', current: false }, - { name: 'Graphics', href: '#', current: false }, - { name: 'Contact', href: '#', current: false }, + { name: 'About', href: '#about', current: false }, + { name: 'Projects', href: '#projects', current: false }, + { name: 'Graphics', href: '#graphics', current: false }, + { name: 'Contact', href: '#contact', current: false }, ]; -function classNames(...classes) { +function classNames(...classes: any[]) { return classes.filter(Boolean).join(' ') } @@ -35,7 +35,9 @@ const Navbar = ({ views }: { views: { view: string, viewing: boolean }[] }) => { const currentlyViewing = views.find((view) => view.viewing === true) navigation.forEach((nav) => nav.current = false) - navigation.find((nav) => nav.name === currentlyViewing.view).current = true + if (currentlyViewing) { + navigation.find((nav) => nav.name === currentlyViewing.view).current = true + } }) }) @@ -43,7 +45,6 @@ const Navbar = ({ views }: { views: { view: string, viewing: boolean }[] }) => { {({ open }) => ( <> -

{views}

@@ -56,6 +57,10 @@ const Navbar = ({ views }: { views: { view: string, viewing: boolean }[] }) => { { + document.getElementById(item.name + item.href).dispatchEvent(new CustomEvent('scroll')); + }} className={classNames( item.current ? 'bg-gray-900 text-white' diff --git a/components/Projects.tsx b/components/Projects.tsx new file mode 100644 index 0000000..ec33b29 --- /dev/null +++ b/components/Projects.tsx @@ -0,0 +1,73 @@ +const projects = [ + { + title: 'Lunar Design', + href: 'https://github.com/DesignByLunar', + category: { name: 'Organization', color: 'bg-indigo-100 text-indigo-800' }, + description: + 'American counterpart of the French-American duo making software that\'s out of this world.', + }, + { + title: 'BlueJay', + href: 'https://bluejay.one', + category: { name: 'SaaS', color: 'bg-blue-100 text-blue-800' }, + description: + 'Amazing Ro-Tech solutions for everyone, completely free.', + }, + { + title: 'Snacc.chat', + href: 'https://snacc.chat', + category: { name: 'CodeDay', color: 'bg-red-100 text-red-800' }, + description: + 'Amazing Ro-Tech solutions for everyone, completely free.', + }, +] + +function classNames(...classes) { + return classes.filter(Boolean).join(' ') +} + +export default function Projects() { + return ( + + ) +} \ No newline at end of file diff --git a/components/Skills.tsx b/components/Skills.tsx new file mode 100644 index 0000000..1c6e843 --- /dev/null +++ b/components/Skills.tsx @@ -0,0 +1,78 @@ +import { PencilIcon, CodeIcon, ServerIcon } from '@heroicons/react/outline' + +const links = [ + { + name: 'Web Development', + href: '#projects', + description: + 'I\'ve used Next.js, Express.js, and Flask for backends, and TailwindCSS, Bootstrap, and Material Design for frontends.', + icon: CodeIcon, + }, + { + name: 'Server Management', + href: '#projects', + description: + 'I have lots of experience with managing servers, whether they are on-premises or cloud servers. I have experience using and managing Docker instances as well as databases.', + icon: ServerIcon, + }, + { + name: 'Graphic Design', + href: '#graphics', + description: + 'My front-end experience stemmed from my graphic design skills. I have used Adobe Illustrator, Affinity Designer, Inkscape, and other graphic programs.', + icon: PencilIcon, + }, +] + +export default function Skills() { + function calculateAge() { + var ageDifMs = Date.now() - new Date('July 13, 2004').getTime(); + var ageDate = new Date(ageDifMs); + return Math.abs(ageDate.getUTCFullYear() - 1970); + } + + return ( +
+ {/* Header */} +
+
+ +
+

Hey there!

+

+ I'm Jack, a {calculateAge()} year old web developer from Chicago. I've been programming since 2014 creating great things with Javascript, Python, HTML and CSS, and more. +

+
+
+ + {/* Overlapping cards */} +
+

+ My Skills +

+
+ {links.map((link) => ( +
+
+
+
+

{link.name}

+

{link.description}

+
+ +
+ ))} +
+
+
+ ) +} \ No newline at end of file diff --git a/pages/_app.tsx b/pages/_app.tsx index add3f4c..f95475a 100644 --- a/pages/_app.tsx +++ b/pages/_app.tsx @@ -32,6 +32,11 @@ function MyApp({ Component, pageProps }: AppProps) {
+
} diff --git a/pages/_document.tsx b/pages/_document.tsx deleted file mode 100644 index 0703a8f..0000000 --- a/pages/_document.tsx +++ /dev/null @@ -1,23 +0,0 @@ -import Document, { DocumentContext, Head, Html, Main, NextScript } from 'next/document' - -class MyDocument extends Document { - static async getInitialProps(ctx: DocumentContext) { - const initialProps = await Document.getInitialProps(ctx) - - return initialProps - } - - render() { - return ( - - - -
- - - - ) - } -} - -export default MyDocument diff --git a/pages/index.tsx b/pages/index.tsx index 5f1ec73..b276fdc 100644 --- a/pages/index.tsx +++ b/pages/index.tsx @@ -9,6 +9,8 @@ import TwitterIcon from '../components/Images/TwitterIcon'; import Head from 'next/head'; import Navbar from '../components/Navbar'; +import Skills from '../components/Skills'; +import Projects from '../components/Projects'; import useOnScreen from '../util/hooks/useOnScreen'; const IndexPage = () => { @@ -48,8 +50,6 @@ const IndexPage = () => { return Math.abs(ageDate.getUTCFullYear() - 1970); } - - return ( <> @@ -83,116 +83,14 @@ const IndexPage = () => { -
-
-
-

Nice to meet you!

-
-
-

- I'm Jack, a {calculateAge()} year old Graphic/UI Designer and Fullstack Developer from Chicago. Since I started - programming in 2014, I've used Python, NodeJS, HTML and CSS. Nowadays, I prefer to - use NextJS, TailwindCSS, and NodeJS. Being a fullstack developer, I've - had to create numerous logos and brands for various projects of mine. -

-
-
+
+
-
-
-
-
- -
-
-

Fullstack Developer

-

I strive to make great things.

-

What I've made:

-

SaaS applications, Image websites, Social Networks

-

Tools I use:

-
    -
  1. Next.js
  2. -
  3. Node.js / Express
  4. -
  5. MongoDB
  6. -
  7. PostgreSQL
  8. -
  9. Docker
  10. -
-
-
-
-
- -
-
-

Graphic and UI Design

-

I like to create designs and brands.

-

What I enjoy designing:

-

Brands, Logos, Banners, Headers

-

Tools I use:

-
    -
  1. Affinity Designer
  2. -
  3. Figma
  4. -
  5. TailwindCSS
  6. -
  7. Bootstrap
  8. -
  9. React.js
  10. -
-
-
-
-
-
-

My recent work

-

Here are a few projects I've been working on!

-
- -
- {/* Stryx Photo */} -
-

Lunar Design

-

American counterpart of the French-American duo making software that's out of this world.

- Visit -
-
- -
- Stryx Photo -
-

Stryx

-

Roblox Group Management made easy (defunct, no long associated)

- Visit -
-
- -
- Snacc.chat Photo -
-

Snacc.chat

-

Made in 24 hours at CodeDay, Snacc.chat is a simple social network for programmers alike.

- Visit -
-
- -
- FRCMS Docs Photo -
-

FRCMS

-

FIRST Robotics CMS (WIP)

- Visit -
-
- -
- Ricky.cat Photo -
-

Ricky.cat

-

My first Next.js project! A place to share my cat. Discontinued (for now).

- Visit -
-
-
+
+
-
+

My Designs

Here are a few designs I've made!

From d374d19a8a1e87582370447d0e2984e4155b6183 Mon Sep 17 00:00:00 2001 From: Jack Merrill <8814123+jackmerrill@users.noreply.github.com> Date: Fri, 10 Sep 2021 17:12:20 +0000 Subject: [PATCH 3/6] feat: more projects --- .breakpoints | 42 ++++++++++++++++++++++++++--------------- components/Projects.tsx | 28 ++++++++++++++++++++++++--- 2 files changed, 52 insertions(+), 18 deletions(-) diff --git a/.breakpoints b/.breakpoints index 2e49167..e0035a6 100644 --- a/.breakpoints +++ b/.breakpoints @@ -4,36 +4,48 @@ { "id": "5aa0d634-c476-4ab2-9957-d364b66311b2", "line": 4, - "version": 883, + "version": 1395, "index": 217 }, { "id": "01e112b0-3705-4b70-bf88-5b2716dd492d", - "line": 77, - "version": 883, - "index": 2943 + "line": 80, + "version": 1395, + "index": 3234 } ], "components/Projects.tsx": [ { "id": "f1084f0b-cb32-4b05-b4a3-02d058b717b2", - "line": 9, - "version": 205, - "index": 299 + "line": 15, + "version": 704, + "index": 512 + }, + { + "id": "57d95fae-f14a-4006-9f32-bbe9021aa156", + "line": 90, + "version": 1182, + "index": 3397 + }, + { + "id": "d35f19ba-4d8c-488b-8a38-a26540595f2d", + "line": 91, + "version": 1191, + "index": 3410 } ], "pages/index.tsx": [ { - "id": "91f8cc38-eb3c-426c-ba37-749bb88281ac", - "line": 89, - "version": 1001, - "index": 3811 + "id": "d3363946-0aa7-43f5-b2ee-bc23387ea7a5", + "line": 14, + "version": 1075, + "index": 609 }, { - "id": "d3363946-0aa7-43f5-b2ee-bc23387ea7a5", - "line": 13, - "version": 930, - "index": 519 + "id": "91f8cc38-eb3c-426c-ba37-749bb88281ac", + "line": 90, + "version": 1075, + "index": 3777 } ] } diff --git a/components/Projects.tsx b/components/Projects.tsx index ec33b29..1abd4f3 100644 --- a/components/Projects.tsx +++ b/components/Projects.tsx @@ -18,11 +18,32 @@ const projects = [ href: 'https://snacc.chat', category: { name: 'CodeDay', color: 'bg-red-100 text-red-800' }, description: - 'Amazing Ro-Tech solutions for everyone, completely free.', + 'A social network made in 24 hours at CodeDay.', + }, + { + title: 'SCP Mobile', + href: 'https://github.com/jackmerrill/SCP-Mobile', + category: { name: 'Project', color: 'bg-purple-100 text-purple-800' }, + description: + 'Mobile (iOS) app for the SCP Wiki. Made in 24 hours at CodeDay.', + }, + { + title: 'Family Guy Quotes bot', + href: 'https://github.com/jackmerrill/FamilyGuyQuotesBot', + category: { name: 'Project', color: 'bg-purple-100 text-purple-800' }, + description: + 'Uses Discord slash commands to send random Family Guy quotes.', + }, + { + title: 'OOFS', + href: 'https://github.com/oofs-project/oofs', + category: { name: 'Project', color: 'bg-purple-100 text-purple-800' }, + description: + 'Online Orientated File Storage. Made in 24 hours at CodeDay. Won Best in Show.', }, ] -function classNames(...classes) { +function classNames(...classes: any) { return classes.filter(Boolean).join(' ') } @@ -39,7 +60,7 @@ export default function Projects() {

UX Engineer / Web Developer for {' '} - + Merch . @@ -68,6 +89,7 @@ export default function Projects() { ))}

+

Looking for more? Check my GitHub.

) } \ No newline at end of file From 58b5c15fe96fbe809a96693f4b288ca28e9ec119 Mon Sep 17 00:00:00 2001 From: Jack Merrill <8814123+jackmerrill@users.noreply.github.com> Date: Mon, 4 Oct 2021 22:13:53 +0000 Subject: [PATCH 4/6] i dont know what i added --- .breakpoints | 24 ++++++++++++------------ components/Footer.tsx | 2 +- components/Navbar.tsx | 26 ++++++++++++++++---------- components/Projects.tsx | 2 +- components/Skills.tsx | 2 +- pages/_app.tsx | 5 ++--- pages/index.tsx | 10 +++++----- tailwind.config.js | 7 +++++-- util/hooks/useOnScreen.ts | 4 ++-- 9 files changed, 45 insertions(+), 37 deletions(-) diff --git a/.breakpoints b/.breakpoints index e0035a6..5602e5d 100644 --- a/.breakpoints +++ b/.breakpoints @@ -4,48 +4,48 @@ { "id": "5aa0d634-c476-4ab2-9957-d364b66311b2", "line": 4, - "version": 1395, + "version": 1719, "index": 217 }, { "id": "01e112b0-3705-4b70-bf88-5b2716dd492d", - "line": 80, - "version": 1395, - "index": 3234 + "line": 86, + "version": 1719, + "index": 3326 } ], "components/Projects.tsx": [ { "id": "f1084f0b-cb32-4b05-b4a3-02d058b717b2", "line": 15, - "version": 704, + "version": 1242, "index": 512 }, { "id": "57d95fae-f14a-4006-9f32-bbe9021aa156", "line": 90, - "version": 1182, - "index": 3397 + "version": 1242, + "index": 3381 }, { "id": "d35f19ba-4d8c-488b-8a38-a26540595f2d", "line": 91, - "version": 1191, - "index": 3410 + "version": 1242, + "index": 3396 } ], "pages/index.tsx": [ { "id": "d3363946-0aa7-43f5-b2ee-bc23387ea7a5", "line": 14, - "version": 1075, + "version": 1196, "index": 609 }, { "id": "91f8cc38-eb3c-426c-ba37-749bb88281ac", "line": 90, - "version": 1075, - "index": 3777 + "version": 1196, + "index": 3779 } ] } diff --git a/components/Footer.tsx b/components/Footer.tsx index 0a7da63..38650de 100644 --- a/components/Footer.tsx +++ b/components/Footer.tsx @@ -3,7 +3,7 @@ import NextJSIcon from "./Images/NextJSIcon"; import TailwindIcon from "./Images/TailwindIcon"; const Footer = () => ( -