Slovenščina

Implementirajte temni način na svoji spletni strani s tem celovitim vodnikom. Spoznajte medijske poizvedbe CSS, preklopnike v JavaScriptu, vidike dostopnosti in najboljše prakse za brezhibno uporabniško izkušnjo.

Implementacija temnega načina: celovit vodnik s CSS in JavaScriptom

Temni način je postal vse bolj priljubljen, saj ponuja udobnejšo izkušnjo gledanja, zlasti v okoljih s šibko svetlobo. Ta vodnik ponuja celovit pregled, kako implementirati temni način na vaši spletni strani z uporabo CSS in JavaScripta, ter zagotoviti brezhibno in dostopno uporabniško izkušnjo za globalno občinstvo.

Zakaj implementirati temni način?

Obstaja več prepričljivih razlogov za razmislek o implementaciji temnega načina:

Metode za implementacijo temnega načina

Obstaja več pristopov k implementaciji temnega načina, vsak s svojimi prednostmi in slabostmi. Raziskali bomo najpogostejše metode:

1. Implementacija temnega načina z medijskimi poizvedbami CSS

Medijska poizvedba CSS prefers-color-scheme omogoča zaznavanje uporabnikove želene barvne sheme in ustrezno uporabo različnih stilov. To je najpreprostejši in najučinkovitejši način za implementacijo temnega načina za uporabnike, ki so že nastavili svoje sistemske preference.

Primer kode

V svojo slogovno datoteko dodajte naslednji CSS:

/* Privzeta (svetla) tema */
body {
  background-color: #fff;
  color: #000;
}

/* Temna tema */
@media (prefers-color-scheme: dark) {
  body {
    background-color: #222;
    color: #fff;
  }
  /* Po potrebi prilagodite druge elemente */
  h1, h2, h3 {
    color: #ddd;
  }
  a {
    color: #8ab4f8;
  }
}

Pojasnilo:

Prednosti

Slabosti

2. Implementacija temnega načina s preklopnikom v JavaScriptu

Uporaba preklopnika v JavaScriptu uporabnikom omogoča ročno stikalo za nadzor teme spletne strani. To daje uporabnikom več nadzora in jim omogoča, da preglasijo svoje sistemske nastavitve. Ta pristop je ključnega pomena za uporabnike na različnih napravah in platformah, ki morda ne podpirajo ali ne izpostavljajo dosledno sistemskih nastavitev temnega načina.

Struktura HTML

Najprej v svoj HTML dodajte element za preklop:

<label class="switch">
  <input type="checkbox" id="darkModeToggle">
  <span class="slider round"></span>
</label>

To ustvari preprosto preklopno stikalo z uporabo potrditvenega polja in nekaj prilagojenega sloga CSS.

Oblikovanje s CSS (izbirno)

Preklopno stikalo lahko oblikujete z uporabo CSS. Tukaj je primer:

.switch {
  position: relative;
  display: inline-block;
  width: 60px;
  height: 34px;
}

.switch input {
  opacity: 0;
  width: 0;
  height: 0;
}

.slider {
  position: absolute;
  cursor: pointer;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: #ccc;
  -webkit-transition: .4s;
  transition: .4s;
}

.slider:before {
  position: absolute;
  content: "";
  height: 26px;
  width: 26px;
  left: 4px;
  bottom: 4px;
  background-color: white;
  -webkit-transition: .4s;
  transition: .4s;
}

input:checked + .slider {
  background-color: #2196F3;
}

input:focus + .slider {
  box-shadow: 0 0 1px #2196F3;
}

input:checked + .slider:before {
  -webkit-transform: translateX(26px);
  -ms-transform: translateX(26px);
  transform: translateX(26px);
}

/* Zaobljeni drsniki */
.slider.round {
  border-radius: 34px;
}

.slider.round:before {
  border-radius: 50%;
}

Koda JavaScript

Sedaj dodajte naslednjo kodo JavaScript za upravljanje funkcionalnosti preklopa:

const darkModeToggle = document.getElementById('darkModeToggle');
const body = document.body;

// Funkcija za preklop temnega načina
function toggleDarkMode() {
  body.classList.toggle('dark-mode');

  // Shrani uporabnikovo izbiro v localStorage
  if (body.classList.contains('dark-mode')) {
    localStorage.setItem('darkMode', 'enabled');
  } else {
    localStorage.setItem('darkMode', 'disabled');
  }
}

// Preveri localStorage za shranjeno izbiro
if (localStorage.getItem('darkMode') === 'enabled') {
  body.classList.add('dark-mode');
  darkModeToggle.checked = true;
}

// Dodaj poslušalca dogodkov na preklopnik
darkModeToggle.addEventListener('change', toggleDarkMode);

Pojasnilo:

Oblikovanje s CSS za temni način (z uporabo razreda)

Posodobite svoj CSS tako, da boste za uporabo stilov temne teme uporabljali razred dark-mode:

/* Privzeta (svetla) tema */
body {
  background-color: #fff;
  color: #000;
}

/* Temna tema */
body.dark-mode {
  background-color: #222;
  color: #fff;
}

body.dark-mode h1, body.dark-mode h2, body.dark-mode h3 {
  color: #ddd;
}

body.dark-mode a {
  color: #8ab4f8;
}

Prednosti

Slabosti

3. Kombiniranje medijskih poizvedb in JavaScripta

Najboljši pristop je pogosto kombinacija medijskih poizvedb CSS in preklopnika v JavaScriptu. To zagotavlja najboljše iz obeh svetov: samodejno zaznavanje uporabnikove želene barvne sheme, hkrati pa uporabnikom omogoča ročno preglasitev sistemskih nastavitev. To ustreza širšemu občinstvu, vključno s tistimi, ki se morda ne zavedajo ali ne morejo spremeniti svojih sistemskih nastavitev teme.

Primer kode

Uporabite isti HTML in CSS iz primera s preklopnikom v JavaScriptu. Spremenite JavaScript tako, da preverja sistemske nastavitve:

const darkModeToggle = document.getElementById('darkModeToggle');
const body = document.body;

// Funkcija za preklop temnega načina
function toggleDarkMode() {
  body.classList.toggle('dark-mode');

  // Shrani uporabnikovo izbiro v localStorage
  if (body.classList.contains('dark-mode')) {
    localStorage.setItem('darkMode', 'enabled');
  } else {
    localStorage.setItem('darkMode', 'disabled');
  }
}

// Preveri localStorage za shranjeno izbiro, nato sistemsko nastavitev
if (localStorage.getItem('darkMode') === 'enabled') {
  body.classList.add('dark-mode');
  darkModeToggle.checked = true;
} else if (window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches) {
  body.classList.add('dark-mode');
  darkModeToggle.checked = true;
}

// Dodaj poslušalca dogodkov na preklopnik
darkModeToggle.addEventListener('change', toggleDarkMode);

Pojasnilo:

Prednosti

Slabosti

Vidiki dostopnosti

Pri implementaciji temnega načina je ključno upoštevati dostopnost, da zagotovite, da vaša spletna stran ostane uporabna za vse uporabnike. Ne pozabite, da zgolj invertiranje barv ne zagotavlja samodejno dostopnosti. Tukaj je nekaj ključnih premislekov:

Najboljše prakse za implementacijo temnega načina

Tukaj je nekaj najboljših praks, ki jih je treba upoštevati pri implementaciji temnega načina na vaši spletni strani:

Primer: Spremenljivke CSS za teme

Spremenljivke CSS olajšajo preklapljanje med svetlo in temno temo. Definirajte spremenljivke v psevdo-razredu :root:

:root {
  --bg-color: #fff;
  --text-color: #000;
  --link-color: #007bff;
}

body {
  background-color: var(--bg-color);
  color: var(--text-color);
}

a {
  color: var(--link-color);
}

body.dark-mode {
  --bg-color: #222;
  --text-color: #fff;
  --link-color: #8ab4f8;
}

Sedaj, ko se telesu doda razred dark-mode, se spremenljivke CSS posodobijo in stili se samodejno uporabijo.

Zaključek

Implementacija temnega načina lahko znatno izboljša uporabniško izkušnjo vaše spletne strani, poveča dostopnost in celo prihrani življenjsko dobo baterije. Z upoštevanjem tehnik in najboljših praks, opisanih v tem vodniku, lahko ustvarite brezhibno in prijetno izkušnjo temnega načina za svoje uporabnike po vsem svetu.

Ne pozabite dati prednosti dostopnosti in temeljito testirati svoje implementacije, da zagotovite, da vaša spletna stran ostane uporabna za vse uporabnike, ne glede na njihove preference ali vizualne sposobnosti.

S premišljeno implementacijo temnega načina ne sledite le trendu, temveč ustvarjate tudi bolj vključujočo in uporabniku prijazno spletno izkušnjo za globalno občinstvo. Ta predanost uporabniški izkušnji lahko močno koristi splošni uspešnosti in privlačnosti vaše spletne strani.

Implementacija temnega načina: celovit vodnik s CSS in JavaScriptom | MLOG