Skip to content

List transitions ​

Set group to render Vue's TransitionGroup instead of Transition. Every child must have a stable key.

Simplified code
<transition-fade
	group
	tag="ul"
	:stagger="100"
	:move-duration="400"
>
	<li v-for="item in items" :key="item.id">{{ item.label }}</li>
</transition-fade>

Click Clear and then Reset to see the visual stagger. moveDuration controls position changes after add, remove, or reorder operations; noMove keeps leaving items in normal flow.

vue
<transition-fade group tag="ul" :move-duration="400">
  <li v-for="item in items" :key="item.id">
    {{ item.label }}
  </li>
</transition-fade>

Group-only props ​

PropDefaultPurpose
tag'span'HTML tag rendered by TransitionGroup.
stagger0Delay between children entering or leaving in the same update.
moveDuration300Duration in milliseconds for position changes.
noMovefalseKeeps leaving items in normal flow instead of positioning them absolutely.

Staggered transitions ​

Set stagger to delay each child after the previous child in the same update. The first child uses the regular delay; each following child adds another stagger interval. It accepts either one value or separate enter and leave values.

See Staggered list transitions for examples, limitations, and layout trade-offs.

Released under the MIT License.