Skip to content

Commit 40ff44b

Browse files
committed
add sponsor
1 parent f9ddf81 commit 40ff44b

3 files changed

Lines changed: 69 additions & 11 deletions

File tree

public/images/thunderpick.png

99.1 KB
Loading

resources/js/components/race/race-header.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ export function RaceHeader({ race, isLast = false }: Props) {
1515
animate={{ opacity: 1 }}
1616
transition={{ duration: 0.6 }}
1717
className="relative w-full overflow-hidden"
18-
style={{ minHeight: 460 }}
18+
style={{ minHeight: 300 }}
1919
>
2020
{/* Hero image */}
2121
<img

resources/js/pages/home.tsx

Lines changed: 68 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,8 @@ function RaceView({ race, isLast = false }: { race: RaceData; isLast?: boolean }
5050
return (
5151
<div>
5252
<RaceHeader race={race} isLast={isLast} />
53-
<div className="mx-auto max-w-5xl px-4 py-10 space-y-10">
53+
<div className="mx-auto max-w-5xl px-4 pb-24 pt-4 space-y-10">
54+
<SponsorBanner />
5455
<Leaderboard leaderboard={race.leaderboard} matches={race.matches} />
5556
<LpChart series={race.lp_series} />
5657
<MatchFeed matches={race.matches} />
@@ -75,7 +76,7 @@ function UpcomingView({ upcoming }: { upcoming: UpcomingRace }) {
7576
animate={{ opacity: 1 }}
7677
transition={{ duration: 0.6 }}
7778
className="relative w-full overflow-hidden"
78-
style={{ minHeight: 460 }}
79+
style={{ minHeight: 300 }}
7980
>
8081
<img
8182
src="/images/hero.png"
@@ -88,7 +89,7 @@ function UpcomingView({ upcoming }: { upcoming: UpcomingRace }) {
8889

8990
<div
9091
className="relative flex flex-col items-center justify-center text-center px-6 pt-24 pb-16"
91-
style={{ minHeight: 460 }}
92+
style={{ minHeight: 300 }}
9293
>
9394
<motion.p
9495
initial={{ opacity: 0, y: -8 }}
@@ -136,6 +137,8 @@ function UpcomingView({ upcoming }: { upcoming: UpcomingRace }) {
136137
</div>
137138
</motion.div>
138139

140+
<SponsorBanner />
141+
139142
{/* Streamers joining */}
140143
{upcoming.streamers.length > 0 && (
141144
<div className="mx-auto max-w-5xl px-4 py-10">
@@ -206,14 +209,69 @@ function StreamerCard({ streamer, index }: { streamer: UpcomingStreamer; index:
206209
);
207210
}
208211

212+
function SponsorBanner() {
213+
return (
214+
<div className="mx-auto max-w-5xl px-4 pb-4">
215+
{/* "Presented by" row with gradient lines */}
216+
<div className="flex items-center gap-4 mb-8">
217+
<div className="flex-1 h-px bg-gradient-to-r from-transparent via-red-900/30 to-red-800/50" />
218+
<p className="text-xs tracking-[0.5em] uppercase text-[#4a4a60] flex-shrink-0">
219+
Presented by
220+
</p>
221+
<div className="flex-1 h-px bg-gradient-to-l from-transparent via-red-900/30 to-red-800/50" />
222+
</div>
223+
224+
{/* Centered image with ornaments */}
225+
<div className="flex justify-center">
226+
<div className="relative">
227+
{/* Red ambient glow */}
228+
<div className="absolute inset-0 scale-110 rounded-lg bg-red-700/25 blur-2xl" />
229+
230+
{/* Corner brackets */}
231+
<div className="absolute -top-2.5 -left-2.5 h-5 w-5 rounded-tl border-l-2 border-t-2 border-red-700/60" />
232+
<div className="absolute -top-2.5 -right-2.5 h-5 w-5 rounded-tr border-r-2 border-t-2 border-red-700/60" />
233+
<div className="absolute -bottom-2.5 -left-2.5 h-5 w-5 rounded-bl border-b-2 border-l-2 border-red-700/60" />
234+
<div className="absolute -bottom-2.5 -right-2.5 h-5 w-5 rounded-br border-b-2 border-r-2 border-red-700/60" />
235+
236+
<a
237+
href="https://thunderpick.io/?r=RACE"
238+
target="_blank"
239+
rel="noopener noreferrer"
240+
className="relative block overflow-hidden rounded opacity-85 transition-opacity hover:opacity-100"
241+
>
242+
<img
243+
src="/images/thunderpick.png"
244+
alt="Thunderpick — Code: Race"
245+
className="w-80 object-cover"
246+
draggable={false}
247+
/>
248+
</a>
249+
</div>
250+
</div>
251+
252+
{/* Bottom ornament */}
253+
<div className="mt-8 flex items-center gap-3">
254+
<div className="flex-1 h-px bg-gradient-to-r from-transparent to-red-900/30" />
255+
<div className="h-1 w-1 rounded-full bg-red-800/60" />
256+
<div className="h-1.5 w-1.5 rounded-full bg-red-700/50" />
257+
<div className="h-1 w-1 rounded-full bg-red-800/60" />
258+
<div className="flex-1 h-px bg-gradient-to-l from-transparent to-red-900/30" />
259+
</div>
260+
</div>
261+
);
262+
}
263+
209264
function EmptyView() {
210265
return (
211-
<motion.div
212-
initial={{ opacity: 0 }}
213-
animate={{ opacity: 1 }}
214-
className="flex items-center justify-center py-28 text-[#4a4a60]"
215-
>
216-
No races yet.
217-
</motion.div>
266+
<div>
267+
<motion.div
268+
initial={{ opacity: 0 }}
269+
animate={{ opacity: 1 }}
270+
className="flex items-center justify-center py-28 text-[#4a4a60]"
271+
>
272+
No races yet.
273+
</motion.div>
274+
<SponsorBanner />
275+
</div>
218276
);
219277
}

0 commit comments

Comments
 (0)