Drag me
Gestures & physics
Draggable · momentum — 2
Draggable · return springs — 3
Draggable · axis — 3
Swipeable — 2
Pressable — 1
Magnetic — 2
Layout & FLIP
flip-filter — 1








flip-reorder — 1
Click any card — it jumps to the front and the rest reflow around it.




flip-sort — 1




flip-shuffle — 1




grid-to-list — 1




masonry-reflow — 1






expand-to-modal — 1
Click a card to expand it in place; the rest of the grid reflows around it.




accordion-height & tab-indicator-slide — 2
draggable with return:true), different spring
stiffness. elastic-pull ships a soft return, rubber-band widens
the resistance before it lets go, and snap-back uses a stiff spring
(stiffness:260) that whips home fast.
swipeable and pressable only own a state channel —
they publish data-kui-swipe / data-kui-pressed attributes and
leave the visual response to ordinary CSS, same as the swipe badge and press outline on
the cards above.
MutationObserver on the container watching childList,
subtree, and the hidden attribute. Reordering or hiding
children fires it automatically — a bare CSS class change on the container (like
grid-to-list's view toggle) does not, so this page re-appends the children
after a class swap to give the observer something to notice.
Even columns, fixed aspect ratio — the entrance-matrix and filter demos above all use this.
Single column, image and caption side by side — what grid-to-list switches into.
Variable-height columns that pack tight — what masonry-reflow demonstrates above.
Programmatic API
The same registry, driven from JavaScript. anim.play() accepts a selector, an Element, or any iterable.