Files
reui-blocks/blocks/project5b.tsx
T

172 lines
7.9 KiB
TypeScript

"use client";
import { motion } from "framer-motion";
import { cn } from "@/lib/utils";
interface Project5bProps {
className?: string;
}
const Project5b = ({ className }: Project5bProps) => {
const fadeInUp = {
initial: { opacity: 0, y: 20 },
animate: { opacity: 1, y: 0 },
transition: { duration: 0.6 },
};
const staggerContainer = {
animate: {
transition: {
staggerChildren: 0.1,
},
},
};
return (
<section dir="rtl" lang="fa" className={cn("py-24 md:py-32", className)}>
<div className="container">
<motion.header
className="pb-16 text-start md:pb-20"
initial="initial"
animate="animate"
variants={staggerContainer}
>
<div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
<motion.div variants={fadeInUp} className="space-y-6">
<div className="flex items-center gap-4">
<div className="h-px w-12 bg-foreground"></div>
<span className="text-sm font-medium tracking-wider text-muted-foreground">نکسوس لبز</span>
</div>
<h1 className="text-6xl font-bold tracking-tight text-foreground md:text-7xl lg:text-8xl">
پژواک
<br />۴۵ بلاک</h1>
</motion.div>
<div className="flex justify-start pt-16">
<div className="space-y-4">
<h3 className="text-lg font-semibold text-foreground">جزئیات نمایش</h3>
<div className="space-y-2">
<p className="text-sm text-muted-foreground">نمایش زنده آنلاین • ۲۲۴</p>
<p className="text-sm text-muted-foreground">چشم‌انداز طراحی</p>
</div>
</div>
</div>
</div>
</motion.header>
<motion.main
initial="initial"
animate="animate"
variants={staggerContainer}
className="space-y-8 md:space-y-20"
>
<motion.div variants={fadeInUp} className="relative">
<div className="relative aspect-[21/9] overflow-hidden rounded-lg bg-muted/30">
<img
src="/block-media/shadcnblocks/block/photos/nubelson-fernandes-tAJYoec13xk-unsplash.jpg"
alt="رابط کاربری، استایل‌دهی مدرن و کتابخانه پایه"
className="h-full w-full object-cover"
/>
<div className="absolute inset-0 bg-background/5" />
</div>
</motion.div>
<motion.div
variants={fadeInUp}
className="grid grid-cols-1 gap-8 md:grid-cols-2 md:gap-16"
>
<div className="space-y-6">
<div className="relative aspect-square overflow-hidden rounded-lg bg-muted/30">
<img
src="/block-media/shadcnblocks/block/photos/michal-balog-HTNB1UDJ4Hg-unsplash.jpg"
alt="پژواک نمای اصلی کتابخانه کامپوننت"
className="h-full w-full object-cover"
/>
<div className="absolute inset-0 bg-background/5" />
</div>
</div>
<div className="space-y-6">
<div className="relative aspect-square overflow-hidden rounded-lg bg-muted/30">
<img
src="/block-media/shadcnblocks/block/photos/futuristic-device-design-qcufu.png"
alt="جزئیات دست‌ساز کامپوننت با میکرواینتراکشن ظریف"
className="h-full w-full object-cover"
/>
<div className="absolute inset-0 bg-background/5" />
</div>
</div>
</motion.div>
<motion.div
variants={fadeInUp}
className="grid grid-cols-1 gap-8 text-start md:gap-16 lg:grid-cols-2"
>
<div className="space-y-8">
<div className="space-y-4">
<div className="flex items-center gap-4">
<div className="h-px w-16 bg-foreground"></div>
<span className="text-sm font-medium tracking-wider text-muted-foreground">
مفهوم
</span>
</div>
<h2 className="text-4xl font-bold tracking-tight text-foreground lg:text-5xl">مشخصات فنی</h2>
</div>
<div className="space-y-6">
<p className="text-lg leading-relaxed text-muted-foreground">این مجموعه از کاوش عمیق ما در الگوهای تکرارشونده رابط کاربری برمی‌خیزد. با مشاهده دقیق و طراحی اصولی، جوهره کامپوننت‌های قابل‌استفاده مجدد را استخراج کرده‌ایم.</p>
<p className="leading-relaxed text-muted-foreground">این نمایش، توسعه‌دهنده را دعوت می‌کند رابطه خود با بلاک‌های رابط را از نو ببیند و ساختار بلاک‌ها و تعامل حالت‌ها را کاوش کند.</p>
</div>
</div>
<div className="space-y-8">
<div className="space-y-6">
<div className="space-y-4">
<h3 className="text-xl font-semibold text-foreground">فناوری و فرآیند</h3>
<div className="space-y-3">
<div className="flex items-start gap-3">
<div className="mt-2 h-1 w-1 rounded-full bg-foreground"></div>
<p className="text-sm text-muted-foreground">اکوسیستم کامپوننت اوپن‌سورس</p>
</div>
<div className="flex items-start gap-3">
<div className="mt-2 h-1 w-1 rounded-full bg-foreground"></div>
<p className="text-sm text-muted-foreground">نمای جزئی از یک کامپوننت</p>
</div>
<div className="flex items-start gap-3">
<div className="mt-2 h-1 w-1 rounded-full bg-foreground"></div>
<p className="text-sm text-muted-foreground">مهندسی فرانت‌اند معاصر</p>
</div>
</div>
</div>
<div className="space-y-4">
<h3 className="text-xl font-semibold text-foreground">۳۲ تم</h3>
<div className="overflow-hidden">
<table className="w-full border-t border-b border-muted-foreground/20">
<tbody>
<tr className="border-b border-muted-foreground/10">
<td className="bg-muted/5 px-4 py-3 text-sm font-medium text-muted-foreground">بلاک‌ها</td>
<td className="px-4 py-3 text-sm text-foreground">۱۸۰ کامپوننت</td>
</tr>
<tr className="border-b border-muted-foreground/10">
<td className="bg-muted/5 px-4 py-3 text-sm font-medium text-muted-foreground">اوپن‌سورس</td>
<td className="px-4 py-3 text-sm text-foreground">کامپوننت‌ها</td>
</tr>
<tr>
<td className="bg-muted/5 px-4 py-3 text-sm font-medium text-muted-foreground">پوشش تست</td>
<td className="px-4 py-3 text-sm text-foreground">نمایش کتابخانه کامپوننت مدرن نمای جزئی از یک بلاک</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
</motion.div>
</motion.main>
</div>
</section>
);
};
export { Project5b };