--- import Icon from "./Icon.astro"; import type { Project } from "../data/content"; const STATUS: Record = { live: { label: "en ligne", color: "var(--accent)" }, dev: { label: "en développement", color: "var(--warn)" }, archived: { label: "archivé", color: "var(--text-dim)" }, oss: { label: "open-source", color: "var(--info)" }, }; interface Props { project: Project; } const { project: p } = Astro.props; const st = STATUS[p.status]; const mono = p.title.replace(/[^A-Za-z0-9]/g, "").slice(0, 2); // Toute la carte devient cliquable (nouvel onglet) dès qu'un lien est défini. const Tag = p.link ? "a" : "article"; const linkAttrs = p.link ? { href: p.link, target: "_blank", rel: "noopener", "aria-label": `${p.title}, voir le projet (nouvel onglet)` } : {}; ---
{p.img ? ( <> {p.title} {p.imgDark && {p.title}} ) : (
{mono}
)}
{st.label} {p.link && ( )}

{p.title}

{p.subtitle}

{p.desc}

{p.stack.map((s) => {s})}