85 lines
3.6 KiB
TypeScript
85 lines
3.6 KiB
TypeScript
"use client";
|
|
|
|
import { motion } from "framer-motion";
|
|
import { ArrowRight } from "lucide-react";
|
|
import React from "react";
|
|
|
|
import { PointerHighlight } from "@/components/aceternity/pointer-highlight";
|
|
import { Button } from "@/components/ui/button";
|
|
import { useIsMobile } from "@/hooks/use-mobile";
|
|
import { cn } from "@/lib/utils";
|
|
|
|
interface Hero245Props {
|
|
className?: string;
|
|
}
|
|
|
|
const Hero245 = ({ className }: Hero245Props) => {
|
|
const isMobile = useIsMobile();
|
|
|
|
return (
|
|
<section
|
|
className={cn(
|
|
"relative grid w-full overflow-hidden py-32",
|
|
className,
|
|
)}
|
|
>
|
|
<div className="relative z-10 container grid h-full min-w-0 grid-cols-1 items-center justify-center gap-6">
|
|
<div className="flex min-w-0 flex-col items-center justify-center text-center">
|
|
<div className="mb-10 flex max-w-full min-w-0 flex-wrap items-center justify-center gap-3 rounded-full bg-muted-foreground/5 p-1 pe-4 text-sm font-medium tracking-tight text-muted-foreground">
|
|
<div className="flex items-center gap-3 rounded-full bg-muted-foreground/10 px-4 py-1.5">
|
|
<span className="inline-block size-2 shrink-0 rounded-full bg-blue-500" />
|
|
<span>در حال استخدام هستیم</span>
|
|
</div>
|
|
<div className="flex items-center gap-2">
|
|
به تیم ما بپیوندید{" "}
|
|
<ArrowRight className="size-4 shrink-0 rtl:rotate-180" />
|
|
</div>
|
|
</div>
|
|
<h1 className="max-w-2xl text-balance text-2xll font-semibold tracking-tighter lg:text-2xll">
|
|
پروژه بعدی خود را با{" "}
|
|
<PointerHighlight containerClassName="inline-block">
|
|
<span>آماده تولید</span>
|
|
</PointerHighlight>
|
|
به سطحی حرفهای ارتقا دهید
|
|
</h1>
|
|
<p className="mt-10 max-w-lg text-balance text-muted-foreground">
|
|
صدها بلاک و کامپوننت آماده مبتنی بر رابط کاربری، استایلدهی مدرن و ری یو آی که مستقیماً در پروژههای شما قابل استفاده هستند.
|
|
</p>
|
|
|
|
<div className="mt-10 flex w-full min-w-0 flex-col items-center justify-center gap-2">
|
|
<Button className="rounded-2xl px-6 py-6 text-background shadow-[0px_1px_3px_#0000001a,inset_0px_2px_0px_#ffffff40] md:rounded-3xl md:px-7 md:py-7 md:text-base">
|
|
<p className="ms-1 text-xl text-background md:ms-3 md:text-xl">
|
|
|
|
</p>{" "}
|
|
دانلود نسخه macOS
|
|
</Button>
|
|
<Button className="text-sm text-muted-foreground" variant="link">
|
|
دانلود نسخه Windows
|
|
</Button>
|
|
</div>
|
|
</div>
|
|
<div className="relative mt-10 flex h-[80vh] w-full min-w-0 items-center justify-center overflow-hidden rounded-4xl border">
|
|
<img
|
|
src="/block-media/shadcnblocks/block/guri3/img7.jpeg"
|
|
alt="تصویر نمونه"
|
|
className="size-full object-cover"
|
|
/>
|
|
</div>
|
|
</div>
|
|
<div className="pointer-events-none absolute inset-0 z-0 flex h-full w-full min-w-0 overflow-hidden">
|
|
{Array.from({ length: isMobile ? 8 : 18 }).map((_, index) => (
|
|
<motion.div
|
|
initial={{ opacity: 0 }}
|
|
whileInView={{ opacity: 1 }}
|
|
transition={{ duration: 0.5, delay: index * 0.05 }}
|
|
key={index}
|
|
className="h-full min-w-0 flex-1 bg-gradient-to-l from-transparent to-muted/50"
|
|
/>
|
|
))}
|
|
</div>
|
|
</section>
|
|
);
|
|
};
|
|
|
|
export { Hero245 };
|