← Kembali ke kursus
Pelajaran kursus · CSS
Pelajaran 26

Transisi halus

Ubah gaya berpindah lembut, bukan mendadak.

Pahami konsepnya

Tanpa transisi, perubahan gaya terjadi seketika: tombol hover melompat warna dalam satu frame. transition membuatnya meluncur: cukup deklarasikan pada keadaan diam, dan browser mengisi perjalanan antar dua nilai otomatis. Bentuk ringkasnya empat bagian: transition: properti durasi timing delay — misal transition: background 0.3s ease.

Properti yang boleh ditransisikan hampir semuanya yang bernilai antara (warna, ukuran, opacity, transform, box-shadow); display dan font-family tidak bisa karena tak punya "antaranya". all sebagai nama properti praktis tapi boros — sebutkan properti spesifik agar browser tidak menyiapkan animasi untuk segalanya. Durusi 150-350ms adalah zona nyaman antarmuka: lebih cepat tak terasa, lebih lambat terasa lamban.

Timing function mengubah karakter gerak: ease (bawaan, pelan-pelan-cepat-pelan), linear datar, ease-in mulai berat, ease-out mulai ringan (favorit untuk hover), dan cubic-bezier() untuk kurva buatan sendiri. Aturan emas penempatan: transisi ditulis pada keadaan DASAR elemen, bukan di :hover — di hover hanya nilainya yang berubah, agar perjalanan pulang juga halus.

Coba contoh kode

.tombol {
  background: #1ABC9C;
  color: #fff;
  padding: 10px 22px;
  border-radius: 6px;
  /* transisi di keadaan dasar */
  transition: background 0.25s ease-out, transform 0.25s ease-out;
}

.tombol:hover {
  background: #148f77;
  transform: translateY(-2px);   /* terangkat halus */
}

Transisi dideklarasikan sekali di keadaan dasar dengan dua properti berbeda durasi sama; :hover hanya mengganti nilai tujuan. Hasilnya: warna berpindah lembut dan tombol terangkat 2px dengan ease-out — dan saat kursor pergi, ia kembali turun sama halusnya karena aturannya tetap ada di keadaan dasar.

Latihan singkat

Buat kartu yang terangkat dengan bayangan tumbuh saat hover (kombinasi transform + box-shadow), lalu link yang garis bawahnya tumbuh dari tengah memakai transisi.