ln / components /home-hero.tsx
MoShow's picture
Upload 252 files
78d0e31 verified
"use client"
import { useState, useEffect } from "react"
import { Button } from "@/components/ui/button"
import { Card, CardContent } from "@/components/ui/card"
import { Badge } from "@/components/ui/badge"
import { Flame, Shield, Users, Activity, ArrowRight, Zap } from "lucide-react"
import Link from "next/link"
import { useMobile } from "@/hooks/use-mobile"
import { FlameAnimation } from "@/components/flame-animation"
import { TypedIntroText } from "@/components/typed-intro-text"
export function HomeHero() {
const [mounted, setMounted] = useState(false)
const isMobile = useMobile()
useEffect(() => {
setMounted(true)
}, [])
if (!mounted) {
return (
<div className="min-h-screen flex items-center justify-center">
<div className="animate-pulse text-orange-500">
<Flame className="h-12 w-12" />
</div>
</div>
)
}
return (
<section className="relative min-h-screen flex items-center justify-center px-4 py-20">
<div className="absolute inset-0 bg-gradient-to-br from-orange-900/20 via-red-900/10 to-black/50" />
<div className="relative z-10 container mx-auto max-w-6xl">
<div className="text-center space-y-8">
{/* Flame Animation */}
<div className="flex justify-center mb-8">
<FlameAnimation />
</div>
{/* Main Title */}
<div className="space-y-4">
<Badge className="bg-orange-500/20 text-orange-300 border-orange-500/30 px-4 py-2">
<Zap className="h-4 w-4 mr-2" />
Genesis Testnet Live
</Badge>
<h1 className="text-4xl md:text-6xl lg:text-7xl font-bold text-white leading-tight">
<span className="bg-gradient-to-r from-orange-400 to-red-500 bg-clip-text text-transparent">
FlameBorn
</span>
<br />
<span className="text-2xl md:text-3xl lg:text-4xl text-gray-300">Africa's Health Restoration Engine</span>
</h1>
<div className="max-w-3xl mx-auto">
<TypedIntroText />
</div>
</div>
{/* Stats Cards */}
<div className="grid grid-cols-1 md:grid-cols-3 gap-6 max-w-4xl mx-auto">
<Card className="bg-white/5 backdrop-blur-sm border-orange-500/20">
<CardContent className="p-6 text-center">
<Shield className="h-8 w-8 text-orange-500 mx-auto mb-3" />
<div className="text-2xl font-bold text-white">2</div>
<div className="text-gray-400">Active Validators</div>
</CardContent>
</Card>
<Card className="bg-white/5 backdrop-blur-sm border-orange-500/20">
<CardContent className="p-6 text-center">
<Users className="h-8 w-8 text-orange-500 mx-auto mb-3" />
<div className="text-2xl font-bold text-white">1M+</div>
<div className="text-gray-400">Max Token Supply</div>
</CardContent>
</Card>
<Card className="bg-white/5 backdrop-blur-sm border-orange-500/20">
<CardContent className="p-6 text-center">
<Activity className="h-8 w-8 text-orange-500 mx-auto mb-3" />
<div className="text-2xl font-bold text-white">Live</div>
<div className="text-gray-400">Testnet Status</div>
</CardContent>
</Card>
</div>
{/* CTA Buttons */}
<div className="flex flex-col sm:flex-row gap-4 justify-center items-center">
<Link href="/testnet">
<Button size="lg" className="bg-orange-500 hover:bg-orange-600 text-white px-8 py-4 text-lg">
<Flame className="h-5 w-5 mr-2" />
Enter Testnet
<ArrowRight className="h-5 w-5 ml-2" />
</Button>
</Link>
<Link href="/healers">
<Button
variant="outline"
size="lg"
className="border-orange-500 text-orange-400 hover:bg-orange-500/20 px-8 py-4 text-lg bg-transparent"
>
<Shield className="h-5 w-5 mr-2" />
Become Validator
</Button>
</Link>
</div>
{/* Network Status */}
<div className="pt-8">
<div className="flex items-center justify-center space-x-2 text-sm text-gray-400">
<div className="w-2 h-2 bg-green-500 rounded-full animate-pulse"></div>
<span>Connected to Celo Alfajores Testnet</span>
</div>
</div>
</div>
</div>
</section>
)
}