Skip to content
Generator Cubic Bezier
Tools

Generator Cubic Bezier

Baru

Rancang kurva easing CSS dengan menyeret titik kontrol, lengkap pratinjau langsung.

A
 
CSS keywords
Named easing curves

Runs entirely in your browser. Nothing is uploaded.

Rancang kurva easing CSS kustom secara visual

Generator cubic-bezier ini mengubah nilai abstrak cubic-bezier(x1, y1, x2, y2) menjadi sesuatu yang bisa Anda lihat dan rasakan. Seret dua pegangan titik kontrol pada grafik untuk membentuk kurva akselerasi, saksikan pratinjau langsung bergerak dengan timing yang persis sama, lalu salin nilai yang siap pakai untuk transisi dan animasi CSS Anda. Ini adalah editor kurva easing sekaligus visualisator cubic-bezier dalam satu halaman yang berjalan sepenuhnya di browser — tanpa instalasi, tanpa akun.

Setiap kurva selalu berjalan dari (0,0) ke (1,1). Sumbu horizontal adalah waktu dan sumbu vertikal adalah progres, sehingga kurva yang naik curam di awal berarti gerakan cepat di awal, dan kurva yang mendatar menjelang akhir berarti pemberhentian yang halus. Anda bisa mengetik angka presisi ke dalam empat kolom input, menyeret pegangan, atau menempel nilai cubic-bezier() yang sudah ada untuk dimuat dan disesuaikan. Hasilnya diperbarui secara real time setiap kali pegangan digerakkan.

Lima kata kunci timing CSS sebenarnya hanyalah alias untuk nilai cubic-bezier tertentu: linear = cubic-bezier(0, 0, 1, 1); ease = cubic-bezier(0.25, 0.1, 0.25, 1.0); ease-in = cubic-bezier(0.42, 0, 1.0, 1.0); ease-out = cubic-bezier(0, 0, 0.58, 1.0); dan ease-in-out = cubic-bezier(0.42, 0, 0.58, 1.0). Setiap browser menerjemahkan kata kunci tersebut menjadi bentuk empat angka ini sebelum menghitung animasi, jadi transition-timing-function: ease dan cubic-bezier(0.25, 0.1, 0.25, 1) menghasilkan efek yang identik.

30+ preset: kata kunci CSS dan kurva easing bernama

Bilah preset menggabungkan dua hal yang biasanya dipisahkan oleh tool pesaing. Anda mendapatkan lima kata kunci CSS — linear, ease, ease-in, ease-out, dan ease-in-out — ditambah katalog lengkap kurva easing bernama yang dipopulerkan easings.net: Sine, Quad, Cubic, Quart, Quint, Expo, Circ, dan Back, masing-masing dalam varian In, Out, dan In-Out. Artinya easeInOutCubic, easeOutQuart, easeOutBack, dan lainnya hanya berjarak satu klik, sudah dikonversi menjadi nilai css cubic-bezier.

Setiap preset menampilkan thumbnail kurva kecil sehingga Anda bisa mengenali bentuknya sekilas, lalu memuatnya langsung ke editor untuk disempurnakan. Easings.net hanya menampilkan daftar nama dan gambar statis — Anda tidak bisa mengedit atau mengekspor dari sana. cubic-bezier.com menampilkan lima kata kunci CSS tetapi tidak menyediakan set Penner lengkap. Tool ini memberi Anda keduanya, lengkap dengan kemampuan editing, dalam satu tempat. Sebagai contoh konversi: easeInOutQuad = cubic-bezier(0.45, 0, 0.55, 1), easeOutCubic = cubic-bezier(0.33, 1, 0.68, 1), dan easeInOutCubic = cubic-bezier(0.65, 0, 0.35, 1).

Overshoot, bounce, dan antisipasi

Nilai y pada cubic-bezier tidak terbatas pada rentang 0–1. Dorong pegangan ke atas kotak dan animasi akan melampaui targetnya sebelum kembali menetap — sensasi pegas dari easeOutBack = cubic-bezier(0.34, 1.56, 0.64, 1). Tarik pegangan ke bawah kotak dan elemen akan bergerak mundur dulu, seperti ancang-ancang sebelum melompat. Grafik editor ini meluas melampaui kotak unit sehingga Anda bisa menyeret ke wilayah overshoot dan langsung melihat hasilnya. Overshoot 'back' yang populer adalah cubic-bezier(0.68, -0.55, 0.27, 1.55).

Perlu dicatat, nilai x (waktu) selalu dibatasi pada rentang 0–1 agar fungsi timing tetap valid — tidak ada pembalikan waktu. Selain itu, efek multi-bounce sejati (bola yang memantul beberapa kali) tidak bisa dibuat dengan satu cubic-bezier karena hanya ada satu kurva; gunakan animasi @keyframes CSS atau ease bounce dari GSAP untuk itu. Tool ini mengekspor kode @keyframes dan GSAP CustomEase persis untuk kasus tersebut.

Chrome DevTools memiliki editor cubic-bezier bawaan tetapi mengunci pegangan di dalam kotak 0–1, sehingga Anda tidak bisa membuat efek overshoot atau antisipasi di sana. Firefox DevTools punya keterbatasan yang sama. Keduanya juga tidak memiliki katalog preset bernama dan opsi ekspor yang Anda dapatkan di sini. Jika Anda butuh overshoot, ini adalah salah satu dari sedikit tool yang benar-benar mendukungnya.

Perbandingan dengan tool cubic-bezier lainnya

cubic-bezier.com karya Lea Verou adalah referensi yang mempopulerkan format seret-dan-pratinjau, dan tetap sangat baik untuk membuat kurva CSS dengan cepat. Namun tool itu tidak punya ekspor GSAP, tidak menghasilkan fungsi easing JavaScript, tidak ada mode compare, tidak ada pustaka preset Penner, dan antarmukanya bermasalah di perangkat mobile. Easings.net adalah referensi baca-saja — Anda memilih kurva bernama dan melihat nilainya, tetapi tidak ada editor dan tidak ada yang bisa disesuaikan.

Chrome dan Firefox DevTools masing-masing menyertakan editor cubic-bezier ringan di dalam inspector, yang praktis saat Anda sudah membuka DevTools. Kompromi-nya: editor itu tidak bisa digunakan tanpa DevTools terbuka, pegangannya dikunci di 0–1 (tanpa overshoot), tidak bisa mengekspor kode GSAP atau JS, dan sama sekali tidak berfungsi di mobile. Generator UtiloKit menggabungkan editor interaktif, pustaka preset, alat perbandingan, dan tiga format ekspor dalam satu halaman yang berjalan di perangkat apa pun — termasuk iPhone dan Android, teruji di iOS Safari dan Android Chrome, dengan pegangan seret yang cukup besar untuk jari.

Pratinjau langsung dan mode compare berdampingan

Tekan tombol play dan sebuah elemen demo akan bergerak berulang mengikuti kurva Anda, sehingga Anda menilai gerakannya, bukan sekadar angkanya. Ganti demo antara translate, scale, dan opacity serta sesuaikan durasinya agar cocok dengan animasi Anda yang sebenarnya. Aktifkan Compare untuk menempatkan kurva kedua di samping kurva pertama — sempurna untuk memilih transition timing function yang tepat sebelum masuk ke produksi.

Slider durasi mengatur kecepatan pratinjau dari 200ms hingga 3 detik, sehingga Anda bisa menguji bagaimana kurva yang sama terasa pada kecepatan berbeda. Pratinjau gerak lambat sering mengungkap masalah — seperti tersendat di awal — yang tak terlihat pada durasi 300ms. Sebagian besar tool lain, termasuk cubic-bezier.com, hanya menampilkan pratinjau pada satu kecepatan tetap dan tidak menawarkan perbandingan berdampingan.

Ekspor ke CSS, GSAP, dan JavaScript — gratis

Salin sesuai kebutuhan stack Anda. Tab CSS memberikan satu baris transition sekaligus blok animasi @keyframes lengkap. Tab GSAP menghasilkan pemanggilan CustomEase.create() sehingga animasi GSAP Anda cocok persis dengan kurvanya. Tab JS membuat fungsi easing javascript cubic-bezier mandiri — solver Newton-Raphson yang bisa Anda tempel langsung ke requestAnimationFrame atau tween loop apa pun tanpa dependensi. Pengguna Framer Motion cukup meneruskan empat angka tersebut ke prop ease sebagai array.

Menemukan kurva yang Anda suka? Bagikan. Tool ini menyandikan keempat nilai ke dalam URL halaman, sehingga sebuah tautan mereproduksi easing Anda persis sama di perangkat mana pun. Semuanya berjalan di browser Anda — tidak ada yang diunggah, disimpan, atau dicatat — dan sepenuhnya gratis tanpa perlu mendaftar.

Matematika dan sejarah di balik kurva Bézier

Pierre Bézier, insinyur Prancis di Renault, dan Paul de Casteljau, insinyur di pabrikan pesaing Citroën, secara independen menemukan kurva parametrik yang kini menyandang nama Bézier — keduanya berusaha mendeskripsikan permukaan bodi mobil yang mulus secara matematis pada era 1960-an. Algoritma rekursif de Casteljau lahir lebih dulu pada 1959 tetapi dirahasiakan oleh Citroën; Bézier memublikasikan formulasinya pada 1962, itulah sebabnya kurva ini membawa namanya di sebagian besar buku teks. Wawasan intinya: sejumlah kecil titik kontrol dapat sepenuhnya mendefinisikan kurva mulus yang dapat diskalakan tanpa batas, tanpa perlu menyimpan ribuan koordinat.

Definisi parametrik kurva Bézier kubik adalah P(t) = (1−t)³P₀ + 3(1−t)²t·P₁ + 3(1−t)t²·P₂ + t³·P₃ dengan t bergerak dari 0 hingga 1. P₀ adalah titik awal, P₃ titik akhir, sementara P₁ dan P₂ adalah dua pegangan kontrol yang menarik kurva ke arahnya tanpa kurva benar-benar melewatinya. Salah satu sifat terpentingnya adalah convex hull property: kurva selalu berada sepenuhnya di dalam convex hull — poligon cembung terkecil — yang memuat keempat titik kontrol. Jaminan geometris inilah yang membuat kurva Bézier stabil untuk rekayasa dan rendering. Kurva ini juga terdegradasi dengan anggun: jika P₁ = P₀ maka kubik tereduksi menjadi Bézier kuadratik; jika P₁ = P₀ dan P₂ = P₃ ia runtuh menjadi interpolasi linear lurus.

Kurva Bézier juga menjadi geometri fundamental tipografi digital: font PostScript/Type 1 buatan Adobe memakai Bézier kubik, sementara TrueType dari Apple dan Microsoft memakai Bézier kuadratik yang lebih sederhana; OpenType mendukung keduanya. Di SVG, kurva Bézier muncul sebagai perintah path dalam atribut dC x1,y1 x2,y2 x,y untuk kubik dan Q x1,y1 x,y untuk kuadratik. Pen tool di Adobe Illustrator, motion path di After Effects, hingga NURBS dalam grafika 3D — semuanya mewarisi matematika yang sama yang diterapkan Pierre Bézier pada panel bodi Renault pada 1962.

Fisika gerakan alami dan easing dalam desain UI

Gerakan linear terlihat mekanis karena tidak ada benda di dunia nyata yang bergerak dengan kecepatan konstan. Setiap objek nyata punya inersia: dibutuhkan gaya untuk berakselerasi dari diam dan gaya untuk melambat hingga berhenti. Saat elemen UI bergerak secara linear — panel yang bergeser, kartu yang mengembang, modal yang memudar — gerakannya terasa robotik dan mengganggu sistem visual manusia, bahkan ketika pengguna tidak bisa menjelaskan alasannya secara sadar. Solusinya adalah easing: menerapkan kurva yang meniru profil akselerasi dan deselerasi objek fisik sungguhan.

Empat kategori easing masing-masing menangkap skenario fisik yang berbeda. Ease-in (mulai lambat, akhir cepat) terasa seperti benda jatuh atau dilempar — alami untuk elemen yang meninggalkan layar. Ease-out (mulai cepat, akhir lambat) meniru objek yang melambat hingga berhenti — pilihan paling alami untuk elemen yang muncul di layar, karena terlihat bertujuan dan menetap dengan tenang. Ease-in-out (lambat di kedua ujung, cepat di tengah) cocok untuk elemen yang melintasi layar dan butuh peluncuran serta pendaratan yang mulus. Kategori keempat — ease-out dengan sedikit overshoot, dicontohkan oleh kurva standar Material Design — menambahkan pantulan mikro seperti pegas di akhir, memperkuat kesan massa fisik yang berhenti pada sebuah batas.

Landasan teori desain gerak UI modern berakar pada buku Disney tahun 1981, The Illusion of Life, yang mengodifikasi 12 prinsip animasi termasuk squash and stretch, anticipation, dan follow-through. Anticipation (gerakan mundur singkat sebelum aksi utama) dan follow-through (overshoot yang terkoreksi setelah gerakan utama berhenti) adalah persis efek yang dihasilkan nilai y cubic-bezier di bawah 0 dan di atas 1 pada CSS. Alasan ease-out menjadi rekomendasi default untuk kebanyakan animasi UI juga berakar pada prinsip ini: elemen yang melambat saat tiba di layar terkesan datang dengan sengaja, sementara ease-in terasa seperti antarmuka yang terbang menjauhi Anda.

Frequently asked questions

Apa itu cubic-bezier di CSS?

cubic-bezier() adalah fungsi easing (timing) yang didefinisikan oleh kurva Bézier. Anda menulisnya sebagai cubic-bezier(x1, y1, x2, y2) di transition-timing-function atau animation-timing-function, dan dua titik kontrolnya membengkokkan kurva sehingga animasi mempercepat dan memperlambat, bukan bergerak dengan laju konstan. Misalnya, cubic-bezier(0.25, 0.1, 0.25, 1) adalah easing yang persis sama dengan kata kunci CSS 'ease'. Tanpanya, semua transisi Anda bergerak dengan kecepatan konstan yang datar dan robotik.

Apa fungsi cubic-bezier?

Ia mengontrol kurva kecepatan transisi atau animasi — bagaimana progres sebuah elemen dipetakan terhadap waktu yang berlalu. Bagian kurva yang curam berarti gerakan cepat dan bagian yang datar berarti gerakan lambat. Dengan cubic-bezier(0.42, 0, 1, 1) — sama dengan ease-in — elemen mulai lambat lalu berakselerasi. Dengan cubic-bezier(0, 0, 0.58, 1) — ease-out — ia mulai cepat lalu menetap dengan halus. Kurva easing yang tepat sering menjadi pembeda antara UI yang terasa halus dan UI yang terasa mekanis.

Apa itu bezier easing?

'Bézier easing' berarti menggunakan kurva Bézier kubik sebagai fungsi easing untuk gerakan. Kurva selalu berjalan dari (0,0) ke (1,1); bentuknya — ditentukan oleh dua titik kontrol — menentukan akselerasi. Ini adalah cara standar CSS, GSAP, dan sebagian besar engine animasi JavaScript mendeskripsikan easing kustom, itulah sebabnya satu nilai cubic-bezier() bekerja hampir di mana saja. Framer Motion, React Spring, dan transisi CSS vanilla semuanya menerima empat angka yang sama.

Bagaimana cara kerja empat nilai cubic-bezier?

cubic-bezier(x1, y1, x2, y2) memuat dua titik kontrol: P1 = (x1, y1) menarik awal kurva dan P2 = (x2, y2) menarik ujungnya. Kurva itu sendiri selalu dimulai di (0,0) dan berakhir di (1,1). Nilai x mewakili waktu dan harus berada antara 0 dan 1; nilai y mewakili progres dan boleh turun di bawah 0 atau naik di atas 1 untuk efek overshoot. Seret dua pegangan pada grafik di atas dan keempat angka akan diperbarui langsung saat Anda menggerakkannya.

Berapa nilai cubic-bezier untuk ease dan ease-in-out?

Kata kunci CSS memetakan ke kurva pasti yang bisa Anda muat sebagai preset: ease = cubic-bezier(0.25, 0.1, 0.25, 1), linear = cubic-bezier(0, 0, 1, 1), ease-in = cubic-bezier(0.42, 0, 1, 1), ease-out = cubic-bezier(0, 0, 0.58, 1), dan ease-in-out = cubic-bezier(0.42, 0, 0.58, 1). Klik salah satunya di bilah preset untuk memuatnya ke editor, lalu sempurnakan dari sana. Semuanya sudah tertanam di setiap browser — tanpa perlu library.

Apa perbedaan ease, linear, ease-in, ease-out, dan ease-in-out?

linear bergerak dengan kecepatan konstan tanpa easing — terlihat tidak alami untuk sebagian besar UI. ease — default CSS — mulai agak cepat lalu melambat di akhir. ease-in mulai lambat dan berakselerasi menuju akhir, sering terasa seperti sesuatu yang jatuh. ease-out mulai cepat dan melambat, biasanya terasa paling alami untuk elemen UI yang muncul di layar. ease-in-out lambat di kedua ujung dan tercepat di tengah, ideal untuk elemen yang melintasi layar dan perlu berhenti dengan mulus.

Bisakah nilai cubic-bezier melebihi 1 atau di bawah 0?

Nilai y bisa, dan begitulah cara mendapatkan efek overshoot dan antisipasi. Nilai x (waktu) selalu dibatasi 0–1, tetapi y di atas 1 membuat elemen melampaui targetnya lalu kembali menetap — seperti pegas — sementara y di bawah 0 membuatnya mundur dulu. Contoh klasiknya adalah easeOutBack = cubic-bezier(0.34, 1.56, 0.64, 1). Editor ini memungkinkan Anda menyeret pegangan keluar dari kotak 0–1 untuk membuat efek tersebut dan menampilkan hasilnya langsung. Editor bawaan Chrome DevTools sama sekali tidak mengizinkan keluar dari kotak, sehingga tidak berguna untuk kurva overshoot.

Bagaimana cara membuat easing bounce atau overshoot?

Seret pegangan titik kontrol ke atas kotak (y lebih dari 1) untuk overshoot, atau ke bawah kotak (y kurang dari 0) untuk antisipasi. Overshoot 'back' yang populer adalah cubic-bezier(0.68, -0.55, 0.27, 1.55). Perhatikan bahwa multi-bounce sejati (bola yang memantul beberapa kali) tidak bisa dibuat dengan satu cubic-bezier — ia hanya punya satu kurva — jadi gunakan animasi @keyframes CSS atau ease bounce GSAP untuk itu. Tool ini mengekspor kode @keyframes dan GSAP CustomEase persis untuk kasus tersebut.

Bagaimana perbandingannya dengan cubic-bezier.com?

cubic-bezier.com karya Lea Verou adalah tool referensi asli dan memang sangat baik, tetapi tidak mengekspor GSAP CustomEase atau fungsi easing JavaScript mandiri. Ia juga tidak punya katalog preset easing Penner bernama, tidak ada mode compare, dan kesulitan di layar mobile. Generator cubic-bezier UtiloKit menambahkan pustaka 30+ preset yang mencakup semua varian Penner, mode compare (dua kurva berdampingan), tab ekspor GSAP dan JavaScript, serta antarmuka seret yang ramah mobile. easings.net bersifat baca-saja — Anda bisa melihat kurva bernama tetapi tidak bisa menyesuaikan atau mengekspor kode.

Bagaimana mengonversi easing bernama seperti easeInOutQuad ke cubic-bezier?

Muat dari katalog preset — kurva Penner / easings.net semuanya punya aproksimasi cubic-bezier standar. Misalnya easeInOutQuad = cubic-bezier(0.45, 0, 0.55, 1), easeOutCubic = cubic-bezier(0.33, 1, 0.68, 1), dan easeInOutCubic = cubic-bezier(0.65, 0, 0.35, 1). Pilih kurva bernama dari galeri dan salin nilainya langsung ke CSS Anda. Easings.net hanya menampilkan nama kurva tanpa editor — di sini Anda bisa memuat semuanya dan menyesuaikan secara langsung.

Bagaimana menggunakan cubic-bezier dalam transisi atau animasi CSS?

Letakkan di slot timing-function. Untuk transisi: transition: transform 600ms cubic-bezier(0.33, 1, 0.68, 1);. Untuk animasi keyframe: animation: slide 600ms cubic-bezier(0.33, 1, 0.68, 1) both;. Tab CSS pada tool ini menghasilkan kedua snippet secara otomatis berdasarkan kurva dan durasi Anda saat ini, sehingga bisa langsung disalin ke stylesheet tanpa mengetik empat angkanya secara manual.

Apa padanan cubic-bezier di GSAP atau JavaScript?

Di GSAP, gunakan plugin CustomEase: CustomEase.create('custom', 'M0,0 C0.25,0.1 0.25,1 1,1') lalu set ease: 'custom'. Di JavaScript murni Anda butuh fungsi yang menyelesaikan kurva untuk waktu tertentu. Tab JS menghasilkan fungsi easing cubic-bezier siap tempel yang bisa dipanggil sebagai ease(t) di dalam requestAnimationFrame atau tween loop apa pun — tanpa library. Pengguna Framer Motion bisa meneruskan empat angka tersebut langsung ke prop ease sebagai array.

Apakah tool ini berfungsi di iPhone dan Android?

Ya, sepenuhnya. Editor kurva, pegangan seret, pratinjau langsung, dan tab ekspor semuanya berfungsi di browser mobile — teruji di iOS Safari dan Android Chrome. Canvas menyesuaikan ukuran layar dan pegangannya cukup besar untuk digunakan dengan jari. Editor cubic-bezier bawaan Chrome DevTools hanya untuk desktop dan mengharuskan membuka DevTools, yang sama sekali tidak tersedia di mobile. Ini salah satu dari sedikit editor kurva bezier yang benar-benar berfungsi baik di ponsel.

Apakah generator cubic-bezier ini gratis dan privat?

Sepenuhnya gratis, tanpa pendaftaran, dan tidak ada yang diunggah ke mana pun. Editor kurva, pratinjau langsung, serta ekspor CSS, GSAP, dan JavaScript semuanya berjalan lokal di browser Anda. Tidak ada yang Anda buat dikirim ke server, sehingga karya Anda tetap sepenuhnya di perangkat Anda. Anda juga bisa membagikan kurva lewat tautan yang menyandikan keempat nilai di URL — tanpa perlu akun untuk berbagi.