← Nivå 2 – Trollkarl

Lektion 4 av 8 ⏱ 30 minuter

Mörkt läge för din webbplats

En ljus/mörk temaväxlare som webbplatsen minns även efter att du stängt webbläsaren.

Så funkar det

Mörkt läge är en trollformel i två delar:

  1. CSS förbereder en andra “kostym” – regler som bara gäller när sidan har klassen dark.
  2. JavaScript lägger till eller tar bort den klassen vid klick. Och det skriver vad du valde i webbläsarens minne, så det gäller imorgon också.

Jag visar: den mörka kostymen i CSS

Lägg till det här i slutet av 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;
}

Läs det så här: “När body har klassen dark, gäller dessa regler.” Utan klassen används inget av det här.

💡

Justera färgerna så de passar din webbplats – gå igenom din CSS och hitta på en mörk syskon till varje ljus färg. Regeln är densamma: mörk bakgrund → ljus text.

Jag visar: växeln i JavaScript

Lägg till en knapp i headern (inuti <nav>):

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

Och i 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 = "🌙";
  }
});

Tre nya saker:

Nu är det din tur 💪

  1. Lägg till en mörk kostym i din egen style.css – gå igenom alla dina färger (bakgrund, header, kort, footer, brickor) och ge dem mörka versioner under body.dark.
  2. Lägg till en växelknapp i headern på varje sida och koden i script.js.
  3. Testa: växla till mörkt, stäng webbläsaren, öppna webbplatsen igen – den ska öppnas direkt i mörkt läge.
Exempel på en mer komplett mörk kostym (justera färger efter ditt projekt)
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;
}

Kolla själv: Klick på 🌙 gör webbplatsen mörk (och ikonen byts till ☀️), klick på ☀️ gör den ljus igen. Efter att du stängt och öppnat webbläsaren igen minns webbplatsen ditt val. Det här är en funktion som många “vuxen”-webbplatser inte ens har!

Det här tar du med dig från lektionen