- 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>
30 lines
2.3 KiB
Plaintext
30 lines
2.3 KiB
Plaintext
{# y2k:discography — grid of releases with cover art, year, format, and a link. #}
|
|
<section data-block="y2k:discography" class="py-12 md:py-16 bg-background text-foreground{% if class %} {{ class }}{% endif %}">
|
|
<div class="mx-auto max-w-6xl px-4">
|
|
{% if heading %}<h2 class="y2k-display glitch text-2xl font-semibold tracking-tight md:text-3xl" data-text="{{ heading }}">{{ heading }}</h2>{% endif %}
|
|
{% if releases %}
|
|
<div class="mt-8 grid grid-cols-1 gap-6 sm:grid-cols-2 lg:grid-cols-4">
|
|
{% for release in releases %}
|
|
<article class="y2k-bevel y2k-card y2k-glow group overflow-hidden bg-card text-card-foreground">
|
|
{% if release.cover %}
|
|
<div class="aspect-square overflow-hidden bg-muted">
|
|
{% if release.link %}<a href="{{ release.link }}" class="block h-full w-full">{% img release.cover alt=release.title class="h-full w-full object-cover transition-transform duration-300 group-hover:scale-105" %}</a>{% else %}{% img release.cover alt=release.title class="h-full w-full object-cover" %}{% endif %}
|
|
</div>
|
|
{% else %}
|
|
<div class="flex h-44 items-center justify-center y2k-chrome-bg text-muted-foreground">
|
|
{% if release.link %}<a href="{{ release.link }}" class="flex h-full w-full items-center justify-center" aria-label="{{ release.title }}"><svg width="48" height="48" class="h-12 w-12" aria-hidden="true"><use href="/icons/lucide.svg#disc"></use></svg></a>{% else %}<svg width="48" height="48" class="h-12 w-12" aria-hidden="true"><use href="/icons/lucide.svg#disc"></use></svg>{% endif %}
|
|
</div>
|
|
{% endif %}
|
|
<div class="p-3">
|
|
{% if release.title %}<h3 class="y2k-heading truncate text-sm text-foreground">{% if release.link %}<a href="{{ release.link }}" class="hover:underline">{{ release.title }}</a>{% else %}{{ release.title }}{% endif %}</h3>{% endif %}
|
|
<p class="y2k-mono mt-1 flex items-center gap-2 text-xs uppercase tracking-wide text-muted-foreground">{% if release.year %}<span>{{ release.year }}</span>{% endif %}{% if release.format %}<span class="text-primary">{{ release.format }}</span>{% endif %}</p>
|
|
</div>
|
|
</article>
|
|
{% endfor %}
|
|
</div>
|
|
{% else %}
|
|
<p class="y2k-mono mt-8 text-muted-foreground">No releases yet.</p>
|
|
{% endif %}
|
|
</div>
|
|
</section>
|