Menu

Generator CSS Box Shadow

Rancang box-shadow CSS berlapis dengan pratinjau langsung, lalu salin CSS yang siap produksi.

Oleh Nethanel Bar, Co-founder & CEO

Terakhir diperbarui

Siap benar-benar belajar coding?

Coddy mengajarimu dengan menulis kode sungguhan di browser: pelajaran interaktif, umpan balik instan, dan bantuan AI saat kamu buntu.

Apa itu generator CSS box-shadow?

box-shadow adalah property CSS yang menambahkan bayangan jatuh, cahaya, dan cekungan inset ke elemen apa pun. Inilah cara paling ampuh untuk memberi desain datar kesan *ketinggian*: kartu terangkat dari halaman, modal melayang di atas konten, tombol terasa bisa ditekan.

Kuncinya, bayangan yang *bagus* jarang hanya satu lapisan. Bayangan di dunia nyata lebih lembut dan punya pantulan cahaya sekitar. Kebanyakan design system (Material, iOS, Tailwind) menumpuk 2 sampai 3 deklarasi box-shadow dengan offset dan opasitas yang berbeda. Menulisnya dengan tangan itu merepotkan; generator membuatmu bisa mengatur setiap lapisan secara visual dan melihat hasil gabungannya secara live.

Generator Coddy mendukung lapisan tanpa batas, bayangan *luar* maupun *inset*, warna dan opasitas per lapisan, serta preset untuk pola yang paling umum: kartu halus, bayangan tajam, cahaya warna merek, cekungan inset, dan permukaan neumorphic. Salin CSS-nya lalu tempel langsung ke stylesheet-mu, tanpa upload, tanpa akun, tanpa watermark.

Yang perlu diketahui tentang CSS box-shadow

  • Sintaksnya adalah box-shadow: [inset] <x> <y> <blur> <spread> <color>. inset menaruh bayangan *di dalam* elemen; tanpanya, bayangan jatuh di luar.
  • *Blur* melembutkan tepi: nilai yang lebih besar menghasilkan bayangan yang lebih menyebar. *Spread* membesarkan atau mengecilkan bayangan sebelum blur diterapkan (nilai negatif menariknya ke dalam, berguna untuk efek terangkat yang lembut).
  • Beberapa bayangan dipisahkan koma dan ditumpuk dari belakang ke depan sesuai urutan penulisan: yang ditulis pertama berada *di bawah* yang ditulis kemudian pada hasil akhirnya.
  • Pakai rgba() (atau hsla()) untuk warnanya supaya kamu bisa mengatur opasitas per lapisan. Hitam pekat dengan opasitas rendah terlihat seperti bayangan abu-abu yang lembut; hitam pekat dengan opasitas penuh terlihat seperti potongan yang keras.
  • box-shadow dikomposisi oleh GPU dan termasuk peningkatan visual paling murah yang bisa kamu terapkan. Property ini tidak memengaruhi layout: elemen tetap pada ukuran dan posisi aslinya.

Cara mendesain box-shadow

  1. Mulai dari preset

    Pilih preset yang sesuai dengan kesan yang kamu inginkan: kartu halus, elevasi lembut, bayangan tajam, cahaya merek, cekungan inset, atau neumorphic. Preset adalah titik awal yang bagus untuk kamu atur lagi.

  2. Atur lapisan yang aktif

    Geser slider untuk offset X/Y, blur, spread, warna, dan opasitas. Preview di kiri langsung diperbarui. Opasitas lebih rendah dan blur lebih tinggi menghasilkan bayangan yang *lebih lembut*.

  3. Tumpuk lapisan tambahan

    Klik *Tambah lapisan* untuk menumpuk bayangan kedua. Kedalaman yang realistis hampir selalu memakai dua lapisan: satu pendek dan rapat (bayangan kontak) dan satu panjang dan lembut (bayangan sekitar).

  4. Aktifkan inset untuk cekungan

    Menyalakan *Inset* melukis bayangan di dalam elemen, bukan di sekelilingnya. Gabungkan dengan bayangan luar yang halus untuk efek tombol yang sedang ditekan.

  5. Salin CSS-nya

    Ketika preview sudah sesuai dengan desainmu, klik *Salin CSS*. Tempel hasilnya ke stylesheet-mu; aturan yang dihasilkan sudah mencakup semua lapisan yang aktif.

Referensi cepat box-shadow

Setiap nilai dalam box-shadow: x y blur spread color dan perannya.

NilaiEfekRentang umum
Offset XMenggeser bayangan secara horizontal; positif = ke kanan−40px sampai 40px
Offset YMenggeser bayangan secara vertikal; positif = ke bawah0px sampai 40px untuk cahaya alami
BlurMelembutkan tepi bayangan0px sampai 80px
SpreadMembesarkan atau mengecilkan sebelum blur diterapkan−30px sampai 30px
WarnaWarna CSS apa pun, tapi rgba() membuatmu bisa mengatur opasitas per lapisanrgba(0,0,0,0.05–0.3) untuk bayangan alami
insetMelukis bayangan di dalam elemen-
Beberapa lapisanDipisahkan koma; ditumpuk dari belakang ke depan2 sampai 3 lapisan memberi kedalaman realistis

Contoh box-shadow untuk dicoba

Kartu halus dengan lapisan kontak dan sekitar

Kartu halus dua lapisan
box-shadow:    0 1px 2px rgba(0, 0, 0, 0.06),    0 4px 12px rgba(0, 0, 0, 0.08);

Bayangan rapat dengan blur rendah menentukan titik kontak, dan bayangan yang lebih panjang dan lembut memberi kesan cahaya sekitar. Inilah pola yang dipakai sebagian besar design system modern.

Cahaya warna merek

Cahaya berwarna yang lembut
box-shadow: 0 0 24px 4px rgba(108, 140, 255, 0.45);

Atur X dan Y ke nol supaya cahayanya memancar merata. Spread positif kecil menebalkan cahaya sebelum blur melembutkannya. Pakai secukupnya, karena cahaya berwarna sangat menarik perhatian.

Inset yang tertekan

Bayangan inset untuk kesan tertekan
box-shadow:    inset 0 2px 6px rgba(0, 0, 0, 0.18),    inset 0 0 0 1px rgba(0, 0, 0, 0.06);

Bayangan inset dilukis di dalam elemen. Satu bayangan lembut memberi kesan cekungan; inset setipis rambut menambahkan border dalam yang halus agar bentuknya lebih tegas.

Kesalahan umum saat memakai box-shadow

  • Memakai hitam pekat dengan opasitas tinggi. Hasilnya terlihat seperti potongan keras, bukan bayangan. Turunkan opasitas ke 0,06 sampai 0,18 untuk elevasi yang terlihat alami.
  • Lupa offset Y. Bayangan dengan X=0 dan Y=0 berada merata *di belakang* elemen: cocok untuk cahaya, tapi salah untuk kartu yang seharusnya terlihat melayang.
  • Menumpuk terlalu banyak lapisan. Tiga biasanya sudah cukup; sepuluh menghasilkan tampilan kabur yang berantakan dan biaya paint yang terasa.
  • Menganggap filter: drop-shadow() dan box-shadow sama saja. drop-shadow() mengikuti alpha mask dari SVG atau gambar, berguna untuk bentuk tidak beraturan, tapi box-shadow lebih cepat dan lebih rapi untuk elemen persegi panjang.
  • Lupa bahwa box-shadow mengabaikan overflow: hidden pada elemen itu sendiri. Kalau parent-nya punya overflow: hidden, bayangannya akan terpotong.

FAQ CSS Box-Shadow

Apa arti setiap nilai box-shadow?
box-shadow: x y blur spread color. Dua nilai pertama adalah offset; *blur* melembutkan tepi; *spread* mengubah ukuran sebelum blur; warnanya bisa warna CSS apa pun (pakai rgba() untuk mengatur opasitas). Tambahkan inset di awal untuk menaruh bayangan di dalam elemen.
Bagaimana cara menumpuk beberapa bayangan dalam satu aturan?

Pisahkan setiap bayangan dengan koma. Bayangan dirender dari belakang ke depan sesuai urutan penulisan, jadi bayangan yang dideklarasikan pertama berada *di bawah* yang berikutnya. Pakai cara ini untuk menggabungkan bayangan kontak yang rapat dengan bayangan sekitar yang lembut.

Apa bedanya box-shadow dengan filter: drop-shadow()?
box-shadow mengikuti kotak pembatas elemen dan cepat dilukis. drop-shadow() mengikuti kanal alpha dari apa pun yang diberi efek itu (bagus untuk SVG dan PNG transparan), tapi lebih berat untuk dirender. Pakai box-shadow untuk kartu dan tombol; pakai drop-shadow() untuk bentuk tidak beraturan.
Kenapa bayangan saya terlihat pecah?
Entah blur-nya sangat kecil (blur 0 px memang menghasilkan bayangan tajam), atau elemennya sedang diskalakan. Naikkan nilai blur atau cek apakah ada transform: scale() di elemen induknya.
Apakah box-shadow memengaruhi layout?
Tidak. Bayangan dilukis di luar kotak elemen, tapi tidak mendorong konten di sekitarnya. Kalau parent perlu memberi ruang untuk bayangan, beri parent padding atau overflow: visible.

Pelajari lebih lanjut

Alat developer lainnya

Ilustrasi bahasa pemrograman di Coddy

Belajar coding dengan Coddy

Mulai