Xenova's picture
Xenova HF Staff
Upload 88 files
f672a5d verified
import type { ReactNode } from "react";
interface FeatureCardProps {
icon: ReactNode;
title: string;
description: string;
onClick?: () => void;
className?: string;
}
export function FeatureCard({
icon,
title,
description,
onClick,
className = "",
}: FeatureCardProps) {
const Component = onClick ? "button" : "div";
return (
<Component
onClick={onClick}
className={`group relative flex flex-col items-center rounded-[14px] border-[2px] border-[rgba(220,210,180,0.45)] bg-[linear-gradient(160deg,rgba(28,28,28,0.97)_0%,rgba(10,10,10,0.99)_100%)] px-4 py-4 text-center transition-all duration-300 hover:border-[rgba(235,225,195,0.7)] hover:-translate-y-[3px] hover:shadow-[0_6px_24px_rgba(0,0,0,0.5),0_0_15px_rgba(220,210,180,0.07)] ${onClick ? "cursor-pointer" : ""} ${className}`}
>
<div className="pointer-events-none absolute inset-0 rounded-[14px] bg-[radial-gradient(ellipse_at_50%_0%,rgba(235,225,190,0.07)_0%,transparent_55%)]" />
<div className="relative mb-2 flex h-10 w-10 items-center justify-center">
{icon}
</div>
<p className="relative text-xs font-medium text-[#f0f0f0]">{title}</p>
<p className="relative mt-1 text-[11px] leading-relaxed text-[#888888]">
{description}
</p>
</Component>
);
}