Variabel CSS (Custom Properties) & calc()

Menyimpan nilai yang dipakai berulang (warna, jarak) dalam variabel, memakainya dengan var(), serta menghitung ukuran dengan calc(), min(), max(), dan clamp().

Part 18 dari 25 ± 40 menit Gratis

Masalah nilai berulang

Bayangkan warna utama website kamu #3c5a44 dipakai di 40 tempat. Lalu klien ingin menggantinya. Kamu harus mengubah 40 baris, dan satu yang terlewat membuat tampilan tidak konsisten. Variabel CSS menyelesaikannya: tulis sekali, pakai di mana saja.

Membuat dan memakai variabel

:root {
  --warna-utama: #3c5a44;
  --warna-aksen: #cf9d3d;
  --jarak: 16px;
  --radius: 12px;
}

.tombol {
  background: var(--warna-utama);
  padding: var(--jarak);
  border-radius: var(--radius);
}
  • Nama variabel diawali dua tanda hubung --.
  • Dipakai dengan fungsi var(--nama).
  • :root adalah elemen paling atas (html), sehingga variabel di sana berlaku di seluruh halaman.
  • Variabel bersifat case-sensitive: --Warna berbeda dari --warna.

Nilai cadangan (fallback)

color: var(--warna-teks, #333);   /* kalau --warna-teks tidak ada, pakai #333 */

Variabel bisa ditimpa di lingkup tertentu

Variabel mengikuti aturan pewarisan. Kamu bisa mengubah nilainya di bagian tertentu sehingga semua anak ikut berubah:

.tema-gelap {
  --latar: #1b1f1a;
  --teks: #f6f2e9;
}
.kartu {
  background: var(--latar);
  color: var(--teks);
}

Inilah dasar membuat mode gelap/terang: cukup mengganti nilai variabel, bukan menulis ulang semua aturan.

calc(): hitung di CSS

calc() mengizinkan operasi + - * / dengan satuan berbeda. Tanda + dan - wajib dikelilingi spasi.

.konten { width: calc(100% - 40px); }
.judul  { font-size: calc(1rem + 1vw); }
.item   { margin: calc(var(--jarak) * 2); }

min(), max(), clamp()

FungsiArtinyaContoh
min(a, b)Ambil yang lebih kecilwidth: min(100%, 600px)
max(a, b)Ambil yang lebih besarfont-size: max(16px, 2vw)
clamp(min, ideal, max)Ideal, tapi dibatasi minimum dan maksimumfont-size: clamp(1.5rem, 4vw, 3rem)

clamp() sangat berguna untuk teks yang membesar mengikuti layar tapi tidak pernah terlalu kecil atau terlalu besar, tanpa media query.

Beri nama variabel berdasarkan peran, bukan nilai: --warna-utama lebih baik daripada --hijau.

Praktikkan langsung, gratis

Tulis dan jalankan kode langsung di browser, dapatkan penilaian otomatis. Daftar gratis kapan saja untuk menyimpan progres dan meraih sertifikat.

Coba latihan sekarang, tanpa daftar
Bagikan: WhatsApp Facebook LinkedIn X