import Image from "next/image" import type { Project } from "@/modules/landingPage/data/content" /** * Abstract stand-in visuals until real screenshots exist. * Each project gets its own composition so the track does not feel repetitive. */ export function ProjectVisual({ project, index }: { project: Project; index: number }) { if (project.image) { return ( {project.image.alt} ) } const variant = index % 3 if (variant === 0) { // Typography poster, sized so the longest word always fits the card const words = project.title.split(" ") const longest = Math.max(...words.map((word) => word.length)) const fontSize = Math.min(14, 70 / (longest * 0.5)) return (
{words.map((word, i) => ( {word} ))}
) } if (variant === 1) { // Interface skeleton return (
{Array.from({ length: 6 }).map((_, i) => (
))}
{["128", "4.2k", "99%"].map((value) => (

{value}

))}
) } // Orbit: automation as moving parts return (
{[1, 2, 3, 4].map((ring) => (
))} {[0, 60, 150, 230, 300].map((angle, i) => (
))}

input → ki → output

) }