Skip to content

Commit 7270916

Browse files
committed
Fix CSS, add Event Partners section
1 parent ef26ba2 commit 7270916

File tree

2 files changed

+66
-59
lines changed

2 files changed

+66
-59
lines changed

src/app/conf/2025/components/graphql-foundation-card.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ export function GraphQLFoundationCard({ className }: { className?: string }) {
99
<div className="flex items-center justify-center px-8 py-10 lg:px-16 lg:py-24">
1010
<FoundationWordmark className="h-[68px] text-rhodamine dark:text-current lg:h-[100px] [&_g]:fill-current" />
1111
</div>
12-
<p className="typography-body-lg text-pretty px-8 py-10 max-md:text-center lg:px-16 lg:py-24">
12+
<p className="typography-body-lg my-auto h-fit text-pretty px-8 py-10 max-md:text-center lg:px-16 lg:py-24">
1313
GraphQLConf is presented by the GraphQL Foundation, uniting the global
1414
GraphQL community to promote education, adoption, and advancement of
1515
GraphQL.

src/app/conf/2025/events/fost/page.tsx

Lines changed: 65 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,15 @@ import Image from "next-image-export-optimizer"
44
import { Button } from "@/app/conf/_design-system/button"
55
import { Accordion } from "@/app/conf/_design-system/accordion"
66

7+
import GraphQLFoundationWordmark from "../../assets/graphql-foundation-wordmark.svg?svgr"
78
import { Hero, HeroStripes } from "../../components/hero"
89
import { NavbarPlaceholder } from "../../components/navbar"
910
import { CalendarIcon } from "../../../_design-system/pixelarticons/calendar-icon"
1011
import { PinIcon } from "../../../_design-system/pixelarticons/pin-icon"
1112
import { CtaCardSection } from "../../components/cta-card-section"
1213

1314
import heroPhoto from "./hero-photo.webp"
15+
import { Anchor } from "../../../_design-system/anchor"
1416

1517
export const metadata: Metadata = {
1618
title: "GraphQL Day at FOST",
@@ -21,8 +23,6 @@ const CFP_LINK =
2123
const TICKETS_LINK =
2224
"https://ticket.apidays.global/event/apidays-paris-2025/3cccd07f-acb2-466e-8d91-cb1f208ecf42"
2325

24-
const API_DAYS_COLOR = "#02B3B6"
25-
2626
export default function ResourcesPage() {
2727
return (
2828
<>
@@ -68,12 +68,12 @@ export default function ResourcesPage() {
6868
<main className="gql-all-anchors-focusable gql-conf-navbar-strip text-neu-900 before:bg-white/40 before:dark:bg-blk/30">
6969
<div className="gql-container">
7070
<AboutEventSection />
71-
<WhatToExpectSection />
7271
<ExpertMeetupSection />
7372
<VenueAndLocationSection />
73+
<EventPartnersSection />
7474
</div>
7575
<CtaCardSection
76-
title="Join the community"
76+
title="Stay in the know"
7777
description="Meet the experts, share best practices, and discover the latest innovations shaping the future of APIs."
7878
>
7979
<div className="flex gap-4 max-sm:flex-col sm:items-center">
@@ -107,16 +107,16 @@ function HeroDateAndLocation() {
107107

108108
function AboutEventSection() {
109109
return (
110-
<section className="gql-section flex gap-6 max-md:flex-col">
111-
<h3 className="typography-h2 md:flex-1">About GraphQL Day</h3>
110+
<section className="gql-section flex gap-6 bg-neu-100 max-md:flex-col xl:py-12">
111+
<h3 className="typography-h2 md:flex-[.5]">About</h3>
112112
<div className="flex flex-col gap-6 md:flex-1">
113113
<p className="typography-body-lg">
114114
Join us for a special GraphQL Day as part of the Future of Software
115-
Week, co-located with API Days Paris. This focused event brings
115+
Week, colocated with API Days Paris. This focused event brings
116116
together GraphQL practitioners, innovators, and thought leaders for a
117117
day of deep technical discussions and hands-on learning.
118118
</p>
119-
<p className="typography-body-lg">
119+
<p className="typography-body-lg text-pretty">
120120
Whether you're already using GraphQL in production or just getting
121121
started, this is your opportunity to connect with the community, share
122122
best practices, and discover the latest developments in the GraphQL
@@ -127,60 +127,32 @@ function AboutEventSection() {
127127
)
128128
}
129129

130-
function WhatToExpectSection() {
131-
return (
132-
<section className="gql-section flex gap-6 max-md:flex-col">
133-
<h3 className="typography-h2 md:flex-1">What to expect</h3>
134-
<ul className="flex flex-col gap-6 uppercase md:flex-1">
135-
<ListItem number="8+" text="Expert talks" />
136-
<ListItem number="12+" text="Speakers" />
137-
<ListItem number="3" text="Lightning talks" />
138-
<ListItem number="2" text="Panel discussions" />
139-
<ListItem number="300+" text="Attendees" />
140-
</ul>
141-
</section>
142-
)
143-
}
144-
145-
function ListItem({ number, text }: { number: string | number; text: string }) {
146-
return (
147-
<li className="list-none bg-gradient-to-r from-[#CDF27E] p-6 dark:from-[#507501]">
148-
<span className="inline-block text-[72px]/none [text-box:trim-both_cap_alphabetic]">
149-
{number}
150-
</span>{" "}
151-
<span className="typography-menu mb-2 inline-block">{text}</span>
152-
</li>
153-
)
154-
}
155-
156130
function ExpertMeetupSection() {
157131
return (
158-
<section className="gql-section">
159-
<h3 className="typography-h2 mb-12">
160-
Meet the experts, share your experience
161-
</h3>
132+
<section className="gql-section xl:py-12">
133+
<h3 className="typography-h2 mb-12">Why attend GraphQL Day?</h3>
162134
<div className="grid gap-8 md:grid-cols-2 lg:grid-cols-3">
163-
<ExpertCard
135+
<Card
164136
title="Technical Deep Dives"
165137
description="Learn advanced patterns, performance optimization techniques, and architectural decisions from teams running GraphQL at scale."
166138
/>
167-
<ExpertCard
139+
<Card
168140
title="Best Practices Exchange"
169141
description="Share your learnings and challenges with fellow practitioners. Discover how others solve common GraphQL problems."
170142
/>
171-
<ExpertCard
143+
<Card
172144
title="Innovation Showcase"
173145
description="Explore cutting-edge tools, upcoming features, and experimental approaches that are shaping GraphQL's future."
174146
/>
175-
<ExpertCard
147+
<Card
176148
title="Community Building"
177149
description="Connect with the European GraphQL community. Build relationships that extend beyond the conference."
178150
/>
179-
<ExpertCard
151+
<Card
180152
title="Hands-on Learning"
181153
description="Interactive sessions where you can experiment with new tools and techniques in real-time."
182154
/>
183-
<ExpertCard
155+
<Card
184156
title="Q&A Sessions"
185157
description="Direct access to library maintainers and core contributors. Get your specific questions answered."
186158
/>
@@ -189,15 +161,9 @@ function ExpertMeetupSection() {
189161
)
190162
}
191163

192-
function ExpertCard({
193-
title,
194-
description,
195-
}: {
196-
title: string
197-
description: string
198-
}) {
164+
function Card({ title, description }: { title: string; description: string }) {
199165
return (
200-
<article className="flex flex-col gap-4 border border-neu-200 p-6 dark:border-neu-700">
166+
<article className="flex flex-col gap-4 border border-neu-200 p-6">
201167
<h4 className="typography-h3">{title}</h4>
202168
<p className="typography-body-md text-neu-700 dark:text-neu-300">
203169
{description}
@@ -208,7 +174,7 @@ function ExpertCard({
208174

209175
function VenueAndLocationSection() {
210176
return (
211-
<section className="gql-section">
177+
<section className="gql-section xl:py-12">
212178
<h3 className="typography-h2 mb-12">Venue & Location</h3>
213179
<div className="flex gap-x-12 gap-y-10 max-lg:flex-col">
214180
<article className="flex flex-col gap-6 lg:flex-1">
@@ -223,21 +189,19 @@ function VenueAndLocationSection() {
223189
</p>
224190
<div className="typography-body-lg">
225191
<address className="not-italic">
226-
Centre des nouvelles industries et technologies (CNIT)
192+
Centre des nouvelles industries et technologies
227193
<br />
228194
2 Pl. de la Défense
229195
<br />
230196
92800 Puteaux, France
231197
</address>
232198
</div>
233-
<Button href="https://maps.app.goo.gl/example" className="w-fit">
234-
View on Google Maps
235-
</Button>
236199
</article>
237200

238201
<div className="lg:flex-1">
239202
<h4 className="typography-h3 mb-6">Getting There</h4>
240203
<Accordion
204+
className="lg:min-h-[327px]"
241205
items={[
242206
{
243207
title: "By Metro/RER",
@@ -279,7 +243,7 @@ function VenueAndLocationSection() {
279243
</div>
280244
</div>
281245
<iframe
282-
src="https://www.google.com/maps/embed?pb=!1m14!1m8!1m3!1d1311.5979270428409!2d2.2390248!3d48.8926045!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x47e66502128aae1f%3A0xe5e22af4aa16ed38!2sWestfield%20CNIT!5e0!3m2!1sen!2spl!4v1756917405738!5m2!1sen!2spl"
246+
src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d57929.22297036571!2d2.1992477079806285!3d48.896253935132876!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x47e66502128aae1f%3A0xe5e22af4aa16ed38!2sWestfield%20CNIT!5e0!3m2!1sen!2spl!4v1756923974711!5m2!1sen!2spl"
283247
width="100%"
284248
height="450"
285249
allowFullScreen
@@ -290,3 +254,46 @@ function VenueAndLocationSection() {
290254
</section>
291255
)
292256
}
257+
258+
function EventPartnersSection() {
259+
return (
260+
<section className="gql-section">
261+
<h3 className="typography-h2 mb-12 text-center">Event Partners</h3>
262+
<div className="flex flex-col gap-8">
263+
<div className="text-center">
264+
<div className="flex items-center justify-center gap-12 max-md:flex-col md:gap-16">
265+
<div className="flex items-center justify-center">
266+
<Anchor
267+
href="https://www.apidays.global/events/paris"
268+
className="p-8 hover:bg-neu-100"
269+
>
270+
<img
271+
src="https://cdn.prod.website-files.com/67a0938d08d1902cd6974340/68112b11f6895235885793a7_Apidays%20logo%20v2.png"
272+
alt="API Days"
273+
className="h-24 w-auto object-contain invert dark:invert-0"
274+
/>
275+
</Anchor>
276+
</div>
277+
<span className="typography-h2 text-neu-400 lg:typography-d1 max-md:hidden">
278+
&
279+
</span>
280+
<div className="flex items-center justify-center">
281+
<Anchor
282+
href="https://graphql.org/community/foundation/"
283+
className="p-8 hover:bg-neu-100"
284+
>
285+
<GraphQLFoundationWordmark className="h-24 w-auto [&_g]:fill-neu-900" />
286+
</Anchor>
287+
</div>
288+
</div>
289+
</div>
290+
291+
<p className="typography-body-lg mx-auto max-w-2xl text-pretty text-center">
292+
GraphQL Day is organized by API&nbsp;Days and GraphQL Foundation, as
293+
part of the Future of Software Week.
294+
{/* todo: link to some FOST page? */}
295+
</p>
296+
</div>
297+
</section>
298+
)
299+
}

0 commit comments

Comments
 (0)