Skip to content

Badge

Etiqueta pequeña para indicar estados, categorías o contadores.


Import

jsx
import { Badge } from '@imansi/ui';

Uso básico

jsx
<Badge>Nuevo</Badge>

Variantes

jsx
<Badge variant="primary">Primario</Badge>
<Badge variant="secondary">Secundario</Badge>
<Badge variant="outline">Outline</Badge>
<Badge variant="success">Completado</Badge>
<Badge variant="warning">Pendiente</Badge>
<Badge variant="destructive">Fallido</Badge>
<Badge variant="info">Info</Badge>
VarianteUso
primaryPor defecto, color de marca
secondaryMenos énfasis
outlineSolo borde
successEstado exitoso
warningAdvertencia
destructiveError o peligro
infoInformación neutral

Con íconos

jsx
import { Check, AlertCircle, Clock } from 'lucide-react';

<Badge variant="success">
  <Check className="h-3 w-3" />
  Completado
</Badge>

<Badge variant="warning">
  <Clock className="h-3 w-3" />
  Pendiente
</Badge>

<Badge variant="destructive">
  <AlertCircle className="h-3 w-3" />
  Fallido
</Badge>

Como contador

jsx
<Badge variant="destructive">24</Badge>
<Badge variant="primary">99+</Badge>

En tablas

jsx
<td>
  <Badge variant="success">Activo</Badge>
</td>
<td>
  <Badge variant="outline">Inactivo</Badge>
</td>

Props

PropTipoDefaultDescripción
variant'primary' | 'secondary' | 'outline' | 'success' | 'warning' | 'destructive' | 'info''primary'Estilo visual
classNamestringClases adicionales
...propsHTMLAttributes<HTMLSpanElement>Todas las props nativas

Personalización

jsx
<Badge className="bg-purple-100 text-purple-800 border-purple-200">
  Custom
</Badge>

Ejemplo completo

jsx
import { Badge } from '@imansi/ui';

const estados = {
  activo: { label: 'Activo', variant: 'success' },
  pendiente: { label: 'Pendiente', variant: 'warning' },
  cancelado: { label: 'Cancelado', variant: 'destructive' },
};

export function EstadoUsuario({ estado }) {
  const config = estados[estado];
  if (!config) return null;

  return <Badge variant={config.variant}>{config.label}</Badge>;
}

Hecho con ❤️ en Argentina