-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #9 from niFrizP/proyectos
mejoras en proyectos
- Loading branch information
Showing
5 changed files
with
286 additions
and
19 deletions.
There are no files selected for viewing
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,43 @@ | ||
"use client"; | ||
import { | ||
motion, | ||
useMotionTemplate, | ||
useMotionValue, | ||
useSpring, | ||
} from "framer-motion"; | ||
|
||
import { MouseEventHandler, PropsWithChildren } from "react"; | ||
|
||
export const Card: React.FC<PropsWithChildren> = ({ children }) => { | ||
const mouseX = useSpring(0, { stiffness: 500, damping: 100 }); | ||
const mouseY = useSpring(0, { stiffness: 500, damping: 100 }); | ||
|
||
function onMouseMove({ currentTarget, clientX, clientY }: any) { | ||
const { left, top } = currentTarget.getBoundingClientRect(); | ||
mouseX.set(clientX - left); | ||
mouseY.set(clientY - top); | ||
} | ||
let maskImage = useMotionTemplate`radial-gradient(400px at ${mouseX}px ${mouseY}px, white, transparent)`; | ||
let style = { maskImage, WebkitMaskImage: maskImage }; | ||
|
||
return ( | ||
<div | ||
onMouseMove={onMouseMove} | ||
className="overflow-hidden relative duration-700 border rounded-xl hover:bg-zinc-800/10 group md:gap-8 hover:border-zinc-400/50 border-zinc-600 " | ||
> | ||
<div className="pointer-events-none"> | ||
<div className="absolute inset-0 z-0 transition duration-1000 [mask-image:linear-gradient(black,transparent)]" /> | ||
<motion.div | ||
className="absolute inset-0 z-10 bg-gradient-to-br opacity-100 via-zinc-100/10 transition duration-1000 group-hover:opacity-50 " | ||
style={style} | ||
/> | ||
<motion.div | ||
className="absolute inset-0 z-10 opacity-0 mix-blend-overlay transition duration-1000 group-hover:opacity-100" | ||
style={style} | ||
/> | ||
</div> | ||
|
||
{children} | ||
</div> | ||
); | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,55 @@ | ||
"use client"; | ||
import { ArrowLeft } from "lucide-react"; | ||
import Link from "next/link"; | ||
import React, { useEffect, useRef, useState } from "react"; | ||
|
||
export const Navigation: React.FC = () => { | ||
const ref = useRef<HTMLElement>(null); | ||
const [isIntersecting, setIntersecting] = useState(true); | ||
|
||
useEffect(() => { | ||
if (!ref.current) return; | ||
const observer = new IntersectionObserver(([entry]) => | ||
setIntersecting(entry.isIntersecting), | ||
); | ||
|
||
observer.observe(ref.current); | ||
return () => observer.disconnect(); | ||
}, []); | ||
|
||
return ( | ||
<header ref={ref}> | ||
<div | ||
className={`fixed inset-x-0 top-0 z-50 backdrop-blur duration-200 border-b ${ | ||
isIntersecting | ||
? "bg-zinc-900/0 border-transparent" | ||
: "bg-zinc-900/500 border-zinc-800 " | ||
}`} | ||
> | ||
<div className="container flex flex-row-reverse items-center justify-between p-6 mx-auto"> | ||
<div className="flex justify-between gap-8"> | ||
<Link | ||
href="pages/proyectos" | ||
className="duration-200 text-zinc-400 hover:text-zinc-100" | ||
> | ||
Projects | ||
</Link> | ||
<Link | ||
href="pages/contacto" | ||
className="duration-200 text-zinc-400 hover:text-zinc-100" | ||
> | ||
Contact | ||
</Link> | ||
</div> | ||
|
||
<Link | ||
href="/" | ||
className="duration-200 text-zinc-300 hover:text-zinc-100" | ||
> | ||
<ArrowLeft className="w-6 h-6 " /> | ||
</Link> | ||
</div> | ||
</div> | ||
</header> | ||
); | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,26 +1,145 @@ | ||
import Image from 'next/image' | ||
import { Card } from '../../components/card'; | ||
import React from 'react' | ||
import Particles from '../../components/particles' | ||
import Link from 'next/link'; | ||
import { Eye } from 'lucide-react'; | ||
|
||
|
||
|
||
|
||
export default function Page() { | ||
return ( | ||
<main className="flex min-h-screen flex-col items-center justify-between p-24"> | ||
<div className="z-10 w-full max-w-5xl items-center justify-between font-mono text-sm lg:flex"> | ||
<div className="grid place-items-center"> | ||
<nav aria-label="Main" data-aria-orientation="horizontal" dir="ltr" className='relative z-10 flex flex-1 items-center justify-center rounded-full bg-[#FFFFF] py-2 px-2 shadow-3xl'> | ||
</nav> | ||
</div> | ||
</div> | ||
<div className="my-16 text-center animate-fade-in"> | ||
|
||
<h2>Proyectos | ||
</h2> | ||
</div> | ||
|
||
|
||
<div className="mb-32 grid text-center lg:mb-0 lg:grid-cols-4 lg:text-left"> | ||
<Particles className="absolute inset-0 -z-10 animate-fade-in" quantity={100}/> | ||
</div> | ||
</main> | ||
<div className="px-6 pt-16 mx-auto space-y-8 max-w-7xl lg:px-8 md:space-y-16 md:pt-24 lg:pt-32"> | ||
<div className="max-w-2xl xl-auto lg:mx-0"> | ||
<h2 className="text-3xl font-bold tracking-tight text-zinc-100 sm:text-4xl"> | ||
Proyectos | ||
</h2> | ||
<p className="mt-4 text-zinc-400"> | ||
Algunos proyectos realizados anteriormente | ||
</p> | ||
</div> | ||
<div className="w-full l-px bg-zinc-800" /> | ||
|
||
<div className="grid grid-col-auto gap-8 mx-auto lg:grid-cols-2 "> | ||
<Card> | ||
<Link href={`https://github.com/niFrizP/nextjs-portfolio-pageview-counter/blob/main/app/projects/page.tsx`}> | ||
<article className="relative w-full h-full p-4 md:p-8"> | ||
<div className="flex items-center justify-between gap-2"> | ||
<div className="text-xs text-zinc-100"> | ||
</div> | ||
<span className="flex items-center gap-1 text-xs text-zinc-500"> | ||
<Eye className="w-4 h-4" />{" "} | ||
</span> | ||
</div> | ||
|
||
<h2 id="featured-post"className="mt-4 text-3xl font-bold text-zinc-100 group-hover:text-white sm:text-4xl font-display"></h2> | ||
<p className="mt-4 leading-8 duration-150 text-zinc-400 group-hover:text-zinc-300"> | ||
</p> | ||
<div className="absolute bottom-4 md:bottom-8"> | ||
<h2>Proyecto 1</h2> | ||
<Image | ||
className="relative dark:drop-shadow-[0_0_0.3rem_#DCE1EA] dark:invert " | ||
src="/linkedin.svg" | ||
alt="Next.js Logo" | ||
width={120} | ||
height={70} | ||
priority | ||
/> | ||
<p className="hidden text-zinc-200 hover:text-zinc-50 lg:block"> | ||
Read more <span aria-hidden="true">→</span> | ||
</p> | ||
</div> | ||
</article> | ||
</Link> | ||
</Card> | ||
|
||
<div className="flex flex-col w-full gap-8 mx-auto border-t border-gray-900/10 lg:mx-0 lg:border-t-0 "> | ||
<Card> | ||
<Link href={`#`}> | ||
<article className="relative w-full h-full p-4 md:p-8"> | ||
<div className="flex items-center justify-between gap-2"> | ||
<div className="text-xs text-zinc-100"> | ||
</div> | ||
<span className="flex items-center gap-1 text-xs text-zinc-500"> | ||
<Eye className="w-4 h-4" />{" "} | ||
</span> | ||
</div> | ||
|
||
<h2 | ||
id="featured-post" | ||
className="mt-4 text-3xl font-bold text-zinc-100 group-hover:text-white sm:text-4xl font-display" | ||
> | ||
</h2> | ||
<p className="mt-4 leading-8 duration-150 text-zinc-400 group-hover:text-zinc-300"> | ||
</p> | ||
<div className="absolute bottom-4 md:bottom-8"> | ||
<p className="hidden text-zinc-200 hover:text-zinc-50 lg:block"> | ||
Read more <span aria-hidden="true">→</span> | ||
</p> | ||
</div> | ||
</article> | ||
</Link> | ||
</Card> | ||
</div> | ||
</div> | ||
<div className="grid grid-cols-1 gap-8 mx-auto lg:grid-cols-2 "> | ||
<div className="grid grid-cols-1 gap-4"> | ||
<Card> | ||
<Link href={`#`}> | ||
<article className="relative w-full h-full p-4 md:p-8"> | ||
<div className="flex items-center justify-between gap-2"> | ||
<div className="text-xs text-zinc-100"> | ||
</div> | ||
<span className="flex items-center gap-1 text-xs text-zinc-500"> | ||
<Eye className="w-4 h-4" />{" "} | ||
</span> | ||
</div> | ||
|
||
<h2 | ||
id="featured-post" | ||
className="mt-4 text-3xl font-bold text-zinc-100 group-hover:text-white sm:text-4xl font-display" | ||
> | ||
</h2> | ||
<p className="mt-4 leading-8 duration-150 text-zinc-400 group-hover:text-zinc-300"> | ||
</p> | ||
<div className="absolute bottom-4 md:bottom-8"> | ||
<p className="hidden text-zinc-200 hover:text-zinc-50 lg:block"> | ||
Read more <span aria-hidden="true">→</span> | ||
</p> | ||
</div> | ||
</article> | ||
</Link> | ||
</Card> | ||
</div> | ||
<div className="grid grid-cols-1 gap-4"> | ||
<Card> | ||
<Link href={`#`}> | ||
<article className="relative w-full h-full p-4 md:p-8"> | ||
<div className="flex items-center justify-between gap-2"> | ||
<div className="text-xs text-zinc-100"> | ||
</div> | ||
<span className="flex items-center gap-1 text-xs text-zinc-500"> | ||
<Eye className="w-4 h-4" />{" "} | ||
</span> | ||
</div> | ||
|
||
<h2 | ||
id="featured-post" | ||
className="mt-4 text-3xl font-bold text-zinc-100 group-hover:text-white sm:text-4xl font-display" | ||
> | ||
</h2> | ||
<p className="mt-4 leading-8 duration-150 text-zinc-400 group-hover:text-zinc-300"> | ||
</p> | ||
<div className="absolute bottom-4 md:bottom-8"> | ||
<p className="hidden text-zinc-200 hover:text-zinc-50 lg:block"> | ||
Read more <span aria-hidden="true">→</span> | ||
</p> | ||
</div> | ||
</article> | ||
</Link> | ||
</Card> | ||
</div> | ||
</div> | ||
</div> | ||
) | ||
} |