From 5b6b7d29dd8050c1abc09a69d3a1d8cb156f5e30 Mon Sep 17 00:00:00 2001 From: Preston Arnold Date: Mon, 30 Mar 2026 06:06:06 +0100 Subject: [PATCH 1/6] spotlight interview: initial --- src/content.config.ts | 1 + src/data/spotlight/preston-arnold/index.md | 1 + src/pages/spotlight/[spotlightId]/index.astro | 6 ++++++ 3 files changed, 8 insertions(+) diff --git a/src/content.config.ts b/src/content.config.ts index 18d84bd..7f81882 100644 --- a/src/content.config.ts +++ b/src/content.config.ts @@ -90,6 +90,7 @@ const spotlight = defineCollection({ image: image(), ogImage: image(), date: z.coerce.date(), + interview: z.url().optional(), urlWebsite: z.url().optional(), urlGitHub: z.url().optional(), urlMastodon: z.url().optional(), diff --git a/src/data/spotlight/preston-arnold/index.md b/src/data/spotlight/preston-arnold/index.md index 0d5ab6b..8fa6bd2 100644 --- a/src/data/spotlight/preston-arnold/index.md +++ b/src/data/spotlight/preston-arnold/index.md @@ -2,6 +2,7 @@ name: "Preston Arnold" role: "Full-Stack Developer & Builder" date: "2026-03-06" +# interview: "https://spotapi.prestonarnold.uk/interviews/final-1774813511682.mp3" image: "preston.jpg" ogImage: "og.jpg" urlWebsite: "https://prestonarnold.uk/" diff --git a/src/pages/spotlight/[spotlightId]/index.astro b/src/pages/spotlight/[spotlightId]/index.astro index 4c453a1..2d44d82 100644 --- a/src/pages/spotlight/[spotlightId]/index.astro +++ b/src/pages/spotlight/[spotlightId]/index.astro @@ -37,6 +37,7 @@ const { role, date, ogImage, + interview, urlWebsite, urlGitHub, urlMastodon, @@ -65,6 +66,7 @@ const { Content, headings } = await render(entry);

{role}

+ {interview && }
    { urlWebsite ? ( @@ -370,6 +372,10 @@ const { Content, headings } = await render(entry); } } + .article__interview { + margin: 1rem 0; + } + .article__content { } From 683dbe3e3bb306b65213bfae60230c16a68938fd Mon Sep 17 00:00:00 2001 From: Preston Arnold Date: Mon, 30 Mar 2026 06:13:13 +0100 Subject: [PATCH 2/6] remove example comment --- src/data/spotlight/preston-arnold/index.md | 1 - 1 file changed, 1 deletion(-) diff --git a/src/data/spotlight/preston-arnold/index.md b/src/data/spotlight/preston-arnold/index.md index 8fa6bd2..0d5ab6b 100644 --- a/src/data/spotlight/preston-arnold/index.md +++ b/src/data/spotlight/preston-arnold/index.md @@ -2,7 +2,6 @@ name: "Preston Arnold" role: "Full-Stack Developer & Builder" date: "2026-03-06" -# interview: "https://spotapi.prestonarnold.uk/interviews/final-1774813511682.mp3" image: "preston.jpg" ogImage: "og.jpg" urlWebsite: "https://prestonarnold.uk/" From cf00875973c00a48ebc85745d86a57839285f4bc Mon Sep 17 00:00:00 2001 From: Preston Arnold Date: Mon, 30 Mar 2026 06:47:28 +0100 Subject: [PATCH 3/6] proposed custom audio player --- src/pages/spotlight/[spotlightId]/index.astro | 110 +++++++++++++++++- 1 file changed, 109 insertions(+), 1 deletion(-) diff --git a/src/pages/spotlight/[spotlightId]/index.astro b/src/pages/spotlight/[spotlightId]/index.astro index 2d44d82..a779d79 100644 --- a/src/pages/spotlight/[spotlightId]/index.astro +++ b/src/pages/spotlight/[spotlightId]/index.astro @@ -66,7 +66,20 @@ const { Content, headings } = await render(entry);

    {role}

    - {interview && } + {interview && ( +
    +
    + +
    + Interview + 0:00 +
    +
    +
    + )}
      { urlWebsite ? ( @@ -463,8 +476,103 @@ const { Content, headings } = await render(entry); display: block; } } + + .player-wrap { + margin-block-end: 0.75lh; + } + + .player { + display: inline-flex; + align-items: center; + gap: 0.75lh; + padding: 0.4lh 0.75lh 0.4lh 0.4lh; + background-color: var(--color-border); + border-radius: 999px; + } + + .player__btn { + flex-shrink: 0; + width: 2lh; + height: 2lh; + border-radius: 50%; + border: none; + background-color: var(--color-accent); + color: var(--color-bg); + cursor: pointer; + display: flex; + align-items: center; + justify-content: center; + transition: opacity 80ms; + + &:hover { + opacity: 0.8; + } + } + + .player__icon { + width: 1rem; + height: 1rem; + } + + .player__icon--pause { + display: none; + } + + .player[data-playing] .player__icon--play { + display: none; + } + + .player[data-playing] .player__icon--pause { + display: block; + } + + .player__meta { + display: flex; + flex-direction: column; + padding-inline-end: 0.25lh; + } + + .player__label { + font-size: 0.7rem; + font-weight: 600; + text-transform: uppercase; + letter-spacing: 0.07em; + color: var(--color-fg-dim); + line-height: 1.2; + } + + .player__time { + font-size: 1.1rem; + font-weight: 600; + font-variant-numeric: tabular-nums; + line-height: 1.2; + } + +