main #4

Merged
pablo merged 10 commits from main into dev 2025-03-16 14:38:13 +00:00
5 changed files with 19 additions and 34 deletions
Showing only changes of commit 2d494e0bb1 - Show all commits

View File

@ -6,7 +6,7 @@ function Layout({ children }: { children: JSX.Element }) {
return ( return (
<div className="space-y-4 "> <div className="space-y-4 ">
<Navbar /> <Navbar />
<main className="container min-h-screen py-20"> <main className="container min-h-screen py-4">
{children} {children}
{/* <div className="absolute w-1 h-screen top-0 left-1/2 -translate-x-1/2 transform bg-foreground" /> */} {/* <div className="absolute w-1 h-screen top-0 left-1/2 -translate-x-1/2 transform bg-foreground" /> */}

View File

@ -48,7 +48,7 @@ function ContactForm() {
return ( return (
<Form {...form}> <Form {...form}>
<form onSubmit={form.handleSubmit(onSubmit)} className="space-y-8"> <form onSubmit={form.handleSubmit(onSubmit)} className="space-y-8">
<div className="flex gap-4 w-full"> <div className="flex flex-col md:flex-row gap-4 w-full">
<FormField <FormField
control={form.control} control={form.control}
name="name" name="name"

View File

@ -13,11 +13,13 @@ function Heading({
return ( return (
<h2 <h2
className={cn( className={cn(
"text-5xl lg:text-8xl text-center md:text-left pb-4 font-black bg-background", "text-6xl lg:text-8xl text-center md:text-left pb-4 font-black bg-background",
className className
)} )}
> >
<span className="text-muted-foreground">{subTitle}</span> <span className="text-muted-foreground text-5xl lg:text-7xl">
{subTitle}
</span>
<br /> <br />
{title} {title}
</h2> </h2>

View File

@ -33,24 +33,18 @@ const icons = {
), ),
}; };
function MeCard({ function MeCard({ className }: { className?: string }) {
className,
button,
}: {
button: { label: string; link: string };
className?: string;
}) {
return ( return (
<div <div
className={cn( className={cn(
`group overflow-hidden w-full max-w-xs h-[80vh] bg-muted `group overflow-hidden w-full max-w-xs h-[28rem] bg-muted
rounded-xl space-y-8 p-4 flex flex-col rounded-xl space-y-8 p-4 flex flex-col
justify-between pb-20 relative`, justify-between pb-20 relative`,
className className
)} )}
> >
<div className="space-y-4"> <div className="space-y-4">
<div className="h-64 w-3/4 mx-auto relative rounded-xl overflow-hidden z-10"> <div className="h-52 w-3/4 mx-auto relative rounded-xl overflow-hidden z-10">
<Image src="/me.jpg" alt="me" fill className="object-cover " /> <Image src="/me.jpg" alt="me" fill className="object-cover " />
</div> </div>
@ -79,8 +73,8 @@ function MeCard({
</div> </div>
</div> </div>
<p className="text-center text-muted-foreground text-sm md:text-lg font-bold"> <p className="text-center text-muted-foreground text-lg font-bold">
A Software Engineer who has developed countless innovative solutions. Web Developer
</p> </p>
<div className="w-full h-40 halftone absolute left-0 group-hover:scale-[102.5%] transition-all duration-300 top-0 z-0" /> <div className="w-full h-40 halftone absolute left-0 group-hover:scale-[102.5%] transition-all duration-300 top-0 z-0" />

View File

@ -7,14 +7,9 @@ import MeCard from "../me-card";
import Heading from "../heading"; import Heading from "../heading";
const ProjectCard = (p: Project) => ( const ProjectCard = (p: Project) => (
<Link <Link href={p.link} target="_blank">
href={p.link} <div className="group max-w-xs lg:max-w-none mx-auto md:mx-0 flex flex-col lg:flex-row items-center gap-4 cursor-pointer hover:bg-muted w-full rounded-xl relative">
className="flex gap-12 items-center w-full group" <div className="h-40 w-full lg:max-w-32 relative rounded-xl overflow-hidden">
target="_blank"
>
{/* <div className="font-serif text-muted-foreground w-20">{`[ ${p.year} ]`}</div> */}
<div className="flex items-center gap-4 cursor-pointer hover:bg-muted w-full rounded-xl relative">
<div className="h-40 w-full max-w-32 relative rounded-xl overflow-hidden">
<Image <Image
src={p.image} src={p.image}
alt="project-image" alt="project-image"
@ -22,7 +17,7 @@ const ProjectCard = (p: Project) => (
className="object-cover" className="object-cover"
/> />
</div> </div>
<div className="space-y-1 w-full"> <div className="space-y-1 w-full p-4">
<span className="text-xs text-muted-foreground ">{`[ ${p.year} ]`}</span> <span className="text-xs text-muted-foreground ">{`[ ${p.year} ]`}</span>
<h3 className="text-2xl md:text-3xl font-black">{p.name}</h3> <h3 className="text-2xl md:text-3xl font-black">{p.name}</h3>
<p className="text-muted-foreground text-sm md:text-lg"> <p className="text-muted-foreground text-sm md:text-lg">
@ -30,28 +25,22 @@ const ProjectCard = (p: Project) => (
</p> </p>
</div> </div>
<ArrowRight className="size-6 text-primary absolute right-4 top-8 -rotate-45 group-hover:-translate-y-4 group-hover:translate-x-2 transition-all duration-300" /> <ArrowRight className="size-6 text-primary absolute bottom-4 right-4 lg:top-8 -rotate-45 group-hover:-translate-y-4 group-hover:translate-x-2 transition-all duration-300" />
</div> </div>
</Link> </Link>
); );
function Projects() { function Projects() {
return ( return (
<div className="flex flex-col lg:flex-row gap-8 container lg:px-20"> <div className="flex flex-col md:flex-row gap-8 container lg:px-20">
<MeCard <MeCard className="mx-auto order-last md:order-first md:sticky md:top-20" />
className="mx-auto order-last lg:order-first lg:sticky lg:top-20"
button={{
label: "Contact Me",
link: "/contact",
}}
/>
<div className="space-y-8 w-full p-4"> <div className="space-y-8 w-full p-4">
<Heading <Heading
title="Projects" title="Projects"
subTitle="Recent" subTitle="Recent"
// className="sticky top-0 z-50 pb-6" // className="sticky top-0 z-50 pb-6"
/> />
<menu className=" flex flex-col items-center gap-8 pb-20 w-full"> <menu className=" flex flex-col items-center gap-8 lg:pb-20 w-full">
{projects.map((p) => ( {projects.map((p) => (
<li key={p.link} className="w-full"> <li key={p.link} className="w-full">
<ProjectCard {...p} /> <ProjectCard {...p} />