Downloaded theme
This commit is contained in:
94
themes/minimal-black/layouts/partials/home/hero.html
Normal file
94
themes/minimal-black/layouts/partials/home/hero.html
Normal file
@@ -0,0 +1,94 @@
|
||||
{{- $hero := .Site.Params.hero -}}
|
||||
|
||||
<div class="grid gap-8 md:grid-cols-[minmax(0,2fr)_minmax(0,1.2fr)] items-start">
|
||||
<div class="space-y-5 animate-fade-up">
|
||||
<!-- Badge + availability -->
|
||||
<div class="flex flex-wrap items-center gap-4">
|
||||
{{ with $hero.badge }}
|
||||
<p class="eyebrow font-medium text-sm text-accent">{{ . }}</p>
|
||||
{{ end }}
|
||||
|
||||
{{ if $hero.available }}
|
||||
<span class="badge-available px-3">
|
||||
<span class="h-1.5 w-1.5 rounded-full bg-white/95"></span>
|
||||
<span>{{ default "Available for work" $hero.availableLabel }}</span>
|
||||
</span>
|
||||
{{ end }}
|
||||
</div>
|
||||
|
||||
<div class="space-y-2">
|
||||
<h1 class="heading-page text-3xl sm:text-4xl">
|
||||
{{ default "Hi, I’m Your Name." $hero.title }}
|
||||
</h1>
|
||||
{{ with $hero.role }}
|
||||
<p class="text-sm font-medium text-muted">
|
||||
{{ . }}
|
||||
</p>
|
||||
{{ end }}
|
||||
</div>
|
||||
|
||||
{{ with $hero.summary }}
|
||||
<p class="max-w-xl text-sm text-muted">
|
||||
{{ . }}
|
||||
</p>
|
||||
{{ end }}
|
||||
|
||||
<!-- Meta row: location + focus -->
|
||||
<div class="mt-3 flex flex-wrap gap-2 text-[0.7rem] text-muted">
|
||||
{{ with $hero.location }}
|
||||
<span class="inline-flex items-center gap-1.5 rounded-full border border-border bg-surface/90 px-3 py-1.5">
|
||||
<i class="fa-solid fa-location-dot text-[0.8rem]"></i>
|
||||
<span class="font-medium">{{ . }}</span>
|
||||
</span>
|
||||
{{ end }}
|
||||
|
||||
{{ with $hero.focus }}
|
||||
<span class="inline-flex items-center gap-1.5 rounded-full border border-border bg-surface/80 px-3 py-1.5">
|
||||
<i class="fa-regular fa-circle-dot text-[0.8rem]"></i>
|
||||
<span>{{ . }}</span>
|
||||
</span>
|
||||
{{ end }}
|
||||
</div>
|
||||
|
||||
<!-- Optional highlight pills -->
|
||||
{{ with $hero.highlights }}
|
||||
<div class="mt-3 flex flex-wrap gap-2">
|
||||
{{ range . }}
|
||||
<span class="inline-flex items-center rounded-full border border-border bg-surface/80 px-3 py-1 text-[0.7rem] text-muted">
|
||||
{{ .label }}
|
||||
</span>
|
||||
{{ end }}
|
||||
</div>
|
||||
{{ end }}
|
||||
|
||||
<!-- CTAs -->
|
||||
<div class="mt-4 flex flex-wrap items-center gap-3">
|
||||
{{ with $hero.primary }}
|
||||
<a href="{{ .href | default "/projects/" }}" class="btn-primary">
|
||||
{{ .label | default "View projects" }}
|
||||
</a>
|
||||
{{ end }}
|
||||
|
||||
{{ with $hero.secondary }}
|
||||
<a href="{{ .href | default "/blog/" }}" class="btn-ghost link-underline">
|
||||
{{ .label | default "Read the blog" }}
|
||||
</a>
|
||||
{{ end }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Avatar ONLY if provided -->
|
||||
{{ with $hero.avatar }}
|
||||
<div class="order-first md:order-none">
|
||||
<div class="card card-pad flex items-center justify-center md:justify-end">
|
||||
<div class="h-24 w-24 sm:h-28 sm:w-28 overflow-hidden rounded-2xl border border-border bg-surface shadow-md">
|
||||
<img
|
||||
src="{{ . | relURL }}"
|
||||
alt="{{ $hero.title | default $.Site.Title }}"
|
||||
class="h-full w-full object-cover"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{{ end }}
|
||||
</div>
|
||||
28
themes/minimal-black/layouts/partials/home/now.html
Normal file
28
themes/minimal-black/layouts/partials/home/now.html
Normal file
@@ -0,0 +1,28 @@
|
||||
{{- $hero := .Site.Params.hero -}}
|
||||
{{- $home := .Site.Params.home -}}
|
||||
|
||||
{{ if $home.showNowSection }}
|
||||
<div class="space-y-4">
|
||||
<div class="space-y-3">
|
||||
<h2 class="heading-section">{{ default "Now" $hero.nowLabel }}</h2>
|
||||
<div class="card card-pad text-xs text-muted">
|
||||
{{ with $hero.nowIntro }}
|
||||
<p class="mb-2">{{ . }}</p>
|
||||
{{ end }}
|
||||
|
||||
{{ with $hero.now }}
|
||||
<ul class="list-disc space-y-1 pl-4">
|
||||
{{ range . }}
|
||||
<li>{{ . }}</li>
|
||||
{{ end }}
|
||||
</ul>
|
||||
{{ else }}
|
||||
<p>
|
||||
Add a <code>hero.now</code> list in your config to describe what you’re
|
||||
focused on right now.
|
||||
</p>
|
||||
{{ end }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{{ end }}
|
||||
38
themes/minimal-black/layouts/partials/home/posts.html
Normal file
38
themes/minimal-black/layouts/partials/home/posts.html
Normal file
@@ -0,0 +1,38 @@
|
||||
{{- $home := .Site.Params.home -}}
|
||||
{{ if ne $home.showLatestPosts false }}
|
||||
<div class="space-y-3 animate-fade-up">
|
||||
<div class="space-y-1">
|
||||
<h2 class="heading-section">
|
||||
{{ default "Latest writing" $home.blogTitle }}
|
||||
</h2>
|
||||
{{ with $home.blogSubtitle }}
|
||||
<p class="text-xs text-muted">
|
||||
{{ . }}
|
||||
</p>
|
||||
{{ end }}
|
||||
</div>
|
||||
|
||||
{{ $limit := cond (gt (int $home.latestPostsLimit) 0) (int $home.latestPostsLimit) 3 }}
|
||||
{{ $posts := first $limit (where .Site.RegularPages "Section" "blog") }}
|
||||
|
||||
<div class="grid gap-4 md:grid-cols-2">
|
||||
{{ range $posts }}
|
||||
{{ partial "components/post-card.html" (dict "Page" . "Root" $) }}
|
||||
{{ else }}
|
||||
<p class="text-xs text-muted">
|
||||
No posts yet. Add some under <code>content/blog</code>.
|
||||
</p>
|
||||
{{ end }}
|
||||
</div>
|
||||
|
||||
<div class="mt-3 flex justify-end">
|
||||
<a
|
||||
href="{{ "/blog/" | relURL }}"
|
||||
class="btn-primary btn-primary-sm inline-flex items-center gap-2"
|
||||
>
|
||||
<span>View all posts</span>
|
||||
<i class="fa-solid fa-arrow-right-long text-[0.8rem]"></i>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
{{ end }}
|
||||
43
themes/minimal-black/layouts/partials/home/projects.html
Normal file
43
themes/minimal-black/layouts/partials/home/projects.html
Normal file
@@ -0,0 +1,43 @@
|
||||
{{- $home := .Site.Params.home -}}
|
||||
{{ if ne $home.showFeaturedProjects false }}
|
||||
<div class="space-y-3 animate-fade-up">
|
||||
<div class="space-y-1">
|
||||
<h2 class="heading-section">
|
||||
{{ default "Selected work" $home.projectsTitle }}
|
||||
</h2>
|
||||
{{ with $home.projectsSubtitle }}
|
||||
<p class="text-xs text-muted">
|
||||
{{ . }}
|
||||
</p>
|
||||
{{ end }}
|
||||
</div>
|
||||
|
||||
{{ $limit := cond (gt (int $home.featuredProjectsLimit) 0) (int $home.featuredProjectsLimit) 3 }}
|
||||
{{ $allProjects := where .Site.RegularPages "Section" "projects" }}
|
||||
{{ $featured := where $allProjects "Params.featured" true }}
|
||||
{{ if not (gt (len $featured) 0) }}
|
||||
{{ $featured = $allProjects }}
|
||||
{{ end }}
|
||||
{{ $list := first $limit $featured }}
|
||||
|
||||
<div class="grid gap-4 md:grid-cols-2">
|
||||
{{ range $list }}
|
||||
{{ partial "components/project-card.html" (dict "Page" . "Root" $) }}
|
||||
{{ else }}
|
||||
<p class="text-xs text-muted">
|
||||
No projects yet. Add some under <code>content/projects</code>.
|
||||
</p>
|
||||
{{ end }}
|
||||
</div>
|
||||
|
||||
<div class="mt-3 flex justify-end">
|
||||
<a
|
||||
href="{{ "/projects/" | relURL }}"
|
||||
class="btn-primary btn-primary-sm inline-flex items-center gap-2"
|
||||
>
|
||||
<span>View all projects</span>
|
||||
<i class="fa-solid fa-arrow-right-long text-[0.8rem]"></i>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
{{ end }}
|
||||
59
themes/minimal-black/layouts/partials/home/tech-marquee.html
Normal file
59
themes/minimal-black/layouts/partials/home/tech-marquee.html
Normal file
@@ -0,0 +1,59 @@
|
||||
{{- $home := .Site.Params.home -}}
|
||||
{{- $hero := .Site.Params.hero -}}
|
||||
{{- $techMain := $home.tech -}}
|
||||
{{- $techReverse := $home.techReverse -}}
|
||||
{{- $variant := $home.techVariant | default "wide" -}}
|
||||
|
||||
{{ with $techMain }}
|
||||
<div class="space-y-5 animate-fade-up">
|
||||
<div class="space-y-2">
|
||||
<h3 class="heading-section text-base">
|
||||
{{ default "What I Work With" $hero.techMarqueeLabel }}
|
||||
</h3>
|
||||
|
||||
<div class="tech-strip {{ if eq $variant "compact" }}tech-strip--compact{{ else }}tech-strip--wide{{ end }}">
|
||||
<!-- primary row (always rendered) -->
|
||||
<div class="tech-strip-track tech-strip-track--primary">
|
||||
{{ range . }}
|
||||
<div class="tech-strip-item">
|
||||
{{ with .icon }}
|
||||
<i class="{{ . }} tech-icon"></i>
|
||||
{{ end }}
|
||||
<span class="font-medium">{{ .label }}</span>
|
||||
</div>
|
||||
{{ end }}
|
||||
{{ range . }}
|
||||
<div class="tech-strip-item" aria-hidden="true">
|
||||
{{ with .icon }}
|
||||
<i class="{{ . }} tech-icon"></i>
|
||||
{{ end }}
|
||||
<span class="font-medium">{{ .label }}</span>
|
||||
</div>
|
||||
{{ end }}
|
||||
</div>
|
||||
|
||||
<!-- secondary row, reverse (only if techReverse is defined) -->
|
||||
{{ with $techReverse }}
|
||||
<div class="tech-strip-track tech-strip-track--secondary">
|
||||
{{ range . }}
|
||||
<div class="tech-strip-item">
|
||||
{{ with .icon }}
|
||||
<i class="{{ . }} tech-icon"></i>
|
||||
{{ end }}
|
||||
<span class="font-medium">{{ .label }}</span>
|
||||
</div>
|
||||
{{ end }}
|
||||
{{ range . }}
|
||||
<div class="tech-strip-item" aria-hidden="true">
|
||||
{{ with .icon }}
|
||||
<i class="{{ . }} tech-icon"></i>
|
||||
{{ end }}
|
||||
<span class="font-medium">{{ .label }}</span>
|
||||
</div>
|
||||
{{ end }}
|
||||
</div>
|
||||
{{ end }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{{ end }}
|
||||
Reference in New Issue
Block a user