Svelte Transitions Animations Transition Animate Crossfade
Definisi
Svelte punya transisi bawaan (fade, slide, fly, scale) lewat directive transition:, in:/out:. animate:flip untuk animasi pergerakan list, dan crossfade untuk perpindahan elemen antar container.
Kapan dipakai
Pakai transisi untuk feedback visual saat elemen muncul/hilang ({#if}, {#each}). Hindari berlebihan — transisi lambat mengganggu UX.
Cara kerja
Transisi dasar
<script>
import { fade, fly } from 'svelte/transition';
let show = false;
</script>
{#if show}
<p transition:fade>Halo</p>
{/if}
<button on:click={() => show = !show}>Toggle</button>Fly dengan param
<p in:fly={{ y: 20, duration: 300 }} out:fade>Konten</p>Animate list
<script>
import { flip } from 'svelte/animate';
</script>
{#each items as item (item.id)}
<li animate:flip>{item.label}</li>
{/each}Struktur alur
Loading diagram...
Catatan implementasi
transition:= in + out;in:/out:untuk arah sendiri.- Transisi bisa custom lewat fungsi
(node, params) => { css, tick }. crossfadebutuh setupreceive/sendyang dipasang di elemen terkait.- Gunakan
|localbila transisi hanya saat blok langsung berubah, bukan parent.
Kesalahan umum
- Transisi di luar
{#if}/{#each}: tidak jalan karena elemen tidak mount/unmount. - Durasi terlalu panjang: UX terasa lemot.
- Lupa import:
fadedarisvelte/transition. - animate tanpa key unik: flip tidak tahu elemen mana yang pindah.