diff --git a/public/covers/thumb/edge-ai-platform.webp b/public/covers/thumb/edge-ai-platform.webp new file mode 100644 index 0000000..1f74370 Binary files /dev/null and b/public/covers/thumb/edge-ai-platform.webp differ diff --git a/public/covers/thumb/global-infra-modernisation.webp b/public/covers/thumb/global-infra-modernisation.webp new file mode 100644 index 0000000..0699c9c Binary files /dev/null and b/public/covers/thumb/global-infra-modernisation.webp differ diff --git a/public/covers/thumb/gpu-as-code.webp b/public/covers/thumb/gpu-as-code.webp new file mode 100644 index 0000000..55b6d63 Binary files /dev/null and b/public/covers/thumb/gpu-as-code.webp differ diff --git a/public/covers/thumb/iac-fleet-automation.webp b/public/covers/thumb/iac-fleet-automation.webp new file mode 100644 index 0000000..4cf95cf Binary files /dev/null and b/public/covers/thumb/iac-fleet-automation.webp differ diff --git a/public/covers/thumb/network-automation-fleet.webp b/public/covers/thumb/network-automation-fleet.webp new file mode 100644 index 0000000..61103e1 Binary files /dev/null and b/public/covers/thumb/network-automation-fleet.webp differ diff --git a/public/covers/thumb/self-hosted-ai-homelab.webp b/public/covers/thumb/self-hosted-ai-homelab.webp new file mode 100644 index 0000000..fe4b02c Binary files /dev/null and b/public/covers/thumb/self-hosted-ai-homelab.webp differ diff --git a/src/components/ProjectCard.astro b/src/components/ProjectCard.astro index aab58b1..3977c6d 100644 --- a/src/components/ProjectCard.astro +++ b/src/components/ProjectCard.astro @@ -17,7 +17,17 @@ const dossierNo = String(index).padStart(3, "0");
- + {p.cover + ? + : } DOSSIER / {dossierNo}
@@ -63,8 +73,30 @@ const dossierNo = String(index).padStart(3, "0"); height: 180px; background: #0b101c; position: relative; + overflow: hidden; border-bottom: 1px solid rgba(63, 186, 245, 0.12); } + /* Cover art fills the thumb; the corner tag sits over it, so a scrim keeps + the tag legible against the brighter parts of the art. */ + .dossier__cover { + width: 100%; + height: 100%; + object-fit: cover; + display: block; + transition: transform 320ms var(--ease); + } + .dossier:hover .dossier__cover { + transform: scale(1.04); + } + .dossier__thumb:has(.dossier__cover)::after { + content: ""; + position: absolute; + inset: 0 auto auto 0; + width: 60%; + height: 46px; + background: linear-gradient(160deg, rgba(9, 12, 20, 0.85), transparent 78%); + pointer-events: none; + } :global([data-theme="light"]) .dossier__thumb { background: var(--surface-2); border-bottom-color: var(--border-accent);