30 lines
790 B
TypeScript
30 lines
790 B
TypeScript
import { cn } from "@/lib/utils"
|
|
|
|
interface BadgeProps {
|
|
variant?: "primary" | "secondary" | "accent" | "outline"
|
|
className?: string
|
|
children: React.ReactNode
|
|
}
|
|
|
|
export default function Badge({
|
|
variant = "primary",
|
|
className,
|
|
children
|
|
}: BadgeProps) {
|
|
return (
|
|
<span
|
|
className={cn(
|
|
"inline-flex items-center gap-1 rounded-full px-3 py-1 text-xs font-bold uppercase tracking-wider",
|
|
{
|
|
"bg-primary text-primary-foreground": variant === "primary",
|
|
"bg-secondary text-secondary-foreground": variant === "secondary",
|
|
"bg-accent text-accent-foreground": variant === "accent",
|
|
"border border-border text-foreground": variant === "outline"
|
|
},
|
|
className
|
|
)}
|
|
>
|
|
{children}
|
|
</span>
|
|
)
|
|
} |