Transisi & Transform

Membuat perubahan tampilan yang halus saat hover dengan transition, serta memutar, memindah, dan memperbesar elemen dengan transform.

Part 19 dari 25 ± 40 menit Gratis

Transition: perubahan yang mulus

Biasanya saat kamu mengubah gaya (misalnya warna saat :hover), perubahannya terjadi seketika. Dengan transition, browser menganimasikan perubahan itu secara halus.

.tombol {
  background: #3c5a44;
  transition: background-color 0.3s ease;
}
.tombol:hover {
  background: #cf9d3d;
}

Letakkan transition di aturan keadaan awal (bukan di :hover) supaya animasinya berjalan dua arah: saat masuk dan saat keluar.

PropertiFungsiContoh
transition-propertyProperti apa yang dianimasikanbackground-color, all
transition-durationLama animasi0.3s, 200ms
transition-timing-functionIrama gerakease, linear, ease-in-out
transition-delayTunda sebelum mulai0.1s

Singkatan: transition: properti durasi irama tunda;. Beberapa transisi dipisah koma. Durasi yang nyaman biasanya 150–400ms.

Transform: mengubah bentuk tanpa mengganggu layout

transform memindah, memutar, atau memperbesar elemen secara visual tanpa menggeser elemen lain di sekitarnya.

FungsiEfek
translate(x, y) / translateX() / translateY()Geser
scale(1.2)Perbesar/perkecil (1 = normal)
rotate(45deg)Putar
skew(10deg)Miringkan
.kartu:hover {
  transform: translateY(-4px) scale(1.03);
}

Beberapa fungsi bisa digabung dalam satu transform (urutan berpengaruh). Titik pusat transformasi diatur dengan transform-origin (bawaan: tengah elemen).

Efek kartu yang naik saat disentuh

.kartu {
  box-shadow: 0 2px 6px rgba(0,0,0,.1);
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.kartu:hover {
  transform: translateY(-6px);
  box-shadow: 0 12px 24px rgba(0,0,0,.18);
}

Performa: animasikan transform dan opacity bila bisa; keduanya dikerjakan GPU dan sangat mulus. Animasi width, height, atau margin memaksa browser menghitung ulang layout dan terasa patah-patah.

Hormati preferensi pengguna

Sebagian orang merasa pusing oleh gerakan. Matikan animasi bagi mereka:

@media (prefers-reduced-motion: reduce) {
  * { transition: none !important; animation: none !important; }
}

Praktikkan langsung, gratis

Tulis dan jalankan kode langsung di browser, dapatkan penilaian otomatis. Daftar gratis kapan saja untuk menyimpan progres dan meraih sertifikat.

Coba latihan sekarang, tanpa daftar
Bagikan: WhatsApp Facebook LinkedIn X