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>
23 lines
2.8 KiB
Plaintext
23 lines
2.8 KiB
Plaintext
{# author-bio-hero (y2k override) — author-page header from the `authors` provider. #}
|
|
{% if author %}
|
|
<section class="relative overflow-hidden border-b border-primary/30 bg-background py-12 text-foreground md:py-16{% if class %} {{ class }}{% endif %}">
|
|
<div class="scanlines pointer-events-none absolute inset-0"></div>
|
|
<div class="relative z-10 mx-auto flex max-w-3xl flex-col items-center px-4 text-center">
|
|
{% if showAvatar and author.avatar_url %}<div class="mb-5 h-24 w-24 overflow-hidden rounded-full bg-muted ring-2 ring-primary neon-edge-magenta">{% img author.avatar_url alt=author.display_name class="h-full w-full object-cover" %}</div>{% endif %}
|
|
<h1 class="y2k-display glitch text-3xl font-bold tracking-tight md:text-4xl" data-text="{{ author.display_name }}">{{ author.display_name }}</h1>
|
|
{% if author.job_title or author.company %}<p class="y2k-mono mt-1 text-sm uppercase tracking-wide text-accent">{{ author.job_title }}{% if author.job_title and author.company %} · {% endif %}{{ author.company }}</p>{% endif %}
|
|
{% if author.bio %}<p class="y2k-body mt-4 max-w-2xl leading-relaxed text-muted-foreground">{{ author.bio }}</p>{% endif %}
|
|
<div class="mt-5 flex flex-wrap items-center justify-center gap-4 y2k-mono text-sm uppercase tracking-wide text-accent">
|
|
{% if showPostCount %}<span>{{ author.post_count|default:0 }} post{% if author.post_count != 1 %}s{% endif %}</span>{% endif %}
|
|
{% if author.location %}<span>{{ author.location }}</span>{% endif %}
|
|
</div>
|
|
{% if showSocial %}<div class="mt-5 flex items-center justify-center gap-3">
|
|
{% if author.website_url %}<a href="{{ author.website_url }}" target="_blank" rel="noopener noreferrer" class="text-muted-foreground transition-colors hover:text-primary" title="Website"><svg class="h-5 w-5" aria-hidden="true"><use href="/icons/lucide.svg#globe"></use></svg></a>{% endif %}
|
|
{% if author.twitter_handle %}<a href="https://twitter.com/{{ author.twitter_handle|cut:"@" }}" target="_blank" rel="noopener noreferrer" class="text-muted-foreground transition-colors hover:text-primary" title="Twitter"><svg class="h-5 w-5" aria-hidden="true"><use href="/icons/simple-icons.svg#x"></use></svg></a>{% endif %}
|
|
{% if author.linkedin_url %}<a href="{{ author.linkedin_url }}" target="_blank" rel="noopener noreferrer" class="text-muted-foreground transition-colors hover:text-primary" title="LinkedIn"><svg class="h-5 w-5" aria-hidden="true"><use href="/icons/simple-icons.svg#linkedin"></use></svg></a>{% endif %}
|
|
{% if author.github_url %}<a href="{{ author.github_url }}" target="_blank" rel="noopener noreferrer" class="text-muted-foreground transition-colors hover:text-primary" title="GitHub"><svg class="h-5 w-5" aria-hidden="true"><use href="/icons/simple-icons.svg#github"></use></svg></a>{% endif %}
|
|
</div>{% endif %}
|
|
</div>
|
|
</section>
|
|
{% endif %}
|