ExploreCSS — Blurred Background & Fractal Noise Effect Untuk Desain Kekinian.
Banyak cara untuk menampilkan desain blurred background, Salah satunya dengan menggunakan CSS Filter, CSS pseudo-element, CSS mix-blend-mode
Tulisan kali ini kayaknya santai aja ya, berawal dari tweet-nya bang DimasWibowo terkait desainnya apakah bisa di develop? apakah menyusahkan developer?
Dari cuitan tersebut, saya jadi inget dengan desain bang Dimas yang ada di figma community, dan saya pun tertantang untuk mencoba explorasi desain tersebut menggunakan CSS.
“Ngapain sih ribet pake CSS? kan bisa…. “
“Ya, namanya juga eksplorasi #MulaiAjaDulu #PastiAdaJalan .”
Analisa Desain
Dari banyak pilihan desain yang disediakan, saya pilih satu.
Dari hasil analisa desain, saya mengambil kesimpulan
- Dalam 1 section header terdapat desain blurred background.
- Blurred background terdiri dari 2 shape ellipse.
- Setiap shape memiliki desain ukuran yang berbeda, nilai blur yang berbeda, nilai gradient yang berbeda
- Setiap shape memiliki efek “texture noise”
Mulai Templating
Ini akan menjadi proses templating yang singkat
HTML
CSS
ExploreCSS kali ini fokus ke memadukan 3 property CSS
Filter
- Pseudo
::after
&::before
mix-blend-mode
CSS header
CSS Pseudo ::after
& ::before
Mengatur posisi kedua shape agar posisinya di center horizontal & vertical axis
Pseudo element before
Penggunaan element ini untuk mengatur shape yang paling besar
Mengatur ukuran shape before dan nilai dari background, FYI, di figma shape pertama memiliki ukuran 800px x 800px, disini saya ubah menjadi 40vw agar flexible mengikuti ukuran layar
Pseudo element after
Penggunaan element ini untuk mengatur shape yang kecil
Tambahkan property margin untuk mengubah posisi shape after lebih mencolok ke atas kanan layar.
Hasilnya….
CSS Filter blur
Tambahkan CSS Property filter dengan property blur, menyesuaikan dengan desain.
Hasilnya
HTML SVG filter
Saya biasanya jika ingin menampilkan efek/tekstur kertas pada sebuah template, saya menggunakan gambar untuk dijadikan background.
Nah, kebetulan, beberapa waktu yang lalu, saya melihat explorasi dari Ana Tudor terkait penggunaan SVG Filter, jadi saya sekalian belajar juga penggunaan SVG Filter
- Penggunaan id, untuk dipanggil pada css, yang nantinya akan digunakan sebagai background.
- Nah, menurut w3.org tag
feTrubulence
ini fungsinya untuk membuat gambar Perlin Noise, apasih Perlin Noise? Sumpah, saya gapaham setelah baca di wikipedia. But the end of the day, kalo kodenya jalan, berarti bisa dipakai 😅 - Kemudian,
baseFrequency
ini fungsinya untuk mengatur kepadatan dari tekstur yang dibutuhkan. Semakin besar nilainya semakin padat teksturnya.
Selama mencoba, nilai yang bisa digunakan adalah dari 0.001 hingga 1 - Lalu,
fractalNoise
ini fungsinya, untuk membuat gambar agar terlihat Noise.
- Mari kita coba jika tidak menggunakan type
fracatalNoise
<feTurbulence baseFrequency=”0.1"></feTurbulence>
fracatalNoise
CSS Texture Effect
filter
digunakan memanggil SVG Filtermix-blend-mode
berungsi untuk memberikan efek memadukan antar layer. jika kamu terbiasa menggunakan Photo Editor pasti sudah familiar dengan ini.
Hasilnya…
Jika tidak menggunakan mix-blend-mode
, tampilannya akan seperti ini
Menambahkan sedikit interaksi ketika pertama kali dibuka
“Mas, kayaknya bagus deh dikasih efek parallax berlawanan sama cursor ketika di-hover”
Okay, bisa, akan tetapi, akan ada perubahan dari proses templating-nya:
- Mengubah Pseudo-Element dengan tag HTML, misal menggunakan tag
span
- Menambahkan kode javascript untuk mengatur parallax effects
- Karena parallax effects menggandalkan
transform
, maka untuk mengatur shape agar centering, maka yang digunakan adalah flexbox. - Nilai
transform
akan berubah mengikuti pengaturan dari parallax effects
Hasilnya Silakan lihat ditautan demo, yes!
Demo & Source code
Standrard
Parallax
Hmmm, kalo desain gini emang bisa pake CSS?
Kayaknya, kalo Ana tudor yang ngerjain bisa deh, saya belum bisa mainin CSS gradient. hehehe
Saya penganut CSS First, apabila masih bisa menggunakan CSS, maka saya lanjutkan, meskipun memakan waktu, karena ada kepuasan tersendiri.
Tidak semua kasus bisa menggunakan cara yang sama perlu banyak perimbangan.
Kesimpulan dan Referensi
- Penggunaan CSS Filter blur ini terlihat tidak smooth pada hasil akhirnya.
- Saya tidak memahami 100% terkait penggunaan tag
feTrubulence,
but it’s working! haha 😅 - Hasil akhir tidak sama dengan desain, ya, karena kan ini eksplorasi, *alasan aja*
- Keuntungan menggunakan CSS adalah kita bisa memberi nilai yang berbeda-beda untuk interaksi yang akan dibuat.
- Kalian bisa menggunakan video ataupun canvas dengan hasil yang sama, banyak jalan dan cara untuk Jogja. 😊
- Selengkapnya tentang membuat patterns dengan SVG Filter
- Terima kasih Bang DimasWibowo untuk desainnya
- Selengkapnya tentang Mix Blend Mode