From 6169540ca092fdcdc6b65b788518ba63828922b6 Mon Sep 17 00:00:00 2001 From: Kevin Loritsch Date: Wed, 3 Sep 2025 18:46:53 -0700 Subject: [PATCH 1/2] homepage animations --- src/app/components/Footer.tsx | 2 +- src/app/components/Landing.tsx | 42 +++++++++++++++++++++++++--------- src/app/components/Navbar.tsx | 16 +++++-------- src/data/SocialData.ts | 5 ++-- 4 files changed, 41 insertions(+), 24 deletions(-) diff --git a/src/app/components/Footer.tsx b/src/app/components/Footer.tsx index 0d73755..616abd2 100644 --- a/src/app/components/Footer.tsx +++ b/src/app/components/Footer.tsx @@ -21,7 +21,7 @@ const Footer = () => { return (

© Kevin Loritsch

-

Last updated at: {lastCommit}

+

Last updated on: {lastCommit}

); }; diff --git a/src/app/components/Landing.tsx b/src/app/components/Landing.tsx index bb1761e..ccc6671 100644 --- a/src/app/components/Landing.tsx +++ b/src/app/components/Landing.tsx @@ -15,6 +15,24 @@ const hoverAnimation = { }, }; +const slideIn = (delay = 0) => ({ + initial: { opacity: 0, x: -10 }, + whileInView: { opacity: 1, x: 0 }, + transition: { duration: 0.8, delay }, +}); + +const slideLeft = { + initial: { opacity: 0, x: 50 }, + whileInView: { opacity: 1, x: 0 }, + transition: { duration: 1.0 }, +}; + +const slideRight = { + initial: { opacity: 0, x: -50 }, + whileInView: { opacity: 1, x: 0 }, + transition: { duration: 1.0 }, +}; + const Landing = () => { return (
{
{socialLinks.map(({ link, icon: Icon }, i) => ( - - - - - + + + + + + + ))}
-

+ Hi! My name is Kevin, and I am a Computer Science student at UC Riverside (Chancellor's Scholar, 4.0 GPA) with experience in software engineering, research, and teaching. -

-

+ + I'm interested in exploring work in algorithm design, AI, research, and teaching. -

+
-
+ Kevin Loritsch -
+ diff --git a/src/app/components/Navbar.tsx b/src/app/components/Navbar.tsx index a7a56f4..00d3c56 100644 --- a/src/app/components/Navbar.tsx +++ b/src/app/components/Navbar.tsx @@ -3,10 +3,8 @@ import { motion } from "motion/react"; import { Link as ScrollLink } from "react-scroll"; import Link from "next/link"; import { useState, useEffect } from "react"; -import Image from "next/image"; import navbarItems from "@/data/NavbarData"; -import profilePicture from "@/public/profilePicture.webp"; const fadeIn = (delay = 0) => ({ initial: { opacity: 0 }, @@ -45,14 +43,12 @@ const Navbar = () => { const pixels = use10vhAsPixels(); return ( -
- - Kevin Loritsch -

Kevin Loritsch

- +
+
+ +

Kevin Loritsch

+ +
{navbarItems.map(({ name, link }, i) => ( diff --git a/src/data/SocialData.ts b/src/data/SocialData.ts index d5b78d6..7e67147 100644 --- a/src/data/SocialData.ts +++ b/src/data/SocialData.ts @@ -1,4 +1,5 @@ -import { FaGithub, FaLinkedin, FaNewspaper } from "react-icons/fa"; +import { FaGithub, FaLinkedin } from "react-icons/fa"; +import { LuFileSpreadsheet } from "react-icons/lu"; import { MdOutlineMarkEmailRead } from "react-icons/md"; import { IconType } from "react-icons"; @@ -10,7 +11,7 @@ interface SocialLink { const socialLinks: SocialLink[] = [ { link: "https://github.com/Kevinloritsch", icon: FaGithub }, { link: "https://www.linkedin.com/in/kevin-loritsch/", icon: FaLinkedin }, - { link: "/KevinLoritsch_Resume.pdf", icon: FaNewspaper }, + { link: "/KevinLoritsch_Resume.pdf", icon: LuFileSpreadsheet }, { link: "mailto:klori003@ucr.edu", icon: MdOutlineMarkEmailRead }, ]; From f2101f874c7fd5e561448ad13868e26f09f51b45 Mon Sep 17 00:00:00 2001 From: Kevin Loritsch Date: Wed, 3 Sep 2025 19:17:38 -0700 Subject: [PATCH 2/2] mobile --- src/app/components/Experience.tsx | 24 ++++++++++++++++------ src/app/components/Header.tsx | 33 ++++++++++++++++++++----------- src/app/components/Landing.tsx | 29 ++++++++++++++++++--------- src/app/components/Project.tsx | 7 +++++-- src/app/components/Projects.tsx | 7 ++++--- 5 files changed, 69 insertions(+), 31 deletions(-) diff --git a/src/app/components/Experience.tsx b/src/app/components/Experience.tsx index fac196b..a35dced 100644 --- a/src/app/components/Experience.tsx +++ b/src/app/components/Experience.tsx @@ -58,9 +58,9 @@ interface experienceProps { const Experience = ({ image, name, entries }: experienceProps) => { return ( -
-
-
+
+
+
{name} @@ -72,7 +72,19 @@ const Experience = ({ image, name, entries }: experienceProps) => { />
-
+
+ + {name} + + + {name} + +
+
{entries.map(({ name, date, description }, i) => ( { >
- +

{name}

- + {date}
diff --git a/src/app/components/Header.tsx b/src/app/components/Header.tsx index 2e308fe..be132bf 100644 --- a/src/app/components/Header.tsx +++ b/src/app/components/Header.tsx @@ -14,23 +14,34 @@ const moveDown = { interface headerProps { title: string; - subtitle?: string; + subtitle1?: string; + subtitle2?: string; } -const Header = ({ title, subtitle }: headerProps) => { +const Header = ({ title, subtitle1, subtitle2 }: headerProps) => { return ( -
+
{title} - {subtitle && ( -
- + {subtitle1 && subtitle2 && ( +
+
+ +
+
+ +
)}
diff --git a/src/app/components/Landing.tsx b/src/app/components/Landing.tsx index ccc6671..470b90b 100644 --- a/src/app/components/Landing.tsx +++ b/src/app/components/Landing.tsx @@ -36,21 +36,28 @@ const slideRight = { const Landing = () => { return (
-
-
-
-

+

+
+
+ + Kevin Loritsch + +

Kevin Loritsch

-
+
{socialLinks.map(({ link, icon: Icon }, i) => ( @@ -61,17 +68,21 @@ const Landing = () => { ))}
- + + Hi! My name is Kevin, and I am a Computer Science student at UC Riverside (Chancellor's Scholar, 4.0 GPA) with experience in software engineering, research, and teaching. - + I'm interested in exploring work in algorithm design, AI, research, and teaching.
- + Kevin Loritsch
{links.map(({ icon: Icon, link }, i) => ( - - + + @@ -78,11 +78,13 @@ const Project = ({

{date}

diff --git a/src/app/components/Projects.tsx b/src/app/components/Projects.tsx index 7e0f436..c132601 100644 --- a/src/app/components/Projects.tsx +++ b/src/app/components/Projects.tsx @@ -8,12 +8,13 @@ const Projects = () => {
-
+
{projectItems.map( ({ image, title, date, description, role, techStack, links }, i) => ( -
+