/v1.0

Status

Badge de estado versátil que puede mostrar una píldora con fondo de color, ícono y etiqueta opcionales, o un punto circular de color cuando no hay etiqueta ni ícono (o cuando se usa shape="circle"). El color del texto se deriva automáticamente del brillo del color de fondo.

Props

| Prop | Tipo | Requerido | Por defecto | Descripción | |------|------|-----------|-------------|-------------| | color | string | No | 'transparent' | Color de fondo. Admite claves del tema o strings CSS. | | label | string | No | — | Etiqueta de texto del badge. | | labelColor | string | No | auto | Color explícito de la etiqueta. | | labelSize | number | No | según tamaño | Tamaño de fuente de la etiqueta en píxeles. | | labelStyle | React.CSSProperties | No | — | Estilos del texto de la etiqueta. | | icon | string | No | — | Nombre del ícono junto a la etiqueta. | | iconPaths | any[] | No | — | Paths SVG personalizados para el ícono. | | iconColor | string | No | auto | Color explícito del ícono. | | iconSize | number | No | según tamaño | Tamaño del ícono en píxeles. | | size | 'xs' \| 'sm' \| 'md' \| 'lg' \| 'xl' \| number \| \${number}px`| No |'md'| Tamaño del badge. Los tokens mapean a presets; los números y strings de píxeles fijan el diámetro del círculo. | |shape|'circle'| No | — | Fuerza el renderizado de punto circular. | |width|number | string| No | — | Ancho explícito (modo punto). | |height|number | string| No | — | Alto explícito (modo punto). | |borderRadius|number | string| No |4| Radio de borde de la forma de píldora. | |containerStyle|React.CSSProperties| No | — | Estilos del contenedor. | |containerClassName|string| No |'status-container'` | Clase CSS del contenedor. |

Uso

Píldora con etiqueta

import Status from '@/components/Status';

export default function Example() {
  return <Status color="success" label="Activo" icon="check" />;
}

Punto de color

import Status from '@/components/Status';

export default function Example() {
  // Sin etiqueta ni ícono → punto circular
  return <Status color="#e74c3c" size="sm" />;
}

Color dinámico desde datos

import Status from '@/components/Status';

const item = { statusLabel: 'Pendiente', statusColor: '#f39c12' };

export default function Example() {
  return (
    <Status
      color={item.statusColor}
      label={item.statusLabel}
      size="md"
    />
  );
}