File tree Expand file tree Collapse file tree 3 files changed +74
-0
lines changed
components/cta-card-section Expand file tree Collapse file tree 3 files changed +74
-0
lines changed Original file line number Diff line number Diff line change 1+ import { StripesDecoration } from "@/app/conf/_design-system/stripes-decoration"
2+
3+ import logoMask from "./logo-mask.webp"
4+
5+ export interface CtaCardSectionProps extends React . HTMLAttributes < HTMLElement > {
6+ title : string
7+ description : string
8+ children : React . ReactNode
9+ }
10+
11+ export function CtaCardSection ( {
12+ className,
13+ title : heading ,
14+ description,
15+ children,
16+ ...rest
17+ } : CtaCardSectionProps ) {
18+ return (
19+ < div className = "gql-conf-section" >
20+ < section
21+ className = "relative overflow-hidden bg-gradient-to-r from-pri-dark to-pri-base p-6 dark:from-pri-darker dark:to-pri-dark sm:p-16"
22+ { ...rest }
23+ >
24+ < div className = "relative z-10 flex flex-col gap-10 sm:items-start" >
25+ < div className = "flex flex-col gap-6" >
26+ < h2 className = "text-neu-0 typography-d1" > { heading } </ h2 >
27+ < p className = "max-w-[555px] text-pretty text-neu-50 typography-body-lg" >
28+ { description }
29+ </ p >
30+ </ div >
31+
32+ { children }
33+ </ div >
34+
35+ < div
36+ role = "presentation"
37+ // prettier-ignore
38+ className = "
39+ pointer-events-none absolute
40+ sm:bottom-[-277px] inset-0 sm:left-1/3 xl:left-1/2 sm:top-[-107px] xl:right-[-391px]
41+ [--start:hsl(var(--color-sec-base))]
42+ [--end:hsl(var(--color-sec-lighter))]
43+ dark:[--start:hsl(var(--color-sec-dark))]
44+ dark:[--end:hsl(var(--color-sec-base))]
45+
46+ [mask-size:cover]
47+ max-sm:[mask-position:center] max-sm:opacity-70
48+ sm:[mask-size:1117px]
49+ "
50+ style = { {
51+ maskImage : `url(${ logoMask . src } )` ,
52+ maskRepeat : "no-repeat" ,
53+ } }
54+ >
55+ < StripesDecoration
56+ thin
57+ oddClassName = "bg-[linear-gradient(180deg,var(--start)_0%,var(--end)_100%)]"
58+ />
59+ </ div >
60+ </ section >
61+ </ div >
62+ )
63+ }
Original file line number Diff line number Diff line change @@ -12,6 +12,9 @@ import { RegisterSection } from "./components/register-section"
1212import { Sponsors } from "./components/sponsors"
1313import { GraphQLFoundationCard } from "./components/graphql-foundation-card"
1414import { MarqueeRows } from "./components/marquee-rows"
15+ import { CtaCardSection } from "./components/cta-card-section"
16+ import { Button } from "../_design-system/button"
17+ import { GET_TICKETS_LINK } from "./links"
1518
1619export const metadata : Metadata = {
1720 title : "GraphQLConf 2025 — Sept 08-10" ,
@@ -75,6 +78,14 @@ export default function Page() {
7578 < Venue />
7679 < GraphQLFoundationCard />
7780 < FAQ />
81+ < CtaCardSection
82+ title = "Get your ticket"
83+ description = "Join three transformative days of expert insights and innovation to shape the next decade of APIs!"
84+ >
85+ < Button variant = "primary" href = { GET_TICKETS_LINK } >
86+ Get tickets
87+ </ Button >
88+ </ CtaCardSection >
7889 < MarqueeRows
7990 variant = "secondary"
8091 items = { HERO_MARQUEE_ITEMS }
You can’t perform that action at this time.
0 commit comments