diff --git a/src/app/(routes)/_components/hero-section.tsx b/src/app/(routes)/_components/hero-section.tsx index 967bb97..9b056ea 100644 --- a/src/app/(routes)/_components/hero-section.tsx +++ b/src/app/(routes)/_components/hero-section.tsx @@ -8,7 +8,7 @@ import { INFORMATION_LINKS } from "../../_constants"; export function HeroSection() { return ( - +
Across protocol diagram diff --git a/src/app/(routes)/across-bridge/page.tsx b/src/app/(routes)/across-bridge/page.tsx index a9b88dd..3513f94 100644 --- a/src/app/(routes)/across-bridge/page.tsx +++ b/src/app/(routes)/across-bridge/page.tsx @@ -1,7 +1,5 @@ import { Metadata } from "next"; -import { Hero } from "@/app/_components/hero"; - export const metadata: Metadata = { title: "Across Bridge", description: "Interoperability powered by Intents.", @@ -10,9 +8,7 @@ export const metadata: Metadata = { export default function BridgeLanding() { return (
- -
Across Bridge
-
+
Across Bridge
); } diff --git a/src/app/(routes)/across-plus/_components/features-section.tsx b/src/app/(routes)/across-plus/_components/features-section.tsx new file mode 100644 index 0000000..2a1944e --- /dev/null +++ b/src/app/(routes)/across-plus/_components/features-section.tsx @@ -0,0 +1,78 @@ +import { + ArrowUpIcon, + ShieldIcon, + ChatIcon, + ArrowUpRightThickIcon, +} from "@/app/_components/icons"; +import { Text } from "@/app/_components/text"; +import { INFORMATION_LINKS } from "@/app/_constants"; + +const features = [ + { + Icon: , + title: "Web2-Grade UX", + body: "Users want to use apps, not bridges. Across+ upgrades dapp UX by abstracting bridging to the background for a Web2-like experience.", + }, + { + Icon: , + title: "Secure by Design", + body: "Most cross-chain messaging solutions increase trust assumptions vs. the chains they connect. Across+ actions are not cross-chain messages -- they are actions to execute when assets are delivered on the destination.", + }, + { + Icon: , + title: "intents-based Architecture", + body: "Cross-chain intents are cross-chain limit orders plus a protocol action to execute on destination. Simply attach the intent order standard to protocol actions to create seamless cross-chain experiences.", + }, +]; + +export function FeaturesSection() { + return ( +
+
+ + +users +TVL +chains + + + Seamless Cross-chain Onboarding + +
+
+ {features.map((feature) => ( +
+ {feature.Icon} + + {feature.title} + + {feature.body} +
+ ))} +
+
+ + across.to/docs + +
+
+ + Visit the Across+ documentation page to learn the ins and outs of how + we've built the system. + + + + visit docs + +
+ +
+
+
+
+
+
+ ); +} diff --git a/src/app/(routes)/across-plus/_components/hero-section.tsx b/src/app/(routes)/across-plus/_components/hero-section.tsx new file mode 100644 index 0000000..233eb40 --- /dev/null +++ b/src/app/(routes)/across-plus/_components/hero-section.tsx @@ -0,0 +1,53 @@ +import Image from "next/image"; + +import { Hero } from "@/app/_components/hero"; +import { Text } from "@/app/_components/text"; +import { ArrowRightIcon } from "@/app/_components/icons/arrow-right"; +import plusHeroSrc from "@/app/_assets/plus-hero.png"; +import { INFORMATION_LINKS } from "@/app/_constants"; + +export function HeroSection() { + return ( + +
+
+ Across plus graphic +
+
+ + Cross-Chain{" "} +
+ Bridge Hooks{" "} +
+ + To +
Fulfill +
{" "} + {/*
*/} + User Intents +
+
+ + Bridge abstraction promotes user onboarding and bootstraps cross-chain + capital by bundling bridge + protocol actions within dapps. + +
+ + go to docs +
+ +
+
+
+
+
+ ); +} diff --git a/src/app/(routes)/across-plus/page.tsx b/src/app/(routes)/across-plus/page.tsx index d98b62d..804901e 100644 --- a/src/app/(routes)/across-plus/page.tsx +++ b/src/app/(routes)/across-plus/page.tsx @@ -1,6 +1,7 @@ import { Metadata } from "next"; -import { Hero } from "@/app/_components/hero"; +import { HeroSection } from "./_components/hero-section"; +import { FeaturesSection } from "./_components/features-section"; export const metadata: Metadata = { title: "Across Plus", @@ -9,10 +10,9 @@ export const metadata: Metadata = { export default function PlusLanding() { return ( -
- -
Across Plus
-
+
+ +
); } diff --git a/src/app/(routes)/across-settlement/page.tsx b/src/app/(routes)/across-settlement/page.tsx index 00e761c..efe1b7c 100644 --- a/src/app/(routes)/across-settlement/page.tsx +++ b/src/app/(routes)/across-settlement/page.tsx @@ -1,7 +1,5 @@ import { Metadata } from "next"; -import { Hero } from "@/app/_components/hero"; - export const metadata: Metadata = { title: "Across Settlement", description: "Interoperability powered by Intents.", @@ -10,9 +8,7 @@ export const metadata: Metadata = { export default function SettlementLanding() { return (
- -
Across Settlement
-
+
Across Settlement
); } diff --git a/src/app/_assets/plus-hero.png b/src/app/_assets/plus-hero.png new file mode 100644 index 0000000..274b6df Binary files /dev/null and b/src/app/_assets/plus-hero.png differ diff --git a/src/app/_components/header-nav/products-sub-nav.tsx b/src/app/_components/header-nav/products-sub-nav.tsx index b32dc8b..d51219b 100644 --- a/src/app/_components/header-nav/products-sub-nav.tsx +++ b/src/app/_components/header-nav/products-sub-nav.tsx @@ -32,8 +32,8 @@ export function ProductsSubNav(props: { navItems: NavItem[] }) { const isCurrentPath = (href: string) => pathname.startsWith(href); return ( -
-
+
+
{props.navItems.map((item) => ( ; +type HeroProps = ComponentProps<"section"> & { + title: string; +}; -export function Hero({ className, children, ...props }: HeroProps) { +export function Hero({ className, children, title, ...props }: HeroProps) { return (
{children} - +
); } diff --git a/src/app/_components/icons/arrow-up-right-thick.tsx b/src/app/_components/icons/arrow-up-right-thick.tsx new file mode 100644 index 0000000..ad1473f --- /dev/null +++ b/src/app/_components/icons/arrow-up-right-thick.tsx @@ -0,0 +1,29 @@ +import { SVGProps } from "react"; + +export function ArrowUpRightThickIcon(props: SVGProps) { + return ( + + + + + ); +} diff --git a/src/app/_components/icons/gradient/shield-small.tsx b/src/app/_components/icons/gradient/shield-small.tsx index c757dd0..e554310 100644 --- a/src/app/_components/icons/gradient/shield-small.tsx +++ b/src/app/_components/icons/gradient/shield-small.tsx @@ -8,6 +8,7 @@ export function ShieldIcon(props: SVGProps) { viewBox="0 0 96 96" fill="none" xmlns="http://www.w3.org/2000/svg" + {...props} >
- Integrated Partners + {props.title}