- hero: read styled-text fields as `field|get:"text"|default:field` so the
home hero renders (bare-string seed values were hard-erroring the block to
empty output — the "weird af header" root cause; page jumped navbar→audio).
- light-mode: add a background-token radial scrim behind the hero headline
(lightens the centre in light, darkens in dark) for legible text over the mesh.
- seed media: ship 6 licensed stock images; wire 4 as Records cover art
(chrome-liquid-metal/holographic-foil/abstract-neon/cassette) + the waveform
now-playing cover (neon-rave) + a chrome image on About.
- waveform: replace the "No audio source set yet." placeholder with a deliberate
"SIDE A // live to tape" mono transport readout.
- fonts: @font-face Orbitron/Inter/Share Tech Mono from /templates/y2k/fonts/*
+ typography refs in all presets (bundled fonts were inert dead code).
- article: expand tracking-to-tape to 10 band-journal paragraphs (kills the
~350px blog dead space).
- SVG geometry guard: explicit width/height on every sprite <use> icon +
replace ::icon:: shortcodes with sized <svg> (Tailwind JIT balloon guard).
- capture Wave B screenshots (home/about/article × light+dark, 2880×1800);
preview.png = dark home (dark-canonical theme).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- discography: kill the ballooning empty-media box — compact fixed-height
chrome tile placeholder instead of a full aspect-square gray void, and
a real CSS media-query grid (.y2k-grid-records: 1/2/4 cols) so column
count no longer depends on the host Tailwind having scanned this persona
template (it stuck at 2 cols at 1440px, making each empty square huge).
- landing: header absolute top-0 -> sticky top-0 (matches every other
page template) so the audio bar no longer collides with / underlaps
the navbar.
- waveform_player: constrain to a centered max-w-4xl column with section
padding (was edge-to-edge full-bleed) and stack on phones.
- headings: remove the wide primary text-shadow halo that read as a stray
render artifact behind every heading; tone the chrome shimmer to a faint
glint. All colours stay semantic hsl(var(--token)).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Convert the Y2K theme from a Go+templ wasm plugin to a fully codeless .bnp:
blocks/blocks.yaml + .ninjatpl, page/system templates, template overrides,
email wrapper, master pages and CSS declared in manifest.yaml. All *.go, *.templ,
*_templ.go, go.mod and go.sum deleted; schemas moved schemas/ -> blocks/.
Static parity proven 48/48 identical against the templ baseline (10 blocks x
full+empty+variant branches, 4 overrides incl. heading L1-6, email full+empty).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Replace the retired .so Makefile with the wasm/.bnp convention (build /
verify / archive-check / publish via ninja plugin build), gitignore *.so
and *.bnp artifacts, and refresh the stale [compatibility] block_core
constraint to the v0.15 era.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Add wasmguest.Serve(Registration) boilerplate and bump block/core to v0.15.2
for the .so->wasm migration. Built + published as .bnp to the dev registry.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Bootstrapped during the 2026-06-06 BlockNinja consolidation. Was previously
an unversioned directory inside ~/src/blockninja-themes/y2k.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>