رغد
feat: complete platform — auth, deployment, hardening
344e369
raw
history blame
11.3 kB
"use client"
import { motion } from "framer-motion"
export function HeroSection() {
return (
<section id="home" className="relative min-h-screen flex items-center justify-center overflow-hidden pt-24 pb-16">
{/* Animated Background */}
<div className="absolute inset-0 gradient-mesh" />
{/* Floating Gradient Orbs */}
<motion.div
animate={{
scale: [1, 1.2, 1],
x: [0, 30, 0],
y: [0, -20, 0],
}}
transition={{ duration: 15, repeat: Infinity, ease: "easeInOut" }}
className="absolute top-20 right-20 w-96 h-96 rounded-full bg-primary/20 blur-3xl"
/>
<motion.div
animate={{
scale: [1.2, 1, 1.2],
x: [0, -40, 0],
y: [0, 30, 0],
}}
transition={{ duration: 18, repeat: Infinity, ease: "easeInOut" }}
className="absolute bottom-20 left-20 w-80 h-80 rounded-full bg-secondary/25 blur-3xl"
/>
<motion.div
animate={{
scale: [1, 1.3, 1],
y: [0, -40, 0],
}}
transition={{ duration: 12, repeat: Infinity, ease: "easeInOut" }}
className="absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-[600px] h-[600px] rounded-full bg-primary/10 blur-3xl"
/>
<div className="container mx-auto px-6 relative z-10">
<div className="grid lg:grid-cols-2 gap-16 items-center">
{/* Text Content */}
<motion.div
initial={{ opacity: 0, x: -50 }}
animate={{ opacity: 1, x: 0 }}
transition={{ duration: 1, ease: [0.22, 1, 0.36, 1] }}
className="text-center lg:text-right"
>
<motion.div
initial={{ opacity: 0, y: 20 }}
animate={{ opacity: 1, y: 0 }}
transition={{ delay: 0.2, duration: 0.8 }}
className="inline-flex items-center gap-2 px-4 py-2 rounded-full glass mb-8"
>
<span className="w-2 h-2 rounded-full bg-primary animate-pulse" />
<span className="text-sm text-muted-foreground">مدعوم بالذكاء الاصطناعي</span>
</motion.div>
<motion.h1
initial={{ opacity: 0, y: 30 }}
animate={{ opacity: 1, y: 0 }}
transition={{ delay: 0.3, duration: 0.8 }}
className="text-4xl md:text-5xl lg:text-6xl font-bold leading-tight mb-6 text-balance"
>
<span className="text-foreground">تحليل تقاريرك الطبية</span>
<br />
<span className="bg-gradient-to-l from-primary-foreground via-accent-foreground to-muted-foreground bg-clip-text">
بذكاء وبساطة
</span>
</motion.h1>
<motion.p
initial={{ opacity: 0, y: 30 }}
animate={{ opacity: 1, y: 0 }}
transition={{ delay: 0.4, duration: 0.8 }}
className="text-lg md:text-xl text-muted-foreground mb-10 leading-relaxed max-w-xl mx-auto lg:mx-0 lg:mr-0 text-pretty"
>
نحوّل المصطلحات الطبية المعقدة إلى لغة عربية واضحة وسهلة الفهم، مع توصيات صحية مخصصة لحالتك
</motion.p>
<motion.div
initial={{ opacity: 0, y: 30 }}
animate={{ opacity: 1, y: 0 }}
transition={{ delay: 0.5, duration: 0.8 }}
className="flex flex-col sm:flex-row gap-4 justify-center lg:justify-start"
>
<motion.a
href="#analysis"
whileHover={{ scale: 1.03 }}
whileTap={{ scale: 0.97 }}
className="px-8 py-4 rounded-2xl gradient-primary text-primary-foreground font-semibold text-lg shadow-glow-primary hover:shadow-glow-primary transition-all duration-300"
>
ابدأ التحليل الآن
</motion.a>
<motion.a
href="#about"
whileHover={{ scale: 1.03 }}
whileTap={{ scale: 0.97 }}
className="px-8 py-4 rounded-2xl glass text-foreground font-semibold text-lg hover:bg-card/80 transition-all duration-300"
>
اكتشف المزيد
</motion.a>
</motion.div>
{/* Stats */}
<motion.div
initial={{ opacity: 0, y: 30 }}
animate={{ opacity: 1, y: 0 }}
transition={{ delay: 0.6, duration: 0.8 }}
className="flex items-center gap-8 mt-12 justify-center lg:justify-start"
>
{[
{ value: "+10K", label: "تقرير محلل" },
{ value: "98%", label: "دقة التحليل" },
{ value: "24/7", label: "دعم متواصل" },
].map((stat, index) => (
<div key={index} className="text-center">
<div className="text-2xl font-bold text-foreground">{stat.value}</div>
<div className="text-sm text-muted-foreground">{stat.label}</div>
</div>
))}
</motion.div>
</motion.div>
{/* Floating Cards */}
<motion.div
initial={{ opacity: 0, x: 50 }}
animate={{ opacity: 1, x: 0 }}
transition={{ duration: 1, ease: [0.22, 1, 0.36, 1], delay: 0.3 }}
className="relative hidden lg:block h-[500px]"
>
{/* Main Card */}
<motion.div
animate={{ y: [0, -10, 0] }}
transition={{ duration: 6, repeat: Infinity, ease: "easeInOut" }}
className="absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-80 glass-strong rounded-3xl p-6 shadow-soft"
>
<div className="flex items-center gap-3 mb-4">
<div className="w-12 h-12 rounded-2xl gradient-primary flex items-center justify-center">
<svg className="w-6 h-6 text-primary-foreground" fill="none" viewBox="0 0 24 24" stroke="currentColor" strokeWidth="1.5">
<path strokeLinecap="round" strokeLinejoin="round" d="M9 12h3.75M9 15h3.75M9 18h3.75m3 .75H18a2.25 2.25 0 002.25-2.25V6.108c0-1.135-.845-2.098-1.976-2.192a48.424 48.424 0 00-1.123-.08m-5.801 0c-.065.21-.1.433-.1.664 0 .414.336.75.75.75h4.5a.75.75 0 00.75-.75 2.25 2.25 0 00-.1-.664m-5.8 0A2.251 2.251 0 0113.5 2.25H15c1.012 0 1.867.668 2.15 1.586m-5.8 0c-.376.023-.75.05-1.124.08C9.095 4.01 8.25 4.973 8.25 6.108V8.25m0 0H4.875c-.621 0-1.125.504-1.125 1.125v11.25c0 .621.504 1.125 1.125 1.125h9.75c.621 0 1.125-.504 1.125-1.125V9.375c0-.621-.504-1.125-1.125-1.125H8.25zM6.75 12h.008v.008H6.75V12zm0 3h.008v.008H6.75V15zm0 3h.008v.008H6.75V18z" />
</svg>
</div>
<div>
<div className="font-semibold text-foreground">تحليل الدم الشامل</div>
<div className="text-sm text-muted-foreground">تم التحليل بنجاح</div>
</div>
</div>
<div className="space-y-3">
<div className="flex items-center justify-between">
<span className="text-muted-foreground">الهيموغلوبين</span>
<span className="text-success font-medium">14.2 g/dL</span>
</div>
<div className="h-2 rounded-full bg-muted overflow-hidden">
<motion.div
initial={{ width: 0 }}
animate={{ width: "78%" }}
transition={{ delay: 1, duration: 1.5, ease: "easeOut" }}
className="h-full rounded-full bg-success"
/>
</div>
</div>
</motion.div>
{/* Side Card 1 */}
<motion.div
animate={{ y: [0, 10, 0] }}
transition={{ duration: 5, repeat: Infinity, ease: "easeInOut", delay: 1 }}
className="absolute top-10 right-0 w-56 glass-strong rounded-2xl p-4 shadow-soft"
>
<div className="flex items-center gap-2 mb-2">
<div className="w-8 h-8 rounded-xl bg-success/20 flex items-center justify-center">
<svg className="w-4 h-4 text-success" fill="none" viewBox="0 0 24 24" stroke="currentColor" strokeWidth="2">
<path strokeLinecap="round" strokeLinejoin="round" d="M4.5 12.75l6 6 9-13.5" />
</svg>
</div>
<span className="text-sm font-medium text-foreground">فيتامين D</span>
</div>
<div className="text-2xl font-bold text-foreground">45 ng/mL</div>
<div className="text-xs text-success">ضمن المعدل الطبيعي</div>
</motion.div>
{/* Side Card 2 */}
<motion.div
animate={{ y: [0, -8, 0] }}
transition={{ duration: 7, repeat: Infinity, ease: "easeInOut", delay: 0.5 }}
className="absolute bottom-10 left-0 w-60 glass-strong rounded-2xl p-4 shadow-soft"
>
<div className="flex items-center gap-2 mb-3">
<div className="w-8 h-8 rounded-xl bg-secondary/50 flex items-center justify-center">
<svg className="w-4 h-4 text-secondary-foreground" fill="none" viewBox="0 0 24 24" stroke="currentColor" strokeWidth="2">
<path strokeLinecap="round" strokeLinejoin="round" d="M9.813 15.904L9 18.75l-.813-2.846a4.5 4.5 0 00-3.09-3.09L2.25 12l2.846-.813a4.5 4.5 0 003.09-3.09L9 5.25l.813 2.846a4.5 4.5 0 003.09 3.09L15.75 12l-2.846.813a4.5 4.5 0 00-3.09 3.09zM18.259 8.715L18 9.75l-.259-1.035a3.375 3.375 0 00-2.455-2.456L14.25 6l1.036-.259a3.375 3.375 0 002.455-2.456L18 2.25l.259 1.035a3.375 3.375 0 002.456 2.456L21.75 6l-1.035.259a3.375 3.375 0 00-2.456 2.456z" />
</svg>
</div>
<span className="text-sm font-medium text-foreground">تحليل ذكي</span>
</div>
<p className="text-sm text-muted-foreground leading-relaxed">
{"نتائجك تشير إلى صحة جيدة بشكل عام مع بعض التوصيات البسيطة..."}
</p>
</motion.div>
</motion.div>
</div>
</div>
{/* Scroll Indicator */}
<motion.div
initial={{ opacity: 0 }}
animate={{ opacity: 1 }}
transition={{ delay: 1.5, duration: 0.8 }}
className="absolute bottom-8 left-1/2 -translate-x-1/2"
>
<motion.div
animate={{ y: [0, 8, 0] }}
transition={{ duration: 2, repeat: Infinity, ease: "easeInOut" }}
className="w-6 h-10 rounded-full border-2 border-muted-foreground/30 flex items-start justify-center p-2"
>
<motion.div
animate={{ opacity: [0.5, 1, 0.5] }}
transition={{ duration: 2, repeat: Infinity }}
className="w-1 h-2 rounded-full bg-muted-foreground/50"
/>
</motion.div>
</motion.div>
</section>
)
}