CSS Transitions — CSS

Bandingin dua tombol: pas di-hover, yang pertama langsung jeglek warna birunya berubah jadi hitam dalam 0 detik (kasar). Yang kedua warnanya pelan-pelan…

Transition bikin perubahan gaya berjalan pelan-pelan, bukan loncat. Contohnya tombol yang berubah warna waktu kursor ada di atasnya (keadaan ini disebut hover, ditulis :hover di CSS): tanpa transition warnanya langsung ganti, dengan transition warnanya bergeser halus dalam 0.3 detik.

🧪 Tebakan cepat: kalau transition ditulis di .box:hover, bukan di .box, waktu kursor keluar kotaknya balik dengan halus atau langsung loncat? Tebak dulu, jawabannya ada di bagian "Tulis di rule biasa, bukan di :hover".

Transition, bagian per bagian

.box {
  background: #3b82f6;
  transition: background 0.5s ease;
}

.box:hover {
  background: #ef4444;
}

Hasilnya, arahkan kursor ke kotak, birunya berubah pelan-pelan jadi merah dalam setengah detik. Kursor keluar, merahnya pelan-pelan balik ke biru.

Tulis di rule biasa, bukan di :hover

Browser memakai transition dari keadaan yang sedang dituju. Kalau transition ada di .box, masuk ke hover dan keluar dari hover sama-sama halus. Kalau cuma ada di .box:hover, masuknya halus, tapi waktu kursor keluar, .box gak punya transition, jadi kotaknya langsung loncat balik. Itu jawaban tebakannya.

Jadi perubahannya ditulis di :hover, transition-nya ditulis di rule biasa.

Sebut properti yang benar-benar berubah

Urutannya: properti, durasi, lalu cara percepatan. Gak ada titik dua di dalam nilainya: all 0.3s ease, bukan all: 0.3s ease. background dan background-color sama-sama menganimasikan warna latar, tapi pengecek latihan membandingkan nama propertinya, jadi tulis persis yang diminta brief.

Cara percepatan (timing function)

⚠️ Jebakan yang sering ketemu

💡 Paling mulus: transform dan opacity. Dua properti ini ringan buat browser. Menganimasikan width, height atau margin bikin browser menghitung ulang layout di setiap langkah, jadi bisa tersendat.

TL;DR: transition: properti durasi timing bikin perubahan gaya berjalan pelan, misalnya transition: background 0.3s ease. Tulis di rule biasa (.box), bukan di .box:hover, biar masuk dan keluarnya sama-sama halus. Sebut properti yang benar-benar berubah, dan tulis durasi lengkap dengan s atau ms. ease bawaannya, linear kecepatannya konstan.

Yang akan kamu pelajari