themes-cyberpunk/blocks/glitch_hero.ninjatpl
Alex Dunmow 02a84ab31e feat(cyberpunk): Wave A build — 49 builtin overrides, 7 templates, canvas hero, seed
WO-TF-015 (game-studio / hacker-collective persona, GO-BIG motion).

- Overrides: all 49 mandatory builtin keys in templates/overrides/cyberpunk/
  (dashed keys), each restyled to neon-HUD chrome preserving builtin field
  reads + scripts. Legacy button/card/heading/text reconciled to new field
  names (label/link/style, text/media). Auth surface (auth-form,
  auth-status, password-reset-form) reproduces the builtin hardcoded HTMX
  endpoints + Cap widget verbatim. page-suggestions ships themed 404 chrome.
- Page templates: 7 (default, full-width, landing, article, blog-index,
  contact, auth), dual-mode via theme_mode, scanline overlay chrome.
- Hero override: dependency-free canvas digital-rain showpiece — lazy-init
  via IntersectionObserver, prefers-reduced-motion honored, static neon
  gradient no-JS fallback, token-derived colors only.
- Blocks: deleted 6 builtin-duplicating theme blocks (now overrides); kept
  code_neon (+ copy handler); added persona blocks glitch_hero, roster_grid,
  patch_notes with schemas + sample data.
- Presets: 5 (neon-noir, acid-rain, toxic-bloom, hotline, ghost-protocol),
  all 19 tokens, light+dark both tuned.
- Fonts: bundled OFL woff2 (Orbitron, Share Tech Mono, Inter latin subsets)
  in assets/fonts + fonts.json + LICENSES; all font-family via CSS vars.
- Email: preset-aware email-safe wrapper (tables, inline styles, colors.*).
- Master pages + demo seed (home, about, blog+3 posts, contact with
  data-table + row_inserted email-admins workflow, login).
- manifest CSS: hud-frame, clip-cut, cyberpunk-eyebrow, canvas-rain utils.
- plugin.mod + manifest required_icon_packs = [lucide, simple-icons].

make build + verify exit 0; check-safety exit 0.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-05 10:57:00 +08:00

20 lines
2.0 KiB
Plaintext

{# cyberpunk:glitch_hero — persona boot-console hero. Terminal boot lines, glitch wordmark, neon CTAs. No canvas (the builtin hero override owns the digital-rain showpiece). #}
<section data-block="cyberpunk:glitch_hero" class="relative overflow-hidden bg-background text-foreground{% if class %} {{ class }}{% endif %}">
<div aria-hidden="true" class="scanlines pointer-events-none absolute inset-0"></div>
<div class="relative z-10 mx-auto max-w-4xl px-4 py-20 md:py-28">
<div class="hud-frame rounded-md border border-primary/40 bg-card/60 p-6 md:p-10 neon-edge-magenta">
{% if bootLines %}<div class="cyberpunk-mono mb-6 space-y-1 text-sm text-muted-foreground">
{% for line in bootLines %}<div><span class="text-accent">$</span> {{ line.text }}</div>{% endfor %}
<div><span class="text-accent">$</span> <span class="caret-blink text-primary">_</span></div>
</div>{% endif %}
{% if eyebrow %}<p class="cyberpunk-eyebrow mb-3">{{ eyebrow }}</p>{% endif %}
{% if headline %}<h1 class="cyberpunk-display glitch text-4xl md:text-6xl font-bold tracking-tight" data-text="{{ headline }}">{{ headline }}</h1>{% endif %}
{% if subhead %}<p class="mt-4 max-w-2xl text-lg text-muted-foreground">{{ subhead }}</p>{% endif %}
{% if primaryLabel or secondaryLabel %}<div class="mt-8 flex flex-col sm:flex-row gap-4">
{% if primaryLabel and primaryUrl %}<a href="{{ primaryUrl }}" class="cyberpunk-mono clip-cut rgb-split inline-flex items-center justify-center gap-2 rounded-md bg-primary px-6 py-3 font-semibold uppercase tracking-wider text-primary-foreground transition-opacity hover:opacity-90">{{ primaryLabel }}</a>{% endif %}
{% if secondaryLabel and secondaryUrl %}<a href="{{ secondaryUrl }}" class="cyberpunk-mono inline-flex items-center justify-center rounded-md border border-accent/60 px-6 py-3 font-semibold uppercase tracking-wider text-accent transition-colors hover:bg-accent/10">{{ secondaryLabel }}</a>{% endif %}
</div>{% endif %}
</div>
</div>
</section>