Spaces:
Running
Running
| "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> | |
| ) | |
| } | |