Skip to content

design(site): light-mode god rays, real-asset downloads, hero Windows button, OG card#184

Merged
stuffbucket merged 8 commits into
mainfrom
design/site-godrays-lightmode-windows
Jun 25, 2026
Merged

design(site): light-mode god rays, real-asset downloads, hero Windows button, OG card#184
stuffbucket merged 8 commits into
mainfrom
design/site-godrays-lightmode-windows

Conversation

@stuffbucket

Copy link
Copy Markdown
Owner

Site fixes + polish for the landing page (mxml.sh / GitHub Pages). All scoped to site/; design(site): so it doesn't trigger a release bump.

Light mode

  • God rays now render in both themes. The canvas is transparent (premultiplied alpha) so the warm-paper page shows through the gaps, and a uLight-adapted shader draws deeper/softer shafts on paper while keeping the dark-mode glow unchanged. Removes the display:none light-mode gate that left light mode flat.

Downloads reflect the latest build + correct assets

  • Both buttons resolve from the release's actual asset list (no filename guessing): macOS → the real …-darwin-arm64.dmg, Windows → the …-setup.exe. Convention fallback only for pinned builds.
  • Windows button lights up and links to the installer when a *-setup.exe exists, else an inert "coming soon" chip.
  • Release lookup is force-revalidated (no-cache headers + per-build cache-buster) so a release-day rebuild can't ship links for a stale/older build.

Hero

  • Hero card now shows both macOS (.dmg) and Windows (.exe) download buttons (drops the old OS-detection swap script).

Link-unfurl (OG) card

  • Open Graph / Twitter meta point at a generated screenshot of the hero card (public/og.png) instead of unfurlers grabbing the inline dashboard image. Head-only; invisible to the page.
  • Added scripts/gen-og.mjs (Playwright) + bun run og to regenerate it. The capture composes a clean, centered card (no buttons) on the god-ray backdrop — centering matters so the card covers the shader's central fade zone (no "black box").

Misc

  • Cursor-reflection coat interaction disabled for now (flag-gated, code retained).

Verified: site builds green, 0 em-dashes, both download links resolve to the live v0.4.35 assets, OG image renders cleanly in both the buttoned and clean compositions.

- God rays now render in light mode too: a transparent (premultiplied-alpha) canvas lets the warm-paper page show through the gaps, and a uLight-adapted shader draws deeper, softer shafts on paper while keeping the dark-mode glow unchanged
- Pick up the release's Windows *-setup.exe from the resolved asset list: the Get Started and hero download buttons light up and link to the installer when one exists, and stay an inert 'coming soon' chip otherwise
- Disable the cursor-reflection coat interaction for now (gated behind a flag, code left in place)
A deploy fired minutes after a publish could resolve a release whose
just-attached assets (notably the Windows *-setup.exe) were missing from
a CDN-cached releases/latest body — the runner's region kept serving a
stale response well past its 60s s-maxage. The page then shipped a
'coming soon' Windows chip for a build that actually exists. Force
revalidation with no-cache headers + a per-build cache-buster query
param so the build always sees current release state.
…ease lookup

- macOS now links to the real .dmg from the release asset list (prefer arm64), matching how Windows resolves its *-setup.exe, with the conventional filename only as a pinned-build fallback. Both buttons link to the correct asset for the latest build.
- Force-revalidate the GitHub releases lookup (no-cache headers + per-build cache-buster) so a release-day rebuild can't resolve a stale CDN body and ship links for an older build or miss just-attached assets.
…nk unfurls

- Hero now shows both macOS (.dmg) and Windows (.exe) download buttons, resolved from the latest release; Windows falls back to a 'coming soon' chip when no installer is attached. Drops the now-redundant OS-detection swap script.
- Add an Open Graph / Twitter card pointing at a generated screenshot of the hero card (public/og.png), so link unfurlers use the brand hero instead of grabbing the inline dashboard screenshot. Meta-only, invisible to the page.
- Add scripts/gen-og.mjs (Playwright) + a 'bun run og' script to regenerate the hero screenshot against a running dev/preview server.
Compose the capture in gen-og.mjs: hide the download buttons, typing caret, the rest of the page, and the dock, and pad the top so the hero card centers on the god-ray backdrop. Affects only the generated screenshot, not the live page.
Hide the hero download buttons with visibility:hidden (not display:none) when composing the OG screenshot, so the card keeps full height and covers the god-rays' central fade zone instead of exposing it as a dark box below the card.
…ray source

Pin the hero dead-centre at a generous size for the capture and dispatch a resize so the god-rays light re-anchors to it. A card centred on the light source, with half-height beyond the shader's central fade radius, fully covers the dark convergence zone — no dark strip below the card.
…ightmode-windows

# Conflicts:
#	site/src/components/markdoc/Hero.astro
#	site/src/lib/downloads.ts
@stuffbucket stuffbucket merged commit 7d76c5b into main Jun 25, 2026
3 checks passed
@stuffbucket stuffbucket deleted the design/site-godrays-lightmode-windows branch June 25, 2026 01:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant