Transitions

Staggered shuffle

Every item has a view-transition-name of its own, so the browser moves each one from its old to its new place. app.trans.shuffle then delays the animation of each group by its new position. CSS cannot do that: it has no index for a group.