"use client"; import { useState } from "react"; import type { Mod } from "@/data/content"; import "../styles/mods.css"; type Props = { mod: Mod; visible?: boolean; }; /** One mod: the list item card inside a game's mod list. */ export default function ModCard({ mod, visible = true }: Props) { const [hovered, setHovered] = useState(false); return ( setHovered(true)} onMouseLeave={() => setHovered(false)} style={{ background: hovered ? "var(--surface-hover)" : "var(--surface)", border: `1px solid ${hovered ? "var(--accent)" : "var(--border)"}`, transform: visible ? (hovered ? "translateY(-2px)" : "none") : "translateY(8px)", opacity: visible ? 1 : 0, boxShadow: hovered ? "var(--shadow-md)" : "none", }} >
{mod.title} {mod.version && v{mod.version}}

{mod.description}

{mod.tags && mod.tags.length > 0 && (
{mod.tags.map((tag) => ( {tag} ))}
)} {mod.linkLabel ?? "Repository"}
); }