Generator Bayangan Kotak CSS
Buat satu aturan box-shadow dalam satu waktu: atur offset horizontal dan vertikal, blur, spread, warna, serta inset opsional, lalu salin hasilnya. Bayangan sungguhan biasanya membutuhkan dua atau tiga lapisan, jadi hasilkan setiap lapisan secara terpisah dan gabungkan aturan-aturannya dengan koma.
Cara merancang bayangan kotak
-
1
Atur nilai bayangan
Offset horizontal, offset vertikal, jari-jari blur, spread, serta warna dengan tingkat opasitas.
-
2
Alihkan ke inset
Ubah bayangan menjadi inset untuk mendapatkan bayangan dalam, berguna untuk tombol yang ditekan dan efek rongga.
-
3
Pilih warna bayangan
Hitam dengan opasitas rendah adalah pilihan klasik. Bayangan berwarna (sesuai warna elemen dan lebih gelap) terlihat lebih alami.
-
4
Salin CSS
Salin aturan bayangan tunggal dan tempel di stylesheet Anda. Untuk bayangan berlapis, hasilkan setiap lapisan terpisah lalu gabungkan aturannya dengan koma.
Sintaks box-shadow
box-shadow: <x-offset> <y-offset> <blur> <spread> <colour> [inset];
- x-offset: nilai positif = ke kanan, nilai negatif = ke kiri.
- y-offset: nilai positif berarti ke bawah, nilai negatif berarti ke atas.
- Blur: 0 = tepi tajam; nilai yang lebih tinggi = tepi yang lebih lembut. Ukuran yang terlihat kira-kira 1,5 kali nilai blur di luar elemen.
- Spread: ukuran tambahan di luar elemen. Nilai positif memperbesar bayangan, sedangkan nilai negatif memperkecilnya (berguna untuk menghasilkan efek halo yang halus).
- warna: mendukung semua warna CSS.
rgba(0, 0, 0, 0.15)merupakan pilihan utama yang paling umum digunakan. - inset: kata kunci yang membalikkan bayangan di dalam elemen.
Bayangan berlapis terlihat nyata
Generator ini menghasilkan satu aturan bayangan dalam satu waktu; untuk membuat bayangan berlapis, hasilkan setiap lapisan terpisah lalu gabungkan aturannya dengan koma.
Satu bayangan dengan 0 0 40px terlihat kabur. Dua bayangan, yakni bayangan kecil yang tajam di dekat elemen dan bayangan lebih besar yang lembut di sekitarnya, menggambarkan cara cahaya nyata tersebar.
box-shadow:
0 1px 2px rgba(0, 0, 0, 0.08),
0 4px 12px rgba(0, 0, 0, 0.08);
Baris pertama menampilkan bayangan kontak yang padat, sedangkan baris kedua menampilkan lingkungan sekitar yang lebih lembut. Pola tunggal ini mencakup 80% dari antarmuka tipe kartu.
Sistem elevasi
Material Design menggunakan enam tingkat elevasi, masing-masing dengan susunan bayangan yang berbeda. Secara sederhana:
| Elevasi | Bayangan |
|---|---|
| 1 (dalam keadaan istirahat) | 0 1px 3px rgba(0,0,0,.12), 0 1px 2px rgba(0,0,0,.24) |
| 2 | 0 3px 6px rgba(0,0,0,.16), 0 3px 6px rgba(0,0,0,.23) |
| 3 | 0 10px 20px rgba(0,0,0,.19), 0 6px 6px rgba(0,0,0,.23) |
| 4 (ditinggikan) | 0 14px 28px rgba(0,0,0,.25), 0 10px 10px rgba(0,0,0,.22) |
| 5 (mengapung) | 0 19px 38px rgba(0,0,0,.30), 0 15px 12px rgba(0,0,0,.22) |
Pilih satu untuk setiap peran elevasi dan gunakan secara konsisten.
Bayangan berwarna terlihat lebih alami
Bayangan hitam murni terasa tidak alami karena bayangan sebenarnya memiliki warna yang ditentukan oleh permukaan di bawahnya. Coba:
box-shadow: 0 12px 24px rgba(40, 80, 120, 0.18);
- warna biru-abu yang sejuk, bukan hitam murni. Pada latar belakang hangat, gunakan nuansa yang lebih hangat.
Kinerja
Bayangan kotak dibuat setiap kali dilakukan penggambaran ulang. Bayangan yang besar dan tebal pada banyak elemen dapat memperlambat proses gulir. Langkah-langkah mitigasi:
- Gunakan
transform: translateZ(0)pada elemen untuk memaksa pembuatan lapisan komposit. - Gantilah bayangan kompleks dengan
filter: drop-shadow()hanya jika Anda memerlukan bayangan yang mengikuti clip-path (prosesnya umumnya lebih lambat). - Batasi bayangan pada elemen yang sering dirender ulang.
Inset untuk keadaan ditekan
.button:active {
box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.12);
}
Bayangan inset memberikan kesan cekungan ke dalam permukaan, tombol terlihat seolah-olah ditekan ke dalamnya. Gabungkan dengan transform: translateY(1px) kecil ke bawah untuk mendapatkan sensasi klik yang terasa nyata.
Pertanyaan yang Sering Diajukan
Umumnya hal ini terjadi karena tingkat blur terlalu rendah atau nilai spread terlalu tinggi. Bayangan dengan tepi tegas yang tidak memiliki efek blur akan tampak seperti elemen duplikat. Tingkatkan nilai blur (20–30px merupakan titik awal yang umum digunakan), dan pertahankan nilai spread pada angka 0 atau nilai negatif yang sangat kecil.
Box-shadow mengikuti batas elemen, termasuk nilai border-radius, sehingga kartu yang berbentuk bulat akan memiliki bayangan yang secara otomatis menjadi halus dan bulat. Untuk bentuk dengan kliping, box-shadow tidak mengikuti area yang diklip; gunakan filter: drop-shadow() sebagai penggantinya.
Atur bayangan secara signifikan ke arah yang ditentukan, lalu gunakan efek penyebaran negatif untuk menyembunyikan sisi seberlawanan. Atau gunakan dua bayangan: satu yang terlihat di sisi target, dan satu lagi dengan efek penyebaran negatif untuk menutupi bagian yang tidak diinginkan dari penyebaran cahaya.
Tidak ada batasan kaku, tetapi setiap bayangan merupakan satu tahap pelapisan cat tambahan. Tiga hingga empat lapisan merupakan batas maksimal yang praktis; jika melebihi itu, sebaiknya gunakan gambar latar belakang atau file SVG sebagai pengganti.
Alat Terkait
Referensi Tabel ASCII
Tabel ASCII lengkap dari 0 sampai 127 dengan desimal, heksadesimal, oktal, biner, dan referensi karakter numerik HTML untuk setiap karakter, termasuk kode kontrol seperti NUL, LF, dan DEL.
Referensi Karakter HTML
Daftar entitas HTML yang dapat dicari, beserta kode bernama dan kode numeriknya, serta fitur salin dengan satu klik untuk karakter khusus dan simbol.
Referensi pintasan papan ketik
Cari pintasan bawaan terdokumentasi untuk VS Code, Chrome, dan Bash dengan GNU Readline di macOS, Windows, dan Linux.
Penghitung FPS
Ukur FPS browser dengan requestAnimationFrame: penghalusan, frame rate minimum dan maksimum, ambang peringatan, dan grafik opsional. Berjalan lokal, tanpa unggahan dan tanpa API.
Generator Warna Acak
Buat 1 hingga 50 warna HEX acak dengan contoh warna yang bisa dipratinjau, disalin, dan dipakai di CSS, pengujian, atau eksplorasi palet.
Pemilih Warna HEX
Pilih atau masukkan warna HEX untuk mendapatkan RGB, HSL, perkiraan CMYK, luminans relatif, serta kontras terhadap putih dan hitam.