Files
beStream/src/components/ui/Badge.tsx
2025-12-14 12:57:37 +01:00

44 lines
893 B
TypeScript

import { clsx } from 'clsx';
import type { ReactNode } from 'react';
interface BadgeProps {
children: ReactNode;
variant?: 'default' | 'success' | 'warning' | 'error' | 'info';
size?: 'sm' | 'md';
className?: string;
}
export default function Badge({
children,
variant = 'default',
size = 'md',
className,
}: BadgeProps) {
const variants = {
default: 'bg-white/10 text-white',
success: 'bg-green-500/20 text-green-400',
warning: 'bg-yellow-500/20 text-yellow-400',
error: 'bg-red-500/20 text-red-400',
info: 'bg-blue-500/20 text-blue-400',
};
const sizes = {
sm: 'px-2 py-0.5 text-xs',
md: 'px-3 py-1 text-sm',
};
return (
<span
className={clsx(
'inline-flex items-center rounded-full font-medium',
variants[variant],
sizes[size],
className
)}
>
{children}
</span>
);
}