diff --git a/public/ens-logo.png b/public/ens-logo.png new file mode 100644 index 0000000..4e67677 Binary files /dev/null and b/public/ens-logo.png differ diff --git a/public/eth-global.png b/public/eth-global.png new file mode 100644 index 0000000..83256e3 Binary files /dev/null and b/public/eth-global.png differ diff --git a/public/eth-logo.svg b/public/eth-logo.svg deleted file mode 100644 index 684e968..0000000 --- a/public/eth-logo.svg +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/src/app/(public)/components/features-section.tsx b/src/app/(public)/components/features-section.tsx index 88c8f25..5ab1a5e 100644 --- a/src/app/(public)/components/features-section.tsx +++ b/src/app/(public)/components/features-section.tsx @@ -1,84 +1,207 @@ -import { CheckCircle, DollarSign, Shield, Sparkles, Users } from 'lucide-react' +'use client' + +import { + ArrowRight, + Globe, + Mail, + PieChart, + Rocket, + ShieldCheck, + Zap, +} from 'lucide-react' +import { motion, useScroll, useTransform } from 'motion/react' +import * as React from 'react' + +import { cn } from '@/lib/utils' interface Feature { icon: React.ReactNode title: string description: string + highlight: string } const features: Feature[] = [ { - icon: , + icon: , title: 'No wallet? No problem', description: "Start with just an email. We'll create an embedded wallet for you and upgrade to self-custody when you're ready.", + highlight: 'Embedded Wallets', }, { - icon: , - title: 'Transparent revenue splits', + icon: , + title: 'Your .eth domain', description: - 'Set revenue percentages once. Every payment automatically splits between treasury and owners on-chain.', + 'Professional ENS names that work as domains, wallets, and identities. Own your name forever.', + highlight: 'Onchain Identity', }, { - icon: , + icon: , title: 'Multi-sig security', description: 'Enterprise-grade protection with Safe multisig wallets. Multiple signatures required for critical decisions.', + highlight: 'Treasury Safe', }, { - icon: , - title: 'Your .eth domain', + icon: , + title: 'Gasless transactions', description: - 'Professional ENS names that work as domains, wallets, and identities. Own your name forever.', + "No need to buy crypto to get started. We cover gas fees for email users until you're ready to self-custody.", + highlight: 'Sponsored Gas', }, { - icon: , - title: 'Gasless transactions', + icon: , + title: 'Transparent revenue splits', description: - "No need to buy crypto to get started. We cover gas fees for email users until you're ready to self-custody.", + 'Set revenue percentages once. Every payment automatically splits between treasury and owners on-chain.', + highlight: 'Smart Splits', }, { - icon: , + icon: , title: 'Built for scale', description: 'From MVP to IPO, our infrastructure grows with you. Add team members, adjust splits, upgrade security.', + highlight: 'Growth Ready', }, ] export function FeaturesSection() { + const containerRef = React.useRef(null) + const { scrollYProgress } = useScroll({ + target: containerRef, + offset: ['start 20%', 'end 80%'], + }) + + const height = useTransform(scrollYProgress, [0, 1], ['0%', '100%']) + return ( -
-
-
-

- Everything you need to - build unstoppable -

-

- From idea to IPO, all the infrastructure you need for a transparent, - decentralized business -

+
+ {/* Dynamic Background */} +
+
+
+
+
+
+
+
-
- {features.map((feature, index) => ( -
-
-
-
- {feature.icon} -
-

- {feature.title} -

-

- {feature.description} -

-
-
- ))} +
+
+ +

+ The complete{' '} + + onchain OS + +

+

+ A unified platform for your company's entire lifecycle. From + day one to IPO. +

+
+
+ +
+ {/* Vertical Timeline Line (Desktop Center / Mobile Left) */} +
+ + + +
+ {features.map((feature, index) => ( + + ))} +
) } + +function FeatureNode({ feature, index }: { feature: Feature; index: number }) { + const isEven = index % 2 === 0 + + return ( +
+ {/* Node Point */} +
+
+
+ + {/* Content Card */} + + {/* Connector Line (Horizontal) */} +