← Kembali ke kursus
Pelajaran kursus · CSS
Pelajaran 27

Transform 2D

Geser, putar, skala, dan miringkan tanpa mengganggu layout.

Pahami konsepnya

Transform memanipulasi kotak elemen di bidang tanpa menyentuh aliran dokumen — tetangga-tetangganya tidak bergeser sedikit pun. Empat jurus dasarnya: translateX/Y (atau translate(x, y)) menggeser; rotate(45deg) memutar mengelilingi titik pusat; scale(1.2) memperbesar-seragam (atau scale(x, y) berbeda arah); dan skew(x, y) memiringkan seperti kartu dilihat serong.

Beberapa transform dirangkai koma dalam satu deklarasi: transform: translate(-50%, -50%) rotate(-2deg) — urutan pengerjaannya kiri-ke-kanan, dan urutan mempengaruhi hasil (memutar lalu menggeser berbeda dengan menggeser lalu memutar). Titik porosnya diatur transform-origin: center bawaan bisa dipindah ke top left atau persen apa pun — rotate berputar mengelilingi titik itu.

Tiga alasan transform menjadi fondasi animasi CSS: ia super ringan (dipercepat GPU, tak memicu layout ulang), ia bisa ditransisikan mulus, dan ia bekerja pada pseudo-element. Praktik umum sehari-hari: hover membesar kartu scale(1.03), ikon berputar rotate saat loading, dan modal muncul translate naik + fade. Nilai 3D-nya (rotateX/Y, perspective, translateZ) adalah kelanjutan alami bila kamu ingin lanjut ke efek kedalaman.

Coba contoh kode

.kartu {
  transition: transform 0.3s ease-out;
}
.kartu:hover {
  transform: translateY(-6px) scale(1.02);
}

.ikon-muat {
  animation: none;
  transform-origin: center;
}
.ikon-muat.putar { transform: rotate(180deg); }

.stempel {
  transform: rotate(-6deg) skew(-4deg);
}

Kartu hover menggabungkan dua jurus — naik 6px dan membesar 2% — dalam satu deklarasi berurutan. Ikon memutar 180° mengelilingi titik pusatnya (transform-origin), dan stempel memakai rotate+skew untuk kesan cap kertas miring. Perhatikan tetangga-tetangga elemen tak pernah ikut bergeser.

Latihan singkat

Buat galeri foto polaroid: tiap kartu miring acak rotate, membesar dan lurus saat hover, dengan transform-origin yang kamu atur sendiri.