5 Commits

Author SHA1 Message Date
Alex Dunmow
47776c0b6f feat(y2k): remediation — fix hero, light-mode contrast, seed media, fonts, article
- 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>
2026-07-06 20:33:51 +08:00
Alex Dunmow
43a2e3dce4 refactor: replace hand-rolled utility CSS with Tailwind classes (host build now scans theme templates)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-05 17:54:30 +08:00
Alex Dunmow
b05ecf145d fix(y2k): remediate home whitespace + mobile responsiveness
- 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>
2026-07-05 17:16:40 +08:00
Alex Dunmow
ed85f673f4 feat(y2k): Wave A theme-fleet build — 49 overrides, 7 templates, band persona (WO-TF-026)
Rebuild the y2k theme to the OVERRIDE-CONTRACT (frozen cms a0f07e2ae) with the
locked musician/band persona: liquid chrome, frosted-plastic bevels, gradient
mesh, marquees, glitter, a webring, and a dependency-free canvas metaball hero.

- All 49 mandatory builtin overrides in templates/overrides/y2k/ + manifest
  template_overrides; every content/provider field preserved from the frozen
  builtin default, only the chrome re-skinned (legacy button/card field reads
  already reconciled to link/style/label + text/media).
- 7 page templates: default, full-width, landing, article, blog-index, contact,
  auth — chrome header, glitter backdrop, chrome footer.
- Hero override ships a GO-BIG canvas liquid-chrome metaball showpiece
  (hero/landing only): lazy-init on view, prefers-reduced-motion honored, static
  chrome-mesh no-JS fallback, dependency-free.
- Persona blocks (5): waveform_player, tracklist, tour_dates, discography,
  webring_badge. Duplicating theme blocks became overrides; nft_gallery DELETED
  per WO.
- 5 dual-mode presets (frosted iMac plastic light + rave blacklight dark), all
  19 tokens, mode both, tuned dark.
- Bundled OFL fonts (Orbitron / Inter / Share Tech Mono) with licenses; all
  font-family via var(--font-heading|body|mono, fallback). Updated
  RECOMMENDED_FONTS/ICONS; required_icon_packs declared.
- Themed email-safe wrapper (tables, inline styles, chrome header, marquee
  footer). Master pages + demo seed (home/about/blog x3/contact/login) in band
  voice; contact form wired to seeded contact_submissions + row_inserted
  email-admins workflow.

Known platform gaps (OVERRIDE-CONTRACT §11/§12, unchanged): auth trio +
page-suggestions don't dispatch overrides yet; provider-backed overrides render
empty live lists until the codeless loader registers template sources. Files
authored faithful to builtin field/provider names; they light up when the cms
fix lands. Visual quality UNVERIFIED until Wave B.

Gates: `make` exit 0 (codeless y2k-0.2.0.bnp), `ninja plugin verify` OK,
check-safety exit 0.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-05 12:58:43 +08:00
Alex Dunmow
a86a54639a feat: convert to codeless .bnp — templates + manifest, Go/templ deleted (WO-WZ-021)
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>
2026-07-04 15:10:52 +08:00