Generator Keyframes CSS

Hasil

Aturan @keyframes menentukan titik-titik penting sebuah animasi: bagaimana elemen terlihat di awal, tengah, dan akhir. Generator ini menulis aturan untuk empat gerakan umum: fade-slide, pulse, spin, dan bounce. Beri nama animasi, atur durasinya, dan untuk gerakan geser serta pantul, jarak tempuhnya dalam piksel. Hasilnya adalah bentuk singkat animation plus blok @keyframes, siap ditempel ke lembar gaya Anda.

Cara membuat keyframes

  1. 1

    Pilih jenis animasi

    Fade slide, pulse, spin, atau bounce. Setiap preset sudah berisi keyframe siap pakai.

  2. 2

    Beri nama animasi

    Nama kebab-case seperti `fade-slide`, yang dipakai nanti dalam bentuk singkat `animation`.

  3. 3

    Atur durasinya

    Dalam detik, misalnya 0.6 untuk transisi cepat.

  4. 4

    Atur jaraknya (slide dan bounce)

    Jarak tempuh dalam piksel, dipakai untuk gerakan vertikal.

  5. 5

    Salin CSS-nya

    Bentuk singkat plus blok `@keyframes`, siap untuk lembar gaya Anda.

Empat preset

Fade slide

.animated {
  animation: fade-slide 0.6s ease both;
}

@keyframes fade-slide {
  from { opacity: 0; transform: translateY(24px); }
  to   { opacity: 1; transform: translateY(0); }
}

Elemen muncul sambil meluncur naik dari bawah.

Pulse

@keyframes pulse {
  0%, 100% { transform: scale(1); opacity: 1; }
  50%      { transform: scale(1.05); opacity: .8; }
}

Efek berdenyut lembut, cocok untuk titik notifikasi dan lencana.

Spin

@keyframes spin {
  from { transform: rotate(0deg); }
  to   { transform: rotate(360deg); }
}

Putaran penuh, berguna untuk loader dan ikon.

Bounce

@keyframes bounce {
  0%, 100% { transform: translateY(0); }
  50%      { transform: translateY(-24px); }
}

Elemen memantul ke atas dan kembali.

Mengapa transform dan opacity?

Peramban mengomposisikan transform dan opacity di GPU tanpa menghitung ulang tata letak atau mengecat ulang, jadi menganimasikannya tetap mulus. Preset sengaja menghindari properti yang memicu penghitungan tata letak.

Bentuk singkat animation

animation: fade-slide 0.6s ease both; dibaca: animasi bernama fade-slide, selama 0.6 detik, dengan easing ease bawaan. Mode isian both menerapkan keadaan awal sebelum animasi dimulai dan mempertahankan keadaan akhir setelah selesai, sehingga elemen tidak berkedip sebelum atau menyentak kembali setelah gerakan.

Konvensi penamaan

  • Gunakan kebab-case, sesuai konvensi CSS.
  • Gambarkan gerakannya, bukan elemennya: fade-in-up lebih baik daripada alert-appear.
  • Hindari nama yang bisa bertabrakan dengan pustaka pihak ketiga.

Dukungan peramban

@keyframes bersifat universal, didukung semua peramban sejak IE 10.

Pertanyaan yang Sering Diajukan

Fade slide untuk konten yang masuk ke halaman, seperti kartu, banner, atau dialog. Pulse untuk titik perhatian, lencana, dan tombol yang harus menonjol. Spin untuk loader dan ikon progres. Bounce untuk penekanan yang ceria, seperti panah ajakan bertindak.

Jarak adalah perpindahan vertikal dalam piksel untuk preset slide dan bounce: animasi fade-slide mulai 24px lebih rendah lalu meluncur naik, bounce memantul 24px ke atas dan kembali. Preset spin tidak menggunakannya.

Bisa, hasilnya CSS murni. Ganti ease dengan kata kunci easing apa pun atau nilai cubic-bezier(...), lalu tambahkan persentase antara seperti 25% atau 75% di dalam blok @keyframes untuk membentuk gerakan lebih lanjut.

Karena render ulang framework bisa menerapkan ulang kelasnya dan memulai ulang animasi. Gunakan animation-fill-mode: both (sudah ada di hasil) untuk mempertahankan keadaan akhir, atau pisahkan pemicu animasi dari elemen yang dirender ulang.

Alat Terkait