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 (
)
}
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) => (
))}
)
}
// Orbit: automation as moving parts
return (
{[1, 2, 3, 4].map((ring) => (
))}
{[0, 60, 150, 230, 300].map((angle, i) => (
))}
input → ki → output
)
}