← Level 2 – Wizard

Pelajaran 4 dari 8 ⏱ 30 menit

Mode gelap untuk situs web kamu

Pengalih tema terang/gelap yang diingat situs web bahkan setelah kamu menutup browser.

Bagaimana cara kerjanya

Mode gelap adalah mantra yang terdiri dari dua bagian:

  1. CSS menyiapkan “kostum” kedua – aturan yang hanya berlaku bila halaman memiliki kelas gelap.
  2. JavaScript menambah atau menghapus kelas tersebut ketika diklik. Dan itu menulis apa yang kamu pilih ke dalam memori browser, sehingga masih berlaku besok.

Tunjukkan pada saya: kostum gelap di CSS

Tambahkan ini ke akhir style.css:

body.dark {
  background-color: #1c1917;
  color: #f5f0ea;
}

body.dark h1,
body.dark h2 {
  color: #93c5fd;
}

body.dark .card {
  background-color: #292524;
  color: #f5f0ea;
}

Bacalah seperti ini: “Jika tubuh memiliki kelas gelap, aturan ini berlaku.” Tanpa kelas, semua ini tidak akan digunakan.

💡

Sesuaikan warna agar sesuai dengan situs web kamu – buka CSS kamu dan temukan saudara yang gelap untuk setiap warna terang. Aturannya tetap sama: latar belakang gelap → teks terang.

Tunjukkan pada saya: tombol di JavaScript

Tambahkan tombol ke header (di dalam <nav>):

<button id="switch">🌙</button>

Dan di script.js:

const switchButton = document.getElementById("switch");

// When the page loads: remember what the visitor picked last time
if (localStorage.getItem("mode") === "dark") {
  document.body.classList.add("dark");
  switchButton.textContent = "☀️";
}

switchButton.addEventListener("click", () => {
  document.body.classList.toggle("dark");

  if (document.body.classList.contains("dark")) {
    localStorage.setItem("mode", "dark");
    switchButton.textContent = "☀️";
  } else {
    localStorage.setItem("mode", "light");
    switchButton.textContent = "🌙";
  }
});

Tiga hal baru:

Giliran kamu 💪

  1. Tambahkan kostum gelap ke style.css kamu sendiri – telusuri semua warna kamu (latar belakang, header, kartu, footer, lencana) dan berikan versi gelap di bawah body.dark.
  2. Tambahkan tombol sakelar ke header di setiap halaman dan kode ke script.js.
  3. Cobalah: beralih ke mode gelap, tutup browser, buka situs web lagi – seharusnya langsung terbuka ke mode gelap.
Contoh kostum gelap yang lebih lengkap (sesuaikan warna agar sesuai dengan proyek kamu)
body.dark {
  background-color: #1c1917;
  color: #f5f0ea;
}

body.dark h1,
body.dark h2,
body.dark h3 {
  color: #93c5fd;
}

body.dark header {
  background-color: #0f172a;
}

body.dark .card {
  background-color: #292524;
  color: #f5f0ea;
  box-shadow: none;
}

body.dark footer {
  background-color: #0f172a;
}

body.dark a {
  color: #93c5fd;
}

Periksa diri kamu: Mengklik 🌙 membuat situs web menjadi gelap (dan ikon berubah menjadi ☀️), mengklik ☀️ menjadikannya terang kembali. Setelah menutup dan membuka kembali browser, situs web akan mengingat pilihan kamu. Ini adalah fitur yang bahkan tidak dimiliki oleh banyak situs web “dewasa”!

Apa yang bisa diambil dari pelajaran ini