Generator Perbatasan Gradien Animasi CSS
Hasilkan batas gradien pelangi yang berputar mulus dan mengikuti radius batas dengan benar, dibuat dengan @property, conic-gradient, dan mask-composite — salin CSS asli, saksikan berputar secara langsung.
Hasil
Perbatasan pelangi yang berputar terlihat sederhana sampai Anda benar-benar mencoba membuatnya di CSS: menganimasikan sudut di dalam conic-gradient() dengan properti khusus biasa tidak ada gunanya, karena browser tidak tahu bahwa nilainya adalah sudut dan tidak dapat melakukan interpolasi antara 0deg dan 360deg — ia hanya melompat. Generator ini menggunakan perbaikan sebenarnya, CSS Properties and Values API: `@property --border-angle { sintaks: '<angle>'; nilai awal: 0deg; mewarisi: salah; }` memberi tahu browser jenis nilai apa yang dimiliki properti khusus, yang akan menghasilkan interpolasi yang lancar dan ramah GPU di seluruh aturan @keyframes.
Cincin itu sendiri adalah elemen semu ::sebelum yang berukuran lebih besar dari kotak (dimasukkan dikurangi lebar tepi) dengan latar belakangnya disetel ke `conic-gradient(from var(--border-angle), ...)` yang mengulang kembali ke warna pertama sehingga sapuan tidak memiliki jahitan yang terlihat. Mask kemudian melakukan pekerjaan pembentukan sebenarnya: `mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); mask-composite: kecualikan;` hanya menyimpan perbedaan berbentuk cincin antara kotak padding dan kotak konten, membuang persegi panjang gradien padat di tempat lain. `-webkit-mask-composite: xor` Safari yang lebih lama melakukan operasi yang sama dan dikirimkan bersama properti standar, sehingga efeknya dirender secara konsisten daripada gagal secara diam-diam di satu mesin.
Dukungan radius batas bukanlah sebuah renungan yang dicantumkan di atas — `radius-batas: warisan` dari elemen semu berarti berapa pun radius yang Anda masukkan ke dalam kotak akan dibawa ke dalam ring secara otomatis, sehingga tombol berbentuk pil atau kartu bundar akan mendapatkan batas yang membulat dan bersinar, bukan tepi lurus yang keluar dari sudut melengkung. Uji langsung: seret penggeser radius dari persegi panjang tajam ke pil penuh dan lihat cincin mengikuti bentuk di setiap langkah, yang merupakan detail yang memisahkan penerapan nyata teknik ini dari tangkapan layar palsu.
Segala sesuatu yang lain di halaman dipetakan langsung ke kode yang dihasilkan: penggeser lebar adalah ketebalan cincin dan inset/padding elemen semu, penggeser durasi adalah durasi animasi @keyframes, tombol arah hanya membalik tanda sudut akhir bingkai utama (+360 derajat atau -360 derajat), dan setiap perhentian warna adalah entri yang dipisahkan koma di dalam panggilan conic-gradient(). Semuanya berjalan di browser Anda tanpa gambar, tanpa loop animasi berbasis JavaScript, dan tanpa layanan eksternal — salin blok CSS dan blok tersebut terus berputar di mana pun Anda menempelkannya.