Pernah nggak kamu klik sebuah tombol di website, dan tiba-tiba ada sesuatu yang meluncur halus, memudar indah, lalu muncul tepat di tempat yang benar — tanpa terasa kaku atau tiba-tiba? Itulah kekuatan CSS transisi animasi keyframes. Dan kabar baiknya? Semua itu bisa kamu bikin tanpa install jQuery, GSAP, atau library manapun.
Di artikel ke-10 dari Seri Belajar CSS ini, kita bakal bahas dari dasar: apa bedanya transition dan animation, kapan pakai yang mana, sampai cara bikin animasi kustom dengan @keyframes. Siapkan teks editor kamu, ini bakal seru!
CSS Transition — Animasi yang Mendengar Perintahmu
Bayangkan kamu punya lampu redup yang bisa diatur terang-redupnya pakai tombol putar. Ketika kamu putar pelan, cahayanya berubah perlahan-lahan — nggak langsung terang, nggak langsung gelap. Itulah analogi paling tepat untuk CSS transition. Dia mengubah sebuah properti CSS dari nilai lama ke nilai baru secara mulus, tapi hanya saat ada "pemicu" (trigger) seperti hover atau klik.
Properti transition punya 4 nilai utama yang perlu kamu hafal:
| Nilai | Fungsi | Contoh |
|---|---|---|
| property | Properti apa yang dianimasikan | background-color, all |
| duration | Berapa lama animasi berjalan | 0.3s, 500ms |
| timing-function | Pola kecepatan gerakan | ease, linear, ease-in-out |
| delay | Jeda sebelum animasi mulai | 0s, 0.2s |
transition: all 0.3s ease sebagai shortcut cepat — tapi ingat, all bisa mempengaruhi banyak properti sekaligus dan membebani performa. Untuk produksi, sebut propertinya secara spesifik.<button> biasa di file HTML kamu. Kasih class atau id agar mudah ditarget CSS.transition di sini — BUKAN di :hover.button:hover. CSS akan otomatis menganimasi perubahan itu secara halus sesuai durasi yang kamu set.CSS Animation & @Keyframes — Animasi yang Hidup Sendiri
Kalau transition itu seperti lampu redup tadi, maka CSS animation dengan @keyframes itu ibarat membuat storyboard film pendek. Kamu menentukan "di detik ini bentuknya begini, di detik itu bentuknya begitu" — dan browser yang akan menjalankan filmnya, otomatis, berulang kali, tanpa perlu ada yang hover atau klik apapun.
@keyframes adalah cara kamu mendefinisikan "checkpoint" dari sebuah animasi. Kamu bisa pakai from/to untuk 2 titik, atau pakai 0% ... 100% untuk banyak titik sekaligus.
transform dan opacity jauh lebih ringan dan mulus dibanding menganimasi width, height, atau margin yang memaksa browser melakukan reflow layout.animation-iteration-count bisa diisi angka (misal: 3 untuk 3 kali) atau kata infinite untuk animasi yang tidak pernah berhenti. Website loading spinner yang kamu lihat tiap hari? Itu infinite berputar!Properti Animation Lengkap — Semua yang Perlu Kamu Tahu
Properti animation adalah shorthand dari 8 properti berbeda. Kamu bisa pakai shorthand-nya langsung, atau tulis satu per satu untuk kontrol lebih detail. Berikut panduan lengkapnya:
melambung1s, 500msease, linear, ease-in, ease-out, cubic-bezier()0s = langsung jalaninfinite = selamanyanormal, reverse, alternate (maju-mundur)forwards = tetap di posisi akhirwidth, height, atau margin di website dengan banyak elemen. Properti ini memicu layout reflow yang berat. Gunakan transform: scale() sebagai penggantinya — lebih ringan dan hasilnya sama halus.Contoh Nyata: Loading Spinner & Fade-In Effect dengan CSS Keyframes
Teori sudah, sekarang kita praktik langsung. Dua animasi berikut ini adalah yang paling sering kamu jumpai di dunia nyata, dan keduanya bisa dibuat hanya dengan CSS transisi animasi keyframes tanpa satu baris JavaScript pun.
animation-delay yang berbeda untuk tiap elemen menggunakan selector :nth-child().CSS Transisi Animasi Keyframes — Kekuatanmu Ada di Sini
Sekarang kamu sudah tahu bahwa membuat website bergerak halus nggak perlu library berat. Cukup dua senjata: CSS transition untuk animasi reaktif berbasis interaksi, dan CSS animation + @keyframes untuk animasi mandiri yang bisa berulang sesuka hati.
Ingat tiga prinsip emas: selalu taruh transition di state awal (bukan di :hover), utamakan animasi properti transform dan opacity demi performa terbaik, dan eksplorasi teknik staggered animation untuk kesan yang jauh lebih profesional.
Di artikel selanjutnya dari Seri Belajar CSS ini, kita akan bahas cara membuat kode CSS kamu jauh lebih rapi dan mudah dikelola menggunakan CSS Variables dan Custom Properties. Nggak kalah keren, dan wajib kamu kuasai sebelum nulis CSS dalam skala besar!
No comments:
Post a Comment