Skip to content

Commit 7727a47

Browse files
committed
Initial version of hero (WIP)
1 parent 592b5a2 commit 7727a47

File tree

3 files changed

+66
-7
lines changed

3 files changed

+66
-7
lines changed
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
import { NOISE_TEXTURE_BG } from "../constants";
2+
3+
export const HeroSlide = () => (
4+
<section id="hero" className="py-16 md:py-24 flex items-center justify-center relative overflow-hidden">
5+
{/* Background texture */}
6+
<div className="absolute inset-0 opacity-[0.14]">
7+
<div className="absolute inset-0" style={{ backgroundImage: NOISE_TEXTURE_BG }} />
8+
</div>
9+
10+
<div className="container mx-auto px-6 lg:px-12 relative z-10">
11+
<div className="max-w-3xl mx-auto text-center">
12+
{/* Title block */}
13+
<div className="mb-8">
14+
<h1 className="text-4xl md:text-6xl lg:text-7xl font-bold leading-[1.05] mb-4">
15+
<span className="text-primary">SAND GARDEN</span>
16+
<br />
17+
<span className="text-primary-content">2025 RECAP</span>
18+
</h1>
19+
20+
<p className="text-sm md:text-base text-neutral-content/60 max-w-lg mx-auto leading-relaxed">
21+
Building tools and education for Ethereum developers. Shipped upgrades to Speedrun Ethereum, Scaffold-ETH 2,
22+
and launched collaborations with ENS, Arbitrum, and more.
23+
</p>
24+
</div>
25+
26+
{/* Stats line - terminal style */}
27+
<div className="mb-6 font-mono text-xs md:text-sm">
28+
<div className="flex flex-wrap justify-center gap-x-5 gap-y-1 text-neutral-content/50">
29+
<span>
30+
<span className="text-primary">$</span> visitors: <span className="text-primary-content">92,400</span>
31+
</span>
32+
<span>
33+
<span className="text-primary">$</span> signups: <span className="text-primary-content">5,700</span>
34+
</span>
35+
<span>
36+
<span className="text-primary">$</span> se2_repos: <span className="text-primary-content">2,243</span>
37+
</span>
38+
<span>
39+
<span className="text-primary">$</span> grants_usd: <span className="text-primary-content">200k+</span>
40+
</span>
41+
</div>
42+
</div>
43+
44+
{/* Tracks */}
45+
<div className="flex flex-wrap justify-center gap-2">
46+
{[
47+
{ href: "#speedrun", label: "education" },
48+
{ href: "#scaffold-eth", label: "tooling" },
49+
{ href: "#ecosystem", label: "collabs" },
50+
].map(track => (
51+
<a
52+
key={track.href}
53+
href={track.href}
54+
className="px-3 py-1 text-xs text-neutral-content/40 border border-neutral-content/10 hover:border-primary/40 hover:text-primary-content transition-colors"
55+
>
56+
/{track.label}
57+
</a>
58+
))}
59+
</div>
60+
</div>
61+
</div>
62+
</section>
63+
);

packages/nextjs/components/2025/slides/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
export { HeroSlide } from "./HeroSlide";
12
export { SpeedrunSlide } from "./SpeedrunSlide";
23
export { ScaffoldEthSlide } from "./ScaffoldEthSlide";
34
export { EducationalSlide } from "./EducationalSlide";

packages/nextjs/pages/2025.tsx

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import { NextPageWithLayout } from "./_app";
66
import {
77
EcosystemSlide,
88
EducationalSlide,
9+
HeroSlide,
910
MiscSlide,
1011
SLIDES,
1112
ScaffoldEthSlide,
@@ -86,17 +87,11 @@ const Page2025: NextPageWithLayout = () => {
8687
<span className="transform group-hover:-translate-x-1 transition-transform"></span>
8788
<span>Back to site</span>
8889
</Link>
89-
90-
<div className="flex items-center gap-3">
91-
<span className="text-primary uppercase tracking-[0.3em]">Sand Garden</span>
92-
<span className="text-primary-content font-bold text-lg">2025 recap</span>
93-
</div>
94-
95-
<div className="w-24" />
9690
</header>
9791

9892
{/* Slides */}
9993
<main>
94+
<HeroSlide />
10095
<SpeedrunSlide />
10196
<ScaffoldEthSlide />
10297
<EducationalSlide />

0 commit comments

Comments
 (0)