Skip to content

Commit

Permalink
ok some decent stuff maybes
Browse files Browse the repository at this point in the history
  • Loading branch information
abhishekg999 committed Sep 6, 2024
1 parent d453512 commit 470247d
Show file tree
Hide file tree
Showing 8 changed files with 104 additions and 54 deletions.
Binary file added public/background.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed public/public
Binary file not shown.
13 changes: 12 additions & 1 deletion src/app.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,18 @@ import { Router, Route } from "preact-router";
export function App() {
return (
<>
<div className="flex flex-col min-h-[100dvh]">
<div className="flex flex-col min-h-[100dvh] relative">
<div className="absolute inset-0 z-0 pointer-events-none">
<div className="absolute inset-0 bg-gradient-to-b from-transparent to-[#1a2e1a] z-10 opacity-0"></div>
<div className="absolute inset-0 bg-gradient-to-t from-transparent to-[#1a2e1a] z-10 opacity-0"></div>
<div className="absolute inset-0 bg-gradient-to-r from-transparent to-[#1a2e1a] z-10 opacity-20"></div>
<div className="absolute inset-0 bg-gradient-to-l from-transparent to-[#1a2e1a] z-10 opacity-20"></div>
<img
src="/background.jpg"
alt="Abstract background"
className="w-full h-full object-cover object-right-top opacity-40"
/>
</div>
<Navbar />
<Router>
<Route path="/" component={Home} />
Expand Down
58 changes: 32 additions & 26 deletions src/components/Home.tsx
Original file line number Diff line number Diff line change
@@ -1,39 +1,45 @@
import { routerPage } from "../signals/RouterPageSignal";
import { GithubIcon, LinkedinIcon, MailIcon } from 'lucide-preact';


const ICON_SIZE = 34;


export function Home() {
routerPage.value = "Home";

return (
<main className="flex flex-col justify-center items-center pb-12">
<section className="w-full pt-10 pb-8 flex flex-col justify-center items-center container max-w-[600px] px-4">
<div className="container flex flex-col items-center justify-center space-y-4 px-4">
<div className="text-center">
<h1 className="text-5xl font-bold tracking-tighter pt-6 text-white">
Hi, I'm Abhishek
</h1>
<div className="text-gray-300 px-4 pt-2 text-sm md:text-base lg:text-lg mb-4">
I'm a Software Developer and Computer Science
student at UC San Diego. In my free time, I am a
Capture the Flag (CTF) player specializing in web
exploitation and reverse engineering.
<>
<main className="flex-grow flex items-center justify-center p-4 relative z-20">
<section className="w-full pt-10 pb-8 flex flex-col justify-center items-center container max-w-[620px] px-4">
<div className="container flex flex-col items-center justify-center space-y-4 px-4">
<div className="text-center transition-all">
<h1 class="text-5xl font-bold tracking-tighter pt-6 text-white">Hi, I'm Abhishek</h1>
{/* <TextReveal text="Hi, I'm Abhishek" /> */}
{/* {content} */}
<div className=" text-gray-300 px-4 pt-2 text-sm md:text-base lg:text-lg mb-2">
I'm a <strong>Computer Science</strong> {" "}
student at UC San Diego, currently working as a <strong>ServiceNow Developer</strong> with IT Services at UCSD.
</div>
<div className="text-gray-300 px-4 pt-2 text-sm md:text-base lg:text-lg mb-2">
In my free time, I play CTF (Capture The Flag) competitions, specializing in <strong>Web Exploitation</strong> and <strong>Algorithms</strong>.
</div>
</div>
</div>
<div
className="container space-y-4 flex flex-col items-center bg-[url(https://images.unsplash.com/photo-1706922926159-d32db3419657?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=MnwxfDB8MXxyYW5kb218MHx8fHx8fHx8MTcwOTAxNzc4MQ&ixlib=rb-4.0.3&q=80&w=1080)] bg-[100%_auto] max-w-[60rem] max-h-[30rem] aspect-video rounded-2xl"
alt="placeholder">
</div>
</div>
</section>
</section>

</main>

<section className="flex justify-center space-x-8 py-10 ">
<a href="//github.com/abhishekg999" target="_blank" rel="noopener noreferrer" className="text-white hover:text-green-500"><GithubIcon size={ICON_SIZE} /></a>
<a href="//linkedin.com/in/abhishekgovindarasu" target="_blank" rel="noopener noreferrer" className="text-white hover:text-green-500"><LinkedinIcon size={ICON_SIZE} /></a>
<a href="mailto:[email protected]" target="_blank" rel="noopener noreferrer" className="text-white hover:text-green-500"><MailIcon size={ICON_SIZE} /></a>
</section>
</main>
);
<footer className="p-4 flex justify-center space-x-8 relative z-20">
<a href="//github.com/abhishekg999" target="_blank" rel="noopener noreferrer" className="text-white hover:text-green-400 transition-colors">
<GithubIcon size={ICON_SIZE} />
</a>
<a href="//linkedin.com/in/abhishekgovindarasu" target="_blank" rel="noopener noreferrer" className="text-white hover:text-green-400 transition-colors">
<LinkedinIcon size={ICON_SIZE} />
</a>
<a href="mailto:[email protected]" target="_blank" rel="noopener noreferrer" className="text-white hover:text-green-400 transition-colors">
<MailIcon size={ICON_SIZE} />
</a>
</footer>
</>
)
}
40 changes: 19 additions & 21 deletions src/components/Navbar.tsx
Original file line number Diff line number Diff line change
@@ -1,31 +1,29 @@
import { Link } from "preact-router";
import { routerPage } from "../signals/RouterPageSignal";

export function Navbar() {
return (
<header className="px-4 lg:px-6 h-14 flex py-2 fixed-top">

<svg

xmlns="http://www.w3.org/2000/svg"
stroke-miterlimit="10"
viewBox="0 0 1123 1072"
fill-rule="nonzero"
stroke-linecap="round"
stroke-linejoin="round"
className={`width-14 h-14 sm:w-16 sm:h-16 animated-svg ${routerPage.value !== 'Error' ? 'animated-svg-draw' : 'animate-bounce'}`}
onClick={() => {
window.location.href = "/";
}}
>
<path
d="M706.763 591.198C487.108 734.611 271.782 630.654 245.675 587.593C245.675 587.593 243.241 461.371 286.977 398.907C286.977 398.907 275.227 359.998 297.734 311.221C297.734 311.221 344.121 303.407 386.147 325.166C386.147 325.166 475.02 281.754 586.899 316.732C586.899 316.732 651.192 275.357 707.316 275.891C707.316 275.891 722.547 343.267 712.65 381.429C712.65 381.429 732.389 410.685 740.274 448.182C740.274 448.182 912.349 523.818 832.191 757.558C832.191 757.558 785.408 768.211 763.526 760.355C763.526 760.355 791.888 714.947 793.129 609.486C793.129 609.486 793.62 771.895 723.623 803.366C723.623 803.366 651.23 813.887 622.556 801.725C622.556 801.725 617.352 726.491 619.536 708.958L619.295 742.611C619.295 742.611 474.538 748.03 421.751 699.374L451.38 718.183C454.827 763.896 427.123 789.498 427.123 789.498C427.123 789.498 348.064 794.96 337.774 788.237C337.774 788.237 312.613 771.607 296.482 625.491"
/>
</svg>
<header className="px-4 lg:px-6 h-14 flex py-2 fixed-top z-50">
<Link href="/">
<svg
xmlns="http://www.w3.org/2000/svg"
stroke-miterlimit="10"
viewBox="0 0 1123 1072"
fill-rule="nonzero"
stroke-linecap="round"
stroke-linejoin="round"
className={`width-14 h-14 sm:w-16 sm:h-16 animated-svg ${routerPage.value !== 'Error' ? 'animated-svg-draw' : 'animate-bounce'}`}
>
<path
d="M706.763 591.198C487.108 734.611 271.782 630.654 245.675 587.593C245.675 587.593 243.241 461.371 286.977 398.907C286.977 398.907 275.227 359.998 297.734 311.221C297.734 311.221 344.121 303.407 386.147 325.166C386.147 325.166 475.02 281.754 586.899 316.732C586.899 316.732 651.192 275.357 707.316 275.891C707.316 275.891 722.547 343.267 712.65 381.429C712.65 381.429 732.389 410.685 740.274 448.182C740.274 448.182 912.349 523.818 832.191 757.558C832.191 757.558 785.408 768.211 763.526 760.355C763.526 760.355 791.888 714.947 793.129 609.486C793.129 609.486 793.62 771.895 723.623 803.366C723.623 803.366 651.23 813.887 622.556 801.725C622.556 801.725 617.352 726.491 619.536 708.958L619.295 742.611C619.295 742.611 474.538 748.03 421.751 699.374L451.38 718.183C454.827 763.896 427.123 789.498 427.123 789.498C427.123 789.498 348.064 794.96 337.774 788.237C337.774 788.237 312.613 771.607 296.482 625.491"
/>
</svg>
</Link>

<nav className={`ml-auto flex gap-4 sm:gap-6 p-4 text-lg font-medium ${routerPage.value !== 'Error' ? 'animation-text-fade-in-x' : ''}`}>
<a href="projects" className="hover:underline underline-offset-4">
<Link href="/projects" className="hover:underline underline-offset-4">
Projects
</a>
</Link>
<a href="/Resume_AbhishekGovindarasu.pdf" className="hover:underline underline-offset-4" target="_blank" rel="noopener noreferrer">
Resume
</a>
Expand Down
15 changes: 10 additions & 5 deletions src/components/Projects.tsx
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import { Github, ExternalLink, Lightbulb } from 'lucide-preact';
import { routerPage } from '../signals/RouterPageSignal';

type Project = {
title: string;
Expand All @@ -10,9 +11,12 @@ type Project = {
}

const ProjectCard = ({ title, description, github, liveDemo, background, tags }: Project) => (
<div className="flex flex-col bg-gray-800 rounded-2xl overflow-hidden shadow-lg transition-all duration-300 hover:shadow-2xl hover:scale-[1.01] p-4">
<div className="relative flex-1 overflow-hidden rounded-3xl">
<img src={background} alt={title} className="w-full rounded-3xl" />
<div className="flex flex-col bg-gray-800 rounded-b-xl shadow-lg transition-all duration-300 hover:shadow-2xl hover:scale-[1.01] relative">
{/* Top-left corner border */}
<div className="absolute top-0 left-0 z-[200] border-t-2 border-l-2 border-[#8ed495] w-8 md:w-16 h-8 md:h-16"></div>

<div className="relative flex-1 overflow-hidden rounded-b-xl">
<img src={background} alt={title} className="w-full rounded-b-xl" />
<div className="absolute inset-0 bg-gradient-to-b from-transparent to-[#1e2c2f97] opacity-40"></div>
<div className="absolute inset-0 bg-gradient-to-t from-transparent via-transparent to-[#08080888]"></div>
</div>
Expand All @@ -26,7 +30,7 @@ const ProjectCard = ({ title, description, github, liveDemo, background, tags }:
</span>
))}
</div>
<div className="flex gap-3">
<div className="flex gap-3 text-sm md:text-base">
<a
href={github}
target="_blank"
Expand All @@ -52,6 +56,7 @@ const ProjectCard = ({ title, description, github, liveDemo, background, tags }:


export const Projects = () => {
routerPage.value = "Projects";
const projects = [
{
title: 'What Notepad',
Expand Down Expand Up @@ -88,7 +93,7 @@ export const Projects = () => {
];

return (
<div className="min-h-screen text-white p-8">
<div className="min-h-screen text-white p-8 z-50">

<div className="container flex flex-col items-center justify-center space-y-4 px-4 pb-8 mx-auto">
<div className="text-center">
Expand Down
17 changes: 17 additions & 0 deletions src/components/TextReveal.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
export const TextReveal = ({ text }: { text: string}) => {
return (
<>
<h1 className="overflow-hidden text-5xl font-bold tracking-tighter p-6 text-white">
{text.match(/./gu)!.map((char, index) => (
<span
className={`animate-text-reveal inline-block [animation-fill-mode:backwards]`}
key={`${char}-${index}`}
style={{ animationDelay: `${index * 0.02}s` }}
>
{char === " " ? "\u00A0" : char}
</span>
))}
</h1>
</>
);
};
15 changes: 14 additions & 1 deletion tailwind.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,20 @@ export default {
"0 0px 20px rgba(255,255, 255, 0.35)",
"0 0px 65px rgba(255, 255,255, 0.2)"
]
}
},
animation: {
"text-reveal": "text-reveal .5s cubic-bezier(0.77, 0, 0.175, 1) 0.5s",
},
keyframes: {
"text-reveal": {
"0%": {
transform: "translate(0, 150%)",
},
"100%": {
transform: "translate(0, 0)",
},
},
},
},
},
variants: {
Expand Down

0 comments on commit 470247d

Please sign in to comment.