embedingHF's picture
Upload folder using huggingface_hub
84fc8e7 verified
Raw
History Blame Contribute Delete
3.39 kB
import { CheckCircle2, Users, FileCode, Zap } from "lucide-react";
import { motion } from "motion/react";
export default function Stats() {
const statsList = [
{
id: "stat-formats",
marker: "200+",
label: "Supported Formats",
subText: "PDF, Image, Video, Audio, Archiving, Docs",
icon: <FileCode className="w-5 h-5 text-violet-600" />,
color: "from-violet-500/10 to-indigo-500/10",
},
{
id: "stat-users",
marker: "50,000+",
label: "Active Installs",
subText: "Leading offline desktop choice worldwide",
icon: <Users className="w-5 h-5 text-indigo-600" />,
color: "from-indigo-500/10 to-sky-500/10",
},
{
id: "stat-rate",
marker: "99.9%",
label: "Success Processing",
subText: "Advanced local encoding checks",
icon: <CheckCircle2 className="w-5 h-5 text-emerald-600" />,
color: "from-emerald-500/10 to-teal-500/10",
},
{
id: "stat-gpu",
marker: "0ms Cloud Delay",
label: "GPU Accelerated",
subText: "100% on-device AI upscaling and codecs",
icon: <Zap className="w-5 h-5 text-fuchsia-600" />,
color: "from-fuchsia-100 to-pink-100",
},
];
const containerVariants = {
hidden: { opacity: 0 },
visible: {
opacity: 1,
transition: {
staggerChildren: 0.1,
},
},
};
const itemVariants = {
hidden: { opacity: 0, y: 20 },
visible: { opacity: 1, y: 0, transition: { type: "spring", stiffness: 100 } },
};
return (
<section className="py-16 bg-white border-y border-slate-100">
<div className="max-w-7xl mx-auto px-4 md:px-8">
<motion.div
variants={containerVariants}
initial="hidden"
whileInView="visible"
viewport={{ once: true, margin: "-100px" }}
className="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-6"
id="stats-container"
>
{statsList.map((stat) => (
<motion.div
key={stat.id}
variants={itemVariants}
whileHover={{ y: -5, shadow: "0 10px 30px -15px rgba(0,0,0,0.06)" }}
className="p-6 rounded-3xl bg-slate-50 border border-slate-100/60 text-left transition-all relative overflow-hidden group"
id={stat.id}
>
{/* Decorative side shape */}
<div className="absolute top-0 right-0 w-32 h-32 bg-slate-100/40 rounded-full blur-2xl group-hover:scale-125 transition-transform duration-500 pointer-events-none" />
<div className="flex items-center space-x-3 mb-4">
<div className={`p-3 rounded-2xl bg-white shadow-sm flex items-center justify-center`}>
{stat.icon}
</div>
<div className="font-display font-bold text-2xl md:text-3xl text-slate-900 tracking-tight">
{stat.marker}
</div>
</div>
<div>
<h4 className="text-slate-800 text-sm font-semibold tracking-wide mb-1">
{stat.label}
</h4>
<p className="text-xs text-slate-500 leading-relaxed font-light">
{stat.subText}
</p>
</div>
</motion.div>
))}
</motion.div>
</div>
</section>
);
}