Files
reui-blocks/blocks/hero31.tsx
T

132 lines
5.4 KiB
TypeScript

import { Button } from "@/components/ui/button";
import { cn } from "@/lib/utils";
interface Hero31Props {
className?: string;
}
const Hero31 = ({ className }: Hero31Props) => {
return (
<section className={cn("relative overflow-hidden py-32", className)}>
<div className="absolute inset-0 overflow-hidden bg-muted">
<svg
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 1400 900"
className="min-h-full min-w-full"
>
<defs>
<filter id="blur1" x="-20%" y="-20%" width="140%" height="140%">
<feFlood floodOpacity="0" result="BackgroundImageFix" />
<feBlend
mode="normal"
in="SourceGraphic"
in2="BackgroundImageFix"
result="shape"
/>
<feGaussianBlur
stdDeviation="200"
result="effect1_foregroundBlur"
/>
</filter>
<pattern
id="innerGrid"
width="40"
height="40"
patternUnits="userSpaceOnUse"
>
<path
d="M 40 0 L 0 0 0 40"
fill="none"
stroke="var(--color-background)"
strokeWidth="0.5"
strokeOpacity={0.6}
/>
</pattern>
<pattern
id="grid"
width="160"
height="160"
patternUnits="userSpaceOnUse"
>
<rect width="160" height="160" fill="url(#innerGrid)" />
<path
d="M 70 80 H 90 M 80 70 V 90"
fill="none"
stroke="var(--color-background))"
strokeWidth="1"
strokeOpacity={0.3}
/>
</pattern>
</defs>
<g filter="url(#blur1)">
<rect width="1400" height="900" fill="var(--muted)" />
<rect
x="0"
y="0"
width="1400"
height="900"
fill="var(--color-primary)"
></rect>
<g transform="translate(1400, 900)">
<path
d="M-707.3 0C-692.6 -130.2 -677.8 -260.4 -612.6 -353.7C-547.3 -446.9 -431.5 -503.2 -321 -556C-210.5 -608.8 -105.2 -658.1 0 -707.3L0 0Z"
fill="var(--color-background)"
></path>
</g>
<g transform="translate(0, 0)">
<path
d="M707.3 0C662.2 107.6 617.1 215.3 563.8 325.5C510.5 435.7 449 548.5 353.7 612.6C258.3 676.6 129.2 692 0 707.3L0 0Z"
fill="var(--color-background)"
></path>
</g>
</g>
<rect width="1400" height="900" fill="url(#grid)" />
</svg>
</div>
<div className="relative container">
<div className="flex flex-col items-center text-center">
<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">
<Button variant="outline" className="w-full sm:w-auto">
مشاهده امکانات
</Button>
<Button className="w-full sm:w-auto">شروع رایگان</Button>
</div>
</div>
</div>
<div className="relative container">
<div className="mt-16 -mb-48 flex justify-center gap-4 pt-4">
<div className="aspect-3/5 w-[320px] rounded-lg border border-border bg-background" />
<div className="absolute inset-0">
<div className="hidden h-full justify-between px-32 2xl:flex">
<div className="flex flex-col gap-8 pb-20">
<div className="flex h-[120px] w-[300px] justify-center overflow-clip rounded-lg border border-border bg-background"></div>
<div className="flex h-[190px] w-[300px] justify-center overflow-clip rounded-lg border border-border bg-background"></div>
</div>
<div className="flex flex-col gap-8 pt-20">
<div className="flex h-[190px] w-[300px] justify-center overflow-clip rounded-lg border border-border bg-background"></div>
<div className="flex h-[120px] w-[300px] justify-center overflow-clip rounded-lg border border-border bg-background"></div>
</div>
</div>
<div className="mx-auto hidden h-full max-w-6xl items-start justify-between px-12 pt-24 md:flex 2xl:hidden">
<div className="flex flex-col gap-8 pb-32">
<div className="flex h-[120px] w-[300px] justify-center overflow-clip rounded-lg border border-border bg-background"></div>
</div>
<div className="flex flex-col gap-8 pt-32">
<div className="flex h-[190px] w-[300px] justify-center overflow-clip rounded-lg border border-border bg-background"></div>
</div>
</div>
</div>
</div>
</div>
</section>
);
};
export { Hero31 };