Initial portfolio commit (Next.js + Docker + Gitea integration)

This commit is contained in:
2026-02-25 11:38:31 +01:00
commit 5b7fe3545e
40 changed files with 8919 additions and 0 deletions

59
components/reveal.tsx Normal file
View File

@@ -0,0 +1,59 @@
"use client";
import { motion } from "framer-motion";
export function Reveal({
children,
delay = 0,
}: {
children: React.ReactNode;
delay?: number;
}) {
return (
<motion.div
initial={{ opacity: 0, y: 14 }}
whileInView={{ opacity: 1, y: 0 }}
viewport={{ once: true, amount: 0.25 }}
transition={{ duration: 0.45, ease: "easeOut", delay }}
>
{children}
</motion.div>
);
}
export function Stagger({
children,
}: {
children: React.ReactNode;
}) {
return (
<motion.div
initial="hidden"
whileInView="show"
viewport={{ once: true, amount: 0.2 }}
variants={{
hidden: {},
show: { transition: { staggerChildren: 0.06 } },
}}
>
{children}
</motion.div>
);
}
export function StaggerItem({ children }: { children: React.ReactNode }) {
return (
<motion.div
variants={{
hidden: { opacity: 0, y: 14 },
show: {
opacity: 1,
y: 0,
transition: { duration: 0.42, ease: "easeOut" },
},
}}
>
{children}
</motion.div>
);
}