2026-06-15 23:52:28 +00:00
|
|
|
import { A } from "@solidjs/router";
|
|
|
|
|
import { For } from "solid-js";
|
|
|
|
|
import { ArrowRight } from "lucide-solid";
|
2026-04-22 15:40:44 +02:00
|
|
|
import { useScrollReveal } from "../hooks/useScrollReveal";
|
|
|
|
|
import { hobbies, hobbiesPage } from "../data/hobbies";
|
|
|
|
|
import { Icon } from "@/lib/icons";
|
|
|
|
|
|
|
|
|
|
export default function HobbiesSection() {
|
|
|
|
|
const revealRef = useScrollReveal<HTMLDivElement>({ stagger: 0.2 });
|
|
|
|
|
|
|
|
|
|
return (
|
2026-06-15 23:52:28 +00:00
|
|
|
<section id="hobbies" class="py-20 md:py-32 px-[5vw]">
|
|
|
|
|
<div class="max-w-[1200px] mx-auto">
|
|
|
|
|
<div class="space-y-4 mb-12">
|
|
|
|
|
<h2 class="section-label">{hobbiesPage.label}</h2>
|
|
|
|
|
<p class="text-text-secondary max-w-xl">
|
2026-04-22 15:40:44 +02:00
|
|
|
{hobbiesPage.sectionSubtitle}
|
|
|
|
|
</p>
|
|
|
|
|
</div>
|
2026-06-15 23:52:28 +00:00
|
|
|
<div ref={revealRef} class="grid grid-cols-1 md:grid-cols-2 gap-8">
|
|
|
|
|
<For each={hobbies}>
|
|
|
|
|
{(hobby) => (
|
|
|
|
|
<div class="border border-warm-grey p-8 space-y-6 group hover:border-amber/30 transition-colors">
|
|
|
|
|
<div class="w-10 h-10 flex items-center justify-center border border-warm-grey">
|
|
|
|
|
<Icon name={hobby.icon} size={20} class="text-amber" />
|
|
|
|
|
</div>
|
|
|
|
|
<h3 class="font-display font-semibold text-text-primary text-2xl tracking-tight">
|
2026-04-22 15:40:44 +02:00
|
|
|
{hobby.title}
|
|
|
|
|
</h3>
|
2026-06-15 23:52:28 +00:00
|
|
|
<p class="text-text-secondary leading-relaxed">
|
2026-04-22 15:40:44 +02:00
|
|
|
{hobby.shortDescription}
|
|
|
|
|
</p>
|
2026-06-15 23:52:28 +00:00
|
|
|
<A
|
2026-04-22 15:40:44 +02:00
|
|
|
href="/hobbies"
|
2026-06-15 23:52:28 +00:00
|
|
|
class="inline-flex items-center gap-2 text-amber hover:text-amber-hover transition-colors group/link"
|
2026-04-22 15:40:44 +02:00
|
|
|
>
|
2026-06-15 23:52:28 +00:00
|
|
|
<span class="text-link">{hobbiesPage.linkText}</span>
|
2026-04-22 15:40:44 +02:00
|
|
|
<ArrowRight
|
|
|
|
|
size={18}
|
2026-06-15 23:52:28 +00:00
|
|
|
class="group-hover/link:translate-x-1 transition-transform"
|
2026-04-22 15:40:44 +02:00
|
|
|
/>
|
2026-06-15 23:52:28 +00:00
|
|
|
</A>
|
2026-04-22 15:40:44 +02:00
|
|
|
</div>
|
2026-06-15 23:52:28 +00:00
|
|
|
)}
|
|
|
|
|
</For>
|
2026-04-22 15:40:44 +02:00
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</section>
|
|
|
|
|
);
|
|
|
|
|
}
|