"use client"; import { useScroll, useTransform, motion } from "motion/react"; import React, { useEffect, useRef, useState } from "react"; import { colors } from "@/lib/colors"; interface TimelineEntry { title: string; content: React.ReactNode; } export const Timeline = ({ data }: { data: TimelineEntry[] }) => { const ref = useRef(null); const containerRef = useRef(null); const [height, setHeight] = useState(0); useEffect(() => { if (ref.current) { const rect = ref.current.getBoundingClientRect(); setHeight(rect.height); } }, [ref]); const { scrollYProgress } = useScroll({ target: containerRef, offset: ["start 10%", "end 50%"], }); const heightTransform = useTransform(scrollYProgress, [0, 1], [0, height]); const opacityTransform = useTransform(scrollYProgress, [0, 0.1], [0, 1]); return (

Unser Projektfahrplan im Überblick

Schritt für Schritt zur erfolgreichen Website – transparent, strukturiert und begleitet von unserem Team.

{data.map((item, index) => (

{item.title}

{item.title}

{item.content}{" "}
))}
); };