File size: 1,139 Bytes
390e277 0d21acd 390e277 0d21acd 390e277 0d21acd 390e277 0d21acd 390e277 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
import Link from 'next/link';
import { Badge } from '@/components/ui/badge';
interface PillLinkProps {
text: string;
link: string;
isNew?: boolean;
newText?: string;
}
const PillLink: React.FC<PillLinkProps> = ({ text, link, isNew = false, newText = 'NEW' }) => {
return (
<Link target="_blank" href={link}>
<Badge
className="
mb-4 bg-gray-900 px-3 py-1.5 text-xs font-medium text-white
shadow-md transition-all duration-200
hover:bg-gray-800 hover:shadow-lg
transform hover:scale-105
rounded-full relative
overflow-hidden
group
"
>
<span className="relative z-10">
{(isNew || newText) && (
<span className="mr-2 rounded-full bg-white px-1.5 py-0.5 text-[10px] font-bold text-gray-900">
{newText}
</span>
)}
{text}
</span>
<span className="absolute inset-0 bg-gradient-to-r from-white to-gray-300 opacity-0 group-hover:opacity-20 transition-opacity duration-200"></span>
</Badge>
</Link>
);
};
export default PillLink; |