2026-02-08 00:05:12 -08:00

24 lines
807 B
TypeScript

interface BadgeProps {
variant?: 'info' | 'success' | 'warning' | 'error' | 'neutral'
children: React.ReactNode
className?: string
}
const badgeVariants = {
info: 'bg-cyan-400/20 text-cyan-400 border border-cyan-400/30',
success: 'bg-emerald-400/20 text-emerald-400 border border-emerald-400/30',
warning: 'bg-amber-400/20 text-amber-400 border border-amber-400/30',
error: 'bg-red-400/20 text-red-400 border border-red-400/30',
neutral: 'bg-white/[0.1] text-gray-400 border border-white/[0.12]',
}
export default function Badge({ variant = 'neutral', children, className = '' }: BadgeProps) {
return (
<span
className={`inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-semibold ${badgeVariants[variant]} ${className}`}
>
{children}
</span>
)
}