Skip to content

Commit 8cf8942

Browse files
committed
Add a hero to the FOST page
1 parent d52697a commit 8cf8942

File tree

2 files changed

+83
-12
lines changed

2 files changed

+83
-12
lines changed

src/app/conf/2025/components/hero/index.tsx

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ export type HeroProps = {
1919
bottom?: React.ReactNode
2020
colorScheme?: "primary" | "neutral"
2121
stripes?: ReactNode
22+
rightContent?: ReactNode
2223
} & (
2324
| { year: string | number; subtitle?: never }
2425
| { year?: never; subtitle: string }
@@ -62,18 +63,22 @@ export function Hero(props: HeroProps) {
6263
</span>
6364
</h1>
6465
)}
65-
<div className="flex h-min items-center gap-4">
66-
<span className="typography-body-sm whitespace-pre">
67-
hosted by
68-
</span>
69-
<GraphQLFoundationWordmark
70-
width={128}
71-
height={34.877}
72-
className={
73-
colorScheme === "neutral" ? "[&_path]:fill-primary" : ""
74-
}
75-
/>
76-
</div>
66+
{props.rightContent !== undefined ? (
67+
props.rightContent
68+
) : (
69+
<div className="flex h-min items-center gap-4">
70+
<span className="typography-body-sm whitespace-pre">
71+
hosted by
72+
</span>
73+
<GraphQLFoundationWordmark
74+
width={128}
75+
height={34.877}
76+
className={
77+
colorScheme === "neutral" ? "[&_path]:fill-primary" : ""
78+
}
79+
/>
80+
</div>
81+
)}
7782
</div>
7883

7984
<div className="flex flex-col gap-8">{props.children}</div>
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
import { Metadata } from "next"
2+
3+
import { Button } from "@/app/conf/_design-system/button"
4+
5+
import { Hero, HeroStripes } from "../../components/hero"
6+
import { NavbarPlaceholder } from "../../components/navbar"
7+
import { CalendarIcon } from "../../../_design-system/pixelarticons/calendar-icon"
8+
import { PinIcon } from "../../../_design-system/pixelarticons/pin-icon"
9+
10+
export const metadata: Metadata = {
11+
title: "GraphQL Day at FOST",
12+
}
13+
14+
const CFP_LINK =
15+
"https://docs.google.com/forms/d/1ElXceLzWftBvcEwrqYZSt8TqfVbrSFohtfmSFONolSk/preview"
16+
const TICKETS_LINK =
17+
"https://ticket.apidays.global/event/apidays-paris-2025/3cccd07f-acb2-466e-8d91-cb1f208ecf42"
18+
19+
const API_DAYS_COLOR = "#02B3B6"
20+
21+
export default function ResourcesPage() {
22+
return (
23+
<>
24+
<NavbarPlaceholder className="top-0 bg-neu-100 before:bg-white/30 dark:bg-[#181A12] dark:before:bg-blk/40" />
25+
<Hero
26+
pageName="GraphQL Day at FOST"
27+
subtitle="Future Of Software Week"
28+
colorScheme="neutral"
29+
stripes={
30+
<HeroStripes
31+
className="-scale-x-100 dark:data-[loaded=true]:opacity-80"
32+
evenClassName="bg-[linear-gradient(180deg,hsl(var(--color-sec-light))_0%,hsl(319deg_100%_90%_/_0.2)_100%)] dark:bg-[linear-gradient(180deg,hsl(var(--color-sec-dark))_0%,hsl(var(--color-neu-100))_100%)]"
33+
oddClassName="bg-[linear-gradient(180deg,hsl(319deg_100%_90%_/_0.2)_0%,hsl(var(--color-sec-base))_100%)] dark:bg-[linear-gradient(180deg,hsl(var(--color-sec-dark))_0%,hsl(var(--color-neu-0))_100%)]"
34+
/>
35+
}
36+
rightContent={null}
37+
>
38+
<HeroDateAndLocation />
39+
<div className="flex items-center gap-4 max-md:flex-col">
40+
<Button href={CFP_LINK} className="md:w-fit">
41+
Submit a proposal
42+
</Button>
43+
<Button className="md:w-fit" href={TICKETS_LINK} variant="secondary">
44+
Get your tickets
45+
</Button>
46+
</div>
47+
</Hero>
48+
<main className="gql-all-anchors-focusable gql-conf-navbar-strip text-neu-900 before:bg-white/40 before:dark:bg-blk/30"></main>
49+
</>
50+
)
51+
}
52+
53+
function HeroDateAndLocation() {
54+
return (
55+
<div className="typography-body-md flex flex-col gap-4 md:flex-row md:gap-6">
56+
<div className="flex items-center gap-2">
57+
<CalendarIcon className="size-5 sm:size-6" />
58+
<time dateTime="2025-09-08">December 11</time>
59+
</div>
60+
<div className="flex items-center gap-2">
61+
<PinIcon className="size-5 sm:size-6" />
62+
<address className="not-italic">CNIT La Defense, Paris</address>
63+
</div>
64+
</div>
65+
)
66+
}

0 commit comments

Comments
 (0)