Skip to content

Toggle

Botón con estado on/off. Ideal para filtros, toggles de vista o modos.


Import

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

Uso básico

jsx
<Toggle>B</Toggle>

Con ícono

jsx
import { Bold, Italic, Underline } from 'lucide-react';

<Toggle aria-label="Negrita">
  <Bold className="h-4 w-4" />
</Toggle>

Variantes

jsx
<Toggle variant="default">Default</Toggle>
<Toggle variant="outline">Outline</Toggle>

Tamaños

jsx
<Toggle size="sm">Pequeño</Toggle>
<Toggle size="md">Mediano</Toggle>
<Toggle size="lg">Grande</Toggle>

Controlado

jsx
const [activo, setActivo] = useState(false);

<Toggle pressed={activo} onPressedChange={setActivo}>
  <Bold className="h-4 w-4" />
</Toggle>

Props

PropTipoDefaultDescripción
variant'default' | 'outline''default'Estilo visual
size'sm' | 'md' | 'lg''md'Tamaño
pressedbooleanEstado controlado
defaultPressedbooleanfalseEstado inicial
onPressedChange(pressed: boolean) => voidCallback
disabledbooleanfalseDeshabilita

Accesibilidad

  • aria-pressed se actualiza automáticamente
  • Navegable con Tab, toggle con Space
  • aria-label obligatorio si solo tiene ícono

Hecho con ❤️ en Argentina