Files
reui-blocks/blocks/hero38.tsx
T

70 lines
3.1 KiB
TypeScript

import { ArrowRight } from "lucide-react";
import { Button } from "@/components/ui/button";
import { cn } from "@/lib/utils";
interface Hero38Props {
className?: string;
}
const Hero38 = ({ className }: Hero38Props) => {
return (
<section className={cn("", className)}>
<div className="container">
<div className="grid items-center gap-8 lg:grid-cols-2">
<div className="flex flex-col items-center py-32 text-center lg:mx-auto lg:items-start lg:px-0 lg:text-start">
<p>نسخه جدید منتشر شد</p>
<h1 className="my-6 text-xl font-bold text-pretty lg:text-2xll">
توسعه محصولات دیجیتال را سریع‌تر آغاز کنید
</h1>
<p className="mb-8 max-w-xl text-muted-foreground lg:text-xl">
بلاک‌های آماده را متناسب با نیاز خود سفارشی‌سازی کنید و بدون شروع از صفر، پروژه را توسعه دهید.
</p>
<div className="flex w-full flex-col justify-center gap-2 sm:flex-row lg:justify-start">
<Button className="w-full sm:w-auto">
<ArrowRight className="me-2 size-4 rtl:rotate-180" />
شروع رایگان
</Button>
<Button variant="outline" className="w-full sm:w-auto">
مشاهده امکانات
</Button>
</div>
</div>
<div className="relative aspect-3/4">
<div className="absolute inset-0 flex items-center justify-center">
<svg
xmlns="http://www.w3.org/2000/svg"
version="1.1"
viewBox="0 0 800 800"
className="h-full w-full text-muted-foreground opacity-20"
>
{Array.from(Array(720).keys()).map((dot, index, array) => {
const angle = 0.2 * index;
const scalar = 40 + index * (360 / array.length);
const x = Math.round(Math.cos(angle) * scalar);
const y = Math.round(Math.sin(angle) * scalar);
return (
<circle
key={index}
r={(3 * index) / array.length}
cx={400 + x}
cy={400 + y}
opacity={1 - Math.sin(angle)}
/>
);
})}
</svg>
</div>
<div className="absolute top-[10%] left-[8%] flex aspect-5/6 w-[38%] justify-center rounded-lg border border-border bg-accent"></div>
<div className="absolute top-[20%] right-[12%] flex aspect-square w-[20%] justify-center rounded-lg border border-border bg-accent"></div>
<div className="absolute right-[24%] bottom-[24%] flex aspect-5/6 w-[38%] justify-center rounded-lg border border-border bg-accent"></div>
</div>
</div>
</div>
</section>
);
};
export { Hero38 };