|
| 1 | +import { CalendarIcon } from "@/app/conf/_design-system/pixelarticons/calendar-icon" |
| 2 | +import { PinIcon } from "@/app/conf/_design-system/pixelarticons/pin-icon" |
| 3 | +import { Tag } from "@/app/conf/_design-system/tag" |
| 4 | +import fostLogo from "@/app/day/2026/assets/fost-logo.avif" |
| 5 | +import nycImage from "./nyc.png" |
| 6 | + |
| 7 | +import { BannerFrame } from "./banner-frame" |
| 8 | +import { QRCodeSVG } from "./qr-code" |
| 9 | +import { BlobStripes } from "./blob-stripes" |
| 10 | +import Image from "next/image" |
| 11 | +import { GraphQLWordmarkLogo } from "@/icons" |
| 12 | + |
| 13 | +export function NycBanner() { |
| 14 | + return ( |
| 15 | + <BannerFrame |
| 16 | + slug="nyc" |
| 17 | + caption="GraphQL Day NYC 2026" |
| 18 | + className="flex flex-col gap-7 bg-[#0A0B08] p-9 text-white" |
| 19 | + > |
| 20 | + <BlobStripes |
| 21 | + position="65% 35%" |
| 22 | + size="200%" |
| 23 | + stripeWidth="14px" |
| 24 | + evenClassName="bg-[linear-gradient(180deg,rgba(225,0,152,0.22)_0%,rgba(225,0,152,0.04)_100%)]" |
| 25 | + oddClassName="bg-[linear-gradient(180deg,rgba(225,0,152,0.06)_0%,rgba(132,0,89,0.18)_100%)]" |
| 26 | + /> |
| 27 | + |
| 28 | + <div className="z-10 flex items-center"> |
| 29 | + <GraphQLWordmarkLogo className="h-8 !fill-white" /> |
| 30 | + </div> |
| 31 | + |
| 32 | + <h2 className="z-10 m-0 mt-16 text-[60px] font-medium leading-[1.05] tracking-tight"> |
| 33 | + GraphQL Day |
| 34 | + <br /> |
| 35 | + NYC |
| 36 | + <br /> |
| 37 | + 2026 |
| 38 | + </h2> |
| 39 | + |
| 40 | + <div className="z-10"> |
| 41 | + <p |
| 42 | + className="typography-body-lg m-0 text-white/80" |
| 43 | + style={{ lineHeight: 1.4, textWrap: "pretty" }} |
| 44 | + > |
| 45 | + Community-organized GraphQL events at conferences worldwide. |
| 46 | + </p> |
| 47 | + <div className="mt-4 flex items-center gap-1"> |
| 48 | + <Tag color={"hsl(var(--color-pri-base))"}>talks</Tag> |
| 49 | + <Tag color={"hsl(var(--color-pri-dark))"}>demos</Tag> |
| 50 | + <Tag color={"hsl(var(--color-neu-500))"}>community</Tag> |
| 51 | + </div> |
| 52 | + </div> |
| 53 | + |
| 54 | + <div className="flex-1" /> |
| 55 | + <div |
| 56 | + className="z-10 mt-auto grid grid-cols-[44%_1fr] overflow-hidden border border-white/10 bg-white/[0.025]" |
| 57 | + style={{ height: 180 }} |
| 58 | + > |
| 59 | + <div className="relative overflow-hidden bg-pri-darker/15"> |
| 60 | + <Image |
| 61 | + src={nycImage} |
| 62 | + alt="New York City skyline" |
| 63 | + fill |
| 64 | + sizes="250px" |
| 65 | + placeholder="empty" |
| 66 | + className="object-cover opacity-90" |
| 67 | + /> |
| 68 | + </div> |
| 69 | + <div className="flex flex-col gap-2 border-l border-white/10 p-[18px_18px_16px]"> |
| 70 | + <div className="flex items-start gap-2.5"> |
| 71 | + <CalendarIcon className="size-5 translate-y-0.5 text-pri-base" /> |
| 72 | + <div className="typography-body-md">May 13–14, 2026</div> |
| 73 | + </div> |
| 74 | + <div className="flex items-start gap-2.5"> |
| 75 | + <PinIcon className="size-5 translate-y-0.5 text-pri-base" /> |
| 76 | + <div className="typography-body-md"> |
| 77 | + New York City, |
| 78 | + <br /> |
| 79 | + New York |
| 80 | + </div> |
| 81 | + </div> |
| 82 | + <div className="flex-1" /> |
| 83 | + <div className="flex items-center gap-2 border-t border-white/5 pt-3.5"> |
| 84 | + <span |
| 85 | + className="typography-menu translate-y-px text-xs text-white/60" |
| 86 | + style={{ letterSpacing: "0.04em" }} |
| 87 | + > |
| 88 | + hosted at |
| 89 | + </span> |
| 90 | + <Image |
| 91 | + src={fostLogo} |
| 92 | + alt="FOST" |
| 93 | + width={60} |
| 94 | + height={20} |
| 95 | + placeholder="empty" |
| 96 | + /> |
| 97 | + </div> |
| 98 | + </div> |
| 99 | + </div> |
| 100 | + |
| 101 | + <div className="z-10 flex h-24 items-center gap-5 border border-white/10 bg-white/[0.02] p-3.5"> |
| 102 | + <div className="min-w-0 flex-1"> |
| 103 | + <div className="typography-menu text-xs text-white/60"> |
| 104 | + Visit the event |
| 105 | + </div> |
| 106 | + <div |
| 107 | + className="mt-1 text-[22px] font-medium" |
| 108 | + style={{ letterSpacing: "-0.01em" }} |
| 109 | + > |
| 110 | + graphql.org/day/nyc |
| 111 | + </div> |
| 112 | + </div> |
| 113 | + <div className="flex size-[80px] shrink-0 items-center justify-center border-[1.5px] border-pri-base p-1"> |
| 114 | + <QRCodeSVG |
| 115 | + value="https://graphql.org/day/2026/nyc/" |
| 116 | + size={68} |
| 117 | + color="#FAFCF4" |
| 118 | + /> |
| 119 | + </div> |
| 120 | + </div> |
| 121 | + </BannerFrame> |
| 122 | + ) |
| 123 | +} |
0 commit comments