Spaces:
Running
Running
| 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> | |
| ); | |
| } | |