Files
reui-blocks/blocks/feature257.tsx
T

111 lines
3.4 KiB
TypeScript

import { CardSpotlight } from "@/components/aceternity/card-spotlight";
import { cn } from "@/lib/utils";
interface ToolItem {
id: string;
category: string;
name: string;
logo: string;
imageAlt: string;
}
const TOOLS: ToolItem[] = [
{
id: "astro",
category: "ترافیک ارگانیک",
name: "Astro",
logo: "/block-media/shadcnblocks/block/logos/astro-icon.svg",
imageAlt: "داشبورد SEO",
},
{
id: "gatsby",
category: "رتبه‌بندی",
name: "Gatsby",
logo: "/block-media/shadcnblocks/block/logos/gatsby-icon-black.svg",
imageAlt: "تحلیل کلمات کلیدی",
},
{
id: "github",
category: "محتوای SEO",
name: "GitHub",
logo: "/block-media/shadcnblocks/block/logos/github-icon-black.svg",
imageAlt: "گزارش رتبه جستجو",
},
{
id: "nextjs",
category: "بهینه‌سازی جستجو",
name: "Next.js",
logo: "/block-media/shadcnblocks/block/logos/nextjs-icon.svg",
imageAlt: "داشبورد SEO",
},
{
id: "figma",
category: "ترافیک ارگانیک",
name: "Figma",
logo: "/block-media/shadcnblocks/block/logos/figma.svg",
imageAlt: "تحلیل کلمات کلیدی",
},
{
id: "remix",
category: "رتبه‌بندی",
name: "Remix",
logo: "/block-media/shadcnblocks/block/logos/remix-icon-black.svg",
imageAlt: "گزارش رتبه جستجو",
},
{
id: "vercel",
category: "محتوای SEO",
name: "Vercel",
logo: "/block-media/shadcnblocks/block/logos/vercel-icon.svg",
imageAlt: "داشبورد SEO",
},
{
id: "tailwind",
category: "رتبه کلمات کلیدی را پیگیری کنید",
name: "بهینه‌سازی جستجو",
logo: "/block-media/shadcnblocks/block/logos/tailwind-icon-black.svg",
imageAlt: "تحلیل کلمات کلیدی",
},
];
interface Feature257Props {
className?: string;
}
const ToolCard = ({ tool }: { tool: ToolItem }) => (
<CardSpotlight className="group flex h-96 flex-col items-start justify-between rounded-md border border-border bg-background p-2 text-start transition-all duration-300 hover:bg-black hover:text-white md:p-4">
<div className="z-10 rounded-md border border-border px-2 py-1 text-xs font-medium transition-colors duration-300 group-hover:border-white md:px-4 md:py-2 md:text-sm">
{tool.category}
</div>
<img
src={tool.logo}
alt={tool.imageAlt}
className="mx-auto mb-4 h-24 object-contain [filter:brightness(0)] transition-all duration-300 group-hover:[filter:brightness(1)_invert(1)] dark:invert"
/>
<h2 className="z-10 text-xl font-normal transition-colors duration-300 lg:text-3xl">
{tool.name}
</h2>
</CardSpotlight>
);
const Feature257 = ({ className }: Feature257Props) => {
return (
<section dir="rtl" lang="fa" className={cn("bg-muted py-16 sm:py-32", className)}>
<div className="container">
<div className="grid grid-cols-1 gap-4 md:grid-cols-2">
{TOOLS.slice(0, 2).map((tool) => (
<ToolCard key={tool.id} tool={tool} />
))}
</div>
<div className="mt-4 grid grid-cols-1 gap-4 md:grid-cols-2 lg:grid-cols-3">
{TOOLS.slice(2, 9).map((tool) => (
<ToolCard key={tool.id} tool={tool} />
))}
</div>
</div>
</section>
);
};
export { Feature257 };