Skip to content

Accordion

Secciones plegables para organizar contenido jerárquico.


Import

jsx
import {
  Accordion,
  AccordionItem,
  AccordionTrigger,
  AccordionContent,
} from '@imansi/ui';

Uso básico

jsx
<Accordion type="single" collapsible>
  <AccordionItem value="item-1">
    <AccordionTrigger>¿Qué es Imansi?</AccordionTrigger>
    <AccordionContent>
      Imansi es un ecosistema de infraestructura para developers.
    </AccordionContent>
  </AccordionItem>
  <AccordionItem value="item-2">
    <AccordionTrigger>¿Es gratis?</AccordionTrigger>
    <AccordionContent>
      Todos los paquetes son open source con licencia MIT.
    </AccordionContent>
  </AccordionItem>
</Accordion>

Single vs Multiple

Single (uno abierto a la vez):

jsx
<Accordion type="single" collapsible>
  {/* items */}
</Accordion>

Multiple (varios abiertos a la vez):

jsx
<Accordion type="multiple">
  {/* items */}
</Accordion>

Con uno abierto por defecto

jsx
<Accordion type="single" defaultValue="item-1" collapsible>
  {/* items */}
</Accordion>

Props

Accordion

PropTipoDefaultDescripción
type'single' | 'multiple'Modo de apertura
defaultValuestring | string[]Item(s) abierto(s) por defecto
valuestring | string[]Valor controlado
onValueChange(value) => voidCallback al cambiar
collapsiblebooleanfalsePermite cerrar el item abierto (solo type="single")

AccordionItem

PropTipoDefaultDescripción
valuestringIdentificador del item (obligatorio)
disabledbooleanfalseDeshabilita el item

Accesibilidad

  • Navegable con Tab y Flechas ↑↓
  • Enter / Space abre/cierra
  • Home / End van al primer/último item
  • role="region" + aria-expanded + aria-controls automáticos

Hecho con ❤️ en Argentina