11import { cn } from "@workspace/ui/lib/utils" ;
2- import { ChevronRightIcon } from "lucide-react" ;
32import type { Metadata } from "next" ;
4- import Link from "next/link" ;
53import type { Address } from "thirdweb" ;
64import { defineChain } from "thirdweb/chains" ;
75import { getContract } from "thirdweb/contract" ;
86import { getCurrencyMetadata } from "thirdweb/extensions/erc20" ;
97import { FaqSection } from "@/components/blocks/faq-section" ;
108import { AppFooter } from "@/components/footers/app-footer" ;
119import { BridgeVeil } from "./components/BridgeVeil" ;
10+ import { PillLink } from "./components/client/pill-link" ;
1211import { UniversalBridgeEmbed } from "./components/client/UniversalBridgeEmbed" ;
1312import { PageHeader } from "./components/header" ;
1413import { bridgeAppThirdwebClient } from "./constants" ;
@@ -56,15 +55,17 @@ export default async function BridgePage({
5655
5756 return (
5857 < div className = "grow flex flex-col relative overflow-hidden" >
59- < div className = "absolute top-0 left-0 right-0 h-dvh md:h-[1200px] fade-in-0 animate-in duration-1000 " >
58+ < div className = "absolute top-0 left-0 right-0 h-dvh md:h-[1200px] fade-in-0 animate-in duration-700 " >
6059 < BridgeVeil />
6160 </ div >
6261
6362 < div className = "relative z-10" >
6463 < PageHeader />
6564
66- < div className = "pt-28 pb-32 min-h-dvh relative z-10" >
67- < div className = "container mb-20" >
65+ < div className = "h-20" />
66+
67+ < div className = "relative z-10" >
68+ < div className = "container" >
6869 < h1 className = "text-5xl md:text-6xl font-bold mb-6 tracking-tighter text-center leading-none text-pretty" >
6970 Bridge and Swap tokens < br className = "max-sm:hidden" /> across any
7071 chain, instantly
@@ -77,6 +78,8 @@ export default async function BridgePage({
7778 </ div >
7879 </ div >
7980
81+ < div className = "h-16" />
82+
8083 < div className = "flex grow items-center justify-center px-4 relative" >
8184 < DotsBackgroundPattern />
8285 < UniversalBridgeEmbed
@@ -95,21 +98,33 @@ export default async function BridgePage({
9598 </ div >
9699 </ div >
97100
98- < div className = "mb-24 container max-w-4xl" >
99- < BridgeFaqSection />
100- </ div >
101+ < div className = "h-32" />
101102
102- < div className = "flex flex-col gap-4 items-center mb-28 container" >
103- < PillLink href = "https://portal.thirdweb.com/bridge" >
103+ < div className = "flex flex-col gap-4 items-center container" >
104+ < PillLink
105+ href = "https://portal.thirdweb.com/bridge"
106+ linkType = "integrate-bridge"
107+ >
104108 Integrate Bridge in your apps in minutes, and start generating
105109 revenue
106110 </ PillLink >
107111
108- < PillLink href = "https://thirdweb.com/tokens" >
112+ < PillLink
113+ href = "https://thirdweb.com/tokens"
114+ linkType = "trending-tokens"
115+ >
109116 Discover Trending Tokens
110117 </ PillLink >
111118 </ div >
112119
120+ < div className = "h-32" />
121+
122+ < div className = "container max-w-2xl" >
123+ < BridgeFaqSection />
124+ </ div >
125+
126+ < div className = "h-32" />
127+
113128 < div className = "relative" >
114129 < AppFooter />
115130 </ div >
@@ -120,30 +135,17 @@ export default async function BridgePage({
120135
121136function DataPill ( props : { children : React . ReactNode } ) {
122137 return (
123- < p className = "flex items-center gap-1.5 text-foreground/60 text-xs bg-accent/30 backdrop-blur-lg border border-border/70 rounded-full px-3 py-1.5 hover:text-foreground transition-colors duration-300" >
138+ < p className = "flex items-center gap-1.5 text-foreground/50 text-xs bg-accent/30 backdrop-blur-lg border border-border/70 rounded-full px-3 py-1.5 hover:text-foreground transition-colors duration-300" >
124139 { props . children }
125140 </ p >
126141 ) ;
127142}
128143
129- function PillLink ( props : { children : React . ReactNode ; href : string } ) {
130- return (
131- < Link
132- href = { props . href }
133- target = "_blank"
134- className = "shadow-lg text-center justify-center inline-flex items-center gap-2 text-foreground text-sm bg-card/50 backdrop-blur-lg border border-border/70 hover:border-active-border rounded-full px-5 py-2.5 hover:text-foreground transition-colors duration-300 text-pretty leading-5"
135- >
136- { props . children }
137- < ChevronRightIcon className = "size-3.5 shrink-0 text-muted-foreground" />
138- </ Link >
139- ) ;
140- }
141-
142144function DotsBackgroundPattern ( props : { className ?: string } ) {
143145 return (
144146 < div
145147 className = { cn (
146- "pointer-events-none absolute -inset-20 text-foreground /30 dark:text-foreground/10 " ,
148+ "pointer-events-none absolute -inset-x-36 -inset-y-24 text-pink-700 /30 dark:text-pink-500/20 " ,
147149 props . className ,
148150 ) }
149151 style = { {
0 commit comments