Accordion — OutfitKit

GitHub

Accordion

Contenedor con paneles expandibles. Compón los items con la macro accordion_item() (recomendada) o manualmente con .ok-accordion-item, .ok-accordion-trigger y .ok-accordion-panel. La interactividad se enchufa con Datastar (data-signals + data-on:click).

Default — bordered

CIF B-65432109 · Cafetería La Rambla S.L. · Carrer Provença 287, 08008 Barcelona.
SEPA principal — ES31 0049 1500 5126 1009 4283.
9 usuarios activos repartidos en 4 roles personalizados.

Variant ghost — sin caja

El coste medio (PMP) se recalcula al recibir cada compra: (stock × coste actual + entrada × coste compra) / (stock + entrada).
Soportamos importadores nativos para Holded, Sage 50, Contasol, A3 ERP y CSV plano.

Variant cards — separados

Empresa configurada — ejercicio 2026, divisa EUR, plan PGC 2007.
Falta refrescar el token de Banco Sabadell (caducó hace 6 días).

Datastar · expand/collapse reactivo

El estado $open se sincroniza con data-state y aria-expanded a través de Datastar.
Cada item tiene su propio signal local.

API · accordion

PropTipoDefaultDescripción
variant"default"|"ghost"|"cards""default"Estilo del contenedor.
attrsdict{}Atributos HTML extra.
(slot)Items .ok-accordion-item compuestos por el consumidor (o, preferentemente, accordion_item()).

API · accordion_item

Macro auxiliar que emite item + trigger + panel con todos los atributos ARIA correctos (aria-expanded, aria-controls, aria-labelledby, role="region") y el toggle Datastar ya cableado. Importar con {% from "accordion.jinja" import accordion_item %}.

PropTipoDefaultDescripción
titlestr""Texto del trigger.
idstr|NoneNoneBase estable para los IDs (<id>-trigger / <id>-panel). Si se omite, se deriva del título.
substr""Subtítulo opcional.
metastr""Texto meta a la derecha (badge, contador).
expandedboolFalseEstado inicial del panel.
no_iconboolFalseAplica el modificador --no-icon en el panel.
attrsdict{}Atributos HTML extra en el item.
(slot)Contenido del panel.