Menghidupkan antarmuka dengan motion yang bermakna: prinsip timing dan easing, micro-interaction yang memperkuat feedback, serta kurasi gerakan agar tidak menjadi hiasan. Ditutup dengan praktik menyusun motion spec untuk Kantongin

Setelah di episode 15 produk kita accessible, pada episode ini kita menghidupkannya: motion dan micro-interactions. Gerakan kecil — tombol yang merespons sentuhan, angka yang berubah mulus, toast yang meluncur — membuat antarmuka terasa hidup dan merespons, bukan sekadar gambar diam.
Mengapa motion penting untuk UI designer? Karena gerakan adalah feedback (ingat heuristik Nielsen ke-1 di episode 14): ia memberitahu pengguna bahwa aksi diterima. Tapi gerakan juga mudah disalahgunakan — animasi yang berlebihan membuat aplikasi terasa lambat dan melelahkan. UI designer profesional tahu kapan bergerak, bukan sekadar bagaimana.
Durasi menentukan kecepatan dan "perasaan" gerakan:
| Konteks | Durasi |
|---|---|
| Mikro-interaksi (hover, pressed, toggle) | 100-200 ms |
| Transisi antar layar | 200-400 ms |
| Elemen besar / transisi berkesan | 400-600 ms |
Aturan emas: semakin kecil elemen, semakin cepat gerakannya. Motion UI harus terasa instan untuk aksi kecil, dan hanya sedikit lebih "dramatis" untuk perpindahan layar.
Easing mengatur percepatan gerakan — dan inilah yang paling membedakan animasi "profesional" dari "main-main". Jangan pernah memakai default linear untuk UI:
ease-out : mulai cepat, melambat di akhir → elemen MASUK (kurva umum)
ease-in : mulai lambat, menguat → elemen KELUAR
ease-in-out: lambat di awal & akhir → perpindahan antar elemen
standard (Material): cubic-bezier(0.2, 0, 0, 1) → gerak "materi"Dalam Figma, easing diatur di panel prototype (Ease out, Ease in, atau Custom). Untuk gerak material yang natural, pakai curve cubic-bezier(0.2, 0, 0, 1).
Tip
Prinsip "ease-out untuk masuk, ease-in untuk keluar" akan menyelamatkan kalian dari 90% kesalahan animasi. Elemen yang masuk ke layar mulai cepat lalu "mendarat" lembut; elemen yang keluar justru "menghilang" dengan akselerasi. Jangan membaliknya tanpa alasan.
Micro-interaction adalah momen kecil yang membuat pengguna merasa produk merespons. Komponennya: trigger, aturan (rules), umpan balik, dan loop. Contoh di Kantongin:
whilePressed memberi efek tekan; saat berhasil, checkmark singkat (300 ms).Micro-interaction harus mendukung konteks: gerakan pada aksi sukses memberi kepastian, gerakan pada error memberi peringatan — bukan sekadar "lucu".
Pertanyaan kurasi yang harus selalu ditanyakan: "apakah gerakan ini membantu pengguna memahami atau hanya menghias?"
| Motion bermakna | Motion hiasan |
|---|---|
| Menunjukkan hasil aksi (sukses/gagal) | Semua elemen "terbang" masuk tiap layar |
| Mengarahkan perhatian (banner penting) | Elemen berdenyut tanpa tujuan |
| Menjelaskan hubungan (elemen melanjutkan dari layar sebelumnya) | Transisi panjang yang memperlambat |
| Memberi status (loading, progress) | Loop animasi yang mengganggu fokus |
Aturan praktis: kalau gerakan dihapus dan tidak ada yang kehilangan informasi, gerakan itu hiasan — pertimbangkan untuk dihapus. Motion yang baik menghilang di balik fungsinya.
Warning
Motion harus menghormati preferensi pengguna: reduce motion (pengaturan sistem) wajib dipertimbangkan. Di sistem operasi, pengguna dengan vestibular disorder bisa menonaktifkan animasi. Rencanakan versi "tanpa gerakan" untuk aksesibilitas — bagian dari keputusan a11y di episode 15.
Agar developer bisa mengimplementasikan motion dengan tepat, susun motion spec sebagai bagian dari design system (token motion.* yang kita sebut di episode 9):
motion.duration.fast = 150 ms → micro-interaction
motion.duration.normal = 250 ms → transisi standar
motion.duration.slow = 400 ms → elemen besar
motion.easing.standard = cubic-bezier(0.2, 0, 0, 1)
motion.easing.in = ease-in
motion.easing.out = ease-out
motion.reduce = none → saat user reduce-motionMotion spec menjawab empat pertanyaan: berapa lama (duration), bagaimana kurva (easing), apa yang bergerak (property), dan apa yang memicunya (trigger). Dokumentasikan ini di halaman Tokens file system — lalu jadikan patokan saat handoff (episode 13).
motion.* ke file Kantongin-System.Pada episode 16 ini, kalian telah menghidupkan Kantongin dengan motion yang bermakna dan spesifik.
Inti yang harus dibawa pulang:
Di episode 17 selanjutnya kita akan membahas data visualization UI — chart, dashboard layout, dan storytelling data untuk menyajikan angka Kantongin dengan jelas. Sampai jumpa di episode 17!