"use client"; import "swiper/css"; import "swiper/css/effect-creative"; import "swiper/css/pagination"; import "swiper/css/autoplay"; import { motion, useAnimation, useInView } from "framer-motion"; import { useEffect, useId, useRef } from "react"; import React from "react"; import { Autoplay, EffectCreative, Pagination } from "swiper/modules"; import { Swiper, SwiperSlide } from "swiper/react"; import { Button } from "@/components/ui/button"; import { cn } from "@/lib/utils"; interface Hero211Props { className?: string; } const Hero211 = ({ className }: Hero211Props) => { const images = [ { src: "/block-media/shadcnblocks/block/lummi/random11.jpeg", alt: "تصویر نمونه", name: "Joanna Doe", }, { src: "/block-media/shadcnblocks/block/lummi/random1.jpeg", alt: "تصویر نمونه", name: "Joan Doe", }, { src: "/block-media/shadcnblocks/block/lummi/random2.jpeg", alt: "تصویر نمونه", name: "مریم چناری", }, { src: "/block-media/shadcnblocks/block/lummi/person1.jpeg", alt: "تصویر نمونه", name: "Joanna Doe", }, { src: "/block-media/shadcnblocks/block/lummi/person2.jpeg", alt: "تصویر نمونه", name: "Joan Doe", }, { src: "/block-media/shadcnblocks/block/lummi/person3.jpeg", alt: "تصویر نمونه", name: "مریم چناری", }, { src: "/block-media/shadcnblocks/block/lummi/person4.jpeg", alt: "تصویر نمونه", name: "Joanna Doe", }, { src: "/block-media/shadcnblocks/block/lummi/bw11.jpeg", alt: "تصویر نمونه", name: "Joan Doe", }, ]; const css = ` .swiper { width: 300px; height: 330px; border-radius: 30px; } .swiper-slide { display: flex; align-items: center; justify-content: center; font-size: 22px; font-weight: bold; color: #fff; border-radius: 25px; background-color: #000; } .swiper-pagination-bullet { background-color: #fff; opacity: 0.5; } .swiper-pagination-bullet-active { opacity: 1; } `; return (

کمتر زمان صرف کنید، بیشتر بسازید

صدها بلاک و کامپوننت آماده مبتنی بر رابط کاربری، استایل‌دهی مدرن و ری یو آی که مستقیماً در پروژه‌های شما قابل استفاده هستند.

{images.map((image, idx) => ( {image.alt} ))}
{/* RTL: sit to the left of the button so handwriting doesn't cover it */}

همین امروز نسخه رایگان را امتحان کنید

); }; export { Hero211 }; interface MarqueeProps { className?: string; reverse?: boolean; pauseOnHover?: boolean; children?: React.ReactNode; vertical?: boolean; repeat?: number; [key: string]: unknown; } function Marquee({ className, reverse, pauseOnHover = false, children, vertical = false, repeat = 4, ...props }: MarqueeProps) { return (
{Array(repeat) .fill(0) .map((_, i) => (
{children}
))}
); } function Card() { const id = useId(); const controls = useAnimation(); const ref = useRef(null); const inView = useInView(ref, { once: true }); useEffect(() => { if (inView) { controls.start({ opacity: 1, transition: { delay: Math.random() * 2, ease: "easeOut", duration: 1 }, }); } }, [controls, inView]); return ( ); } export function SkiperUiMarquee() { return (
{Array.from({ length: 6 }).map((_, idx) => (
{Array.from({ length: 5 }).map((_, idx) => ( ))}
))}
); }