Replaces Hugo site with a Next.js App Router (TypeScript) build. Tailwind CSS custom terminal palette, Framer Motion scroll reveals, JetBrains Mono font, scanline/vignette overlays, typing animation. Sections: Hero, Skills, Projects, Contact. Content driven from data/resume.ts. Deploy workflow updated for static export to gh-pages. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
28 lines
650 B
TypeScript
28 lines
650 B
TypeScript
'use client'
|
|
|
|
import { motion, useInView } from 'framer-motion'
|
|
import { useRef } from 'react'
|
|
|
|
interface RevealProps {
|
|
children: React.ReactNode
|
|
delay?: number
|
|
className?: string
|
|
}
|
|
|
|
export function Reveal({ children, delay = 0, className }: RevealProps) {
|
|
const ref = useRef<HTMLDivElement>(null)
|
|
const inView = useInView(ref, { once: true, margin: '-60px' })
|
|
|
|
return (
|
|
<motion.div
|
|
ref={ref}
|
|
initial={{ opacity: 0, y: 16 }}
|
|
animate={inView ? { opacity: 1, y: 0 } : {}}
|
|
transition={{ duration: 0.55, delay, ease: [0.22, 1, 0.36, 1] }}
|
|
className={className}
|
|
>
|
|
{children}
|
|
</motion.div>
|
|
)
|
|
}
|