From 8d955aa8024284c809dd5550159474251583fdf4 Mon Sep 17 00:00:00 2001 From: Jonathon Wright Date: Fri, 3 Jul 2026 19:43:45 +1000 Subject: [PATCH] facelift: the scroll story - bento capabilities, dossier cards, series badges, GitOps receipt 02 Capabilities becomes a 4-col bento (Edge AI 2x2 flagship w/ magenta corner radial, Platform wide, magenta-flavoured security tile, Observability row-completer) driven by span/flavor fields in skills.ts. 03 Selected Work becomes dossier cards: house-style SVG thumbnails (per-project motif via DossierThumb), DOSSIER/00N corner tags, 'the argument' line from the outcome field, chip tags, mono meta footer. 04 Writing cards gain the security-series badge (data/series.ts) and sit three across. Section numbers glow cyan; a circuit divider (gradient hairlines + two diamonds) closes the hero. Footer opens with the GitOps receipt - git sha + build date baked at build time via lib/build-info.ts, zero runtime calls. --- src/components/CircuitDivider.astro | 47 +++++++ src/components/DossierThumb.astro | 83 ++++++++++++ src/components/Footer.astro | 42 ++++++ src/components/Hero.astro | 20 +-- src/components/PostList.astro | 17 +++ src/components/ProjectCard.astro | 153 ++++++++++++++-------- src/components/Section.astro | 4 +- src/components/SkillGroup.astro | 192 ++++++++++++++++++---------- src/data/series.ts | 7 + src/data/skills.ts | 55 ++++---- src/lib/build-info.ts | 18 +++ src/pages/index.astro | 21 ++- src/pages/projects/index.astro | 2 +- 13 files changed, 505 insertions(+), 156 deletions(-) create mode 100644 src/components/CircuitDivider.astro create mode 100644 src/components/DossierThumb.astro create mode 100644 src/data/series.ts create mode 100644 src/lib/build-info.ts diff --git a/src/components/CircuitDivider.astro b/src/components/CircuitDivider.astro new file mode 100644 index 0000000..e7a6038 --- /dev/null +++ b/src/components/CircuitDivider.astro @@ -0,0 +1,47 @@ +--- +// Circuit divider — gradient hairlines meeting two rotated-square "diamonds" +// (cyan, magenta). Pure CSS, from the design handoff. +--- + + + + diff --git a/src/components/DossierThumb.astro b/src/components/DossierThumb.astro new file mode 100644 index 0000000..8f01210 --- /dev/null +++ b/src/components/DossierThumb.astro @@ -0,0 +1,83 @@ +--- +// House-style mini-diagram for a dossier card thumbnail. Keyed by the project's +// `diagram` frontmatter; each motif is a tiny node/line sketch in the board palette. +// Pure SVG, pulsing cores only (reduced-motion turns them off). +interface Props { + kind?: string; +} +const { kind = "generic" } = Astro.props; +--- + + + + diff --git a/src/components/Footer.astro b/src/components/Footer.astro index 8c59304..92c67df 100644 --- a/src/components/Footer.astro +++ b/src/components/Footer.astro @@ -1,12 +1,23 @@ --- import { site } from "../data/site"; import { socials } from "../data/socials"; +import { buildInfo } from "../lib/build-info"; const year = 2026; // build-stamped; bump via the build, not a runtime Date() const linkedinHref = socials.find((s) => s.label === "LinkedIn")?.href; const emailHref = socials.find((s) => s.label === "Email")?.href; ---