2026-02-20 17:54:09 +01:00
|
|
|
{{!< default}}
|
|
|
|
|
|
|
|
|
|
{{#author}}
|
2026-02-21 20:12:26 +01:00
|
|
|
<header class="author-header relative w-full mb-12">
|
2026-02-20 17:54:09 +01:00
|
|
|
{{#if cover_image}}
|
|
|
|
|
<div class="w-full h-64 md:h-96 relative overflow-hidden">
|
|
|
|
|
<img class="w-full h-full object-cover opacity-40 grayscale hover:grayscale-0 transition-all duration-700" src="{{img_url cover_image size="xl"}}" alt="{{name}}'s cover image">
|
|
|
|
|
<div class="absolute inset-0 bg-gradient-to-b from-transparent to-[var(--bg-primary)]"></div>
|
|
|
|
|
</div>
|
|
|
|
|
{{/if}}
|
|
|
|
|
|
|
|
|
|
<div class="container mx-auto px-4 relative {{#if cover_image}}-mt-20 md:-mt-32{{else}}pt-12{{/if}} flex flex-col items-center">
|
|
|
|
|
{{#if profile_image}}
|
|
|
|
|
<div class="relative inline-block p-1 rounded-full bg-gradient-to-tr from-[var(--brand-primary)] to-[var(--bg-secondary)] mb-6 shadow-2xl">
|
2026-02-21 20:30:03 +01:00
|
|
|
<img class="w-32 h-32 md:w-36 md:h-36 rounded-full object-cover border-4 border-[var(--bg-primary)] shadow-inner" src="{{img_url profile_image size="s"}}" alt="{{name}}'s avatar">
|
2026-02-20 17:54:09 +01:00
|
|
|
</div>
|
|
|
|
|
{{/if}}
|
|
|
|
|
|
|
|
|
|
<h1 class="text-5xl md:text-7xl font-bold tracking-tighter text-[var(--text-primary)] mb-4">{{name}}</h1>
|
|
|
|
|
|
|
|
|
|
<div class="flex flex-wrap items-center justify-center gap-4 mb-6 text-[var(--text-secondary)] font-medium">
|
|
|
|
|
{{#if location}}
|
|
|
|
|
<span class="flex items-center">
|
2026-02-22 07:59:17 +01:00
|
|
|
{{> "icons/location" class="w-4 h-4 mr-1 text-[var(--brand-primary)]"}}
|
2026-02-20 17:54:09 +01:00
|
|
|
{{location}}
|
|
|
|
|
</span>
|
|
|
|
|
{{/if}}
|
|
|
|
|
{{#if website}}
|
|
|
|
|
<a href="{{website}}" target="_blank" rel="noopener" class="fancy-link flex items-center">
|
2026-02-22 07:59:17 +01:00
|
|
|
{{> "icons/link" class="w-4 h-4 mr-1"}}
|
2026-02-20 17:54:09 +01:00
|
|
|
Website
|
|
|
|
|
</a>
|
|
|
|
|
{{/if}}
|
|
|
|
|
{{#if twitter}}
|
|
|
|
|
<a href="{{twitter_url}}" target="_blank" rel="noopener" class="fancy-link flex items-center">
|
2026-02-22 07:59:17 +01:00
|
|
|
{{> "icons/twitter" class="w-4 h-4 mr-1"}}
|
2026-02-20 17:54:09 +01:00
|
|
|
Twitter
|
|
|
|
|
</a>
|
|
|
|
|
{{/if}}
|
|
|
|
|
{{#if facebook}}
|
|
|
|
|
<a href="{{facebook_url}}" target="_blank" rel="noopener" class="fancy-link flex items-center">
|
2026-02-22 07:59:17 +01:00
|
|
|
{{> "icons/facebook" class="w-4 h-4 mr-1"}}
|
2026-02-20 17:54:09 +01:00
|
|
|
Facebook
|
|
|
|
|
</a>
|
|
|
|
|
{{/if}}
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
{{#if bio}}
|
|
|
|
|
<p class="text-xl md:text-2xl text-[var(--text-secondary)] text-center max-w-2xl font-serif italic italic leading-relaxed opacity-90 mb-8">
|
|
|
|
|
{{bio}}
|
|
|
|
|
</p>
|
|
|
|
|
{{/if}}
|
|
|
|
|
|
|
|
|
|
<div class="flex items-center text-sm font-medium uppercase tracking-[0.2em] text-[var(--text-tertiary)]">
|
|
|
|
|
<span class="inline-block w-8 h-px bg-[var(--bg-tertiary)] mr-4"></span>
|
|
|
|
|
{{plural ../pagination.total empty='No posts' singular='% post' plural='% posts'}}
|
|
|
|
|
<span class="inline-block w-8 h-px bg-[var(--bg-tertiary)] ml-4"></span>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</header>
|
|
|
|
|
{{/author}}
|
|
|
|
|
|
|
|
|
|
<div class="container mx-auto px-4 pb-20">
|
2026-02-22 08:13:20 +01:00
|
|
|
{{#if posts}}
|
|
|
|
|
{{> "post-feed"}}
|
|
|
|
|
{{else}}
|
|
|
|
|
<p class="text-center text-[var(--text-secondary)] text-2xl py-20">No posts found.</p>
|
|
|
|
|
{{/if}}
|
2026-02-20 17:54:09 +01:00
|
|
|
</div>
|