Suomi

Toteuta tumma tila verkkosivustollesi tämän kattavan oppaan avulla. Opi CSS-mediakyselyistä, JavaScript-vaihtimista, saavutettavuusnäkökohdista ja parhaista käytännöistä saumattoman käyttökokemuksen luomiseksi.

Tumman tilan toteutus: Kattava opas CSS:n ja JavaScriptin avulla

Tumma tila on kasvattanut suosiotaan jatkuvasti, sillä se tarjoaa mukavamman katselukokemuksen erityisesti hämärässä. Tämä opas tarjoaa kattavan yleiskatsauksen siitä, kuinka voit toteuttaa tumman tilan verkkosivustollesi käyttämällä CSS:ää ja JavaScriptiä, varmistaen saumattoman ja saavutettavan käyttökokemuksen maailmanlaajuiselle yleisölle.

Miksi toteuttaa tumma tila?

On useita painavia syitä harkita tumman tilan toteuttamista:

Tumman tilan toteutustavat

Tumman tilan toteuttamiseen on useita lähestymistapoja, joilla kaikilla on omat etunsa ja haittansa. Tutustumme yleisimpiin menetelmiin:

1. Tumman tilan toteuttaminen CSS-mediakyselyillä

CSS-mediakysely prefers-color-scheme antaa sinun tunnistaa käyttäjän ensisijaisen värimaailman ja soveltaa erilaisia tyylejä sen mukaisesti. Tämä on yksinkertaisin ja tehokkain tapa toteuttaa tumma tila käyttäjille, jotka ovat jo asettaneet järjestelmäasetuksensa.

Koodiesimerkki

Lisää seuraava CSS tyylitiedostoosi:

/* Oletusteema (vaalea) */
body {
  background-color: #fff;
  color: #000;
}

/* Tumma teema */
@media (prefers-color-scheme: dark) {
  body {
    background-color: #222;
    color: #fff;
  }
  /* Säädä muita elementtejä tarpeen mukaan */
  h1, h2, h3 {
    color: #ddd;
  }
  a {
    color: #8ab4f8;
  }
}

Selitys:

Edut

Haitat

2. Tumman tilan toteuttaminen JavaScript-vaihtimella

JavaScript-vaihtimen käyttö antaa käyttäjille manuaalisen kytkimen verkkosivuston teeman hallintaan. Tämä antaa käyttäjille enemmän hallintaa ja antaa heidän ohittaa järjestelmäasetuksensa. Tämä lähestymistapa on kriittinen palvellessa käyttäjiä eri laitteilla ja alustoilla, jotka eivät välttämättä tue tai paljasta johdonmukaisesti koko järjestelmän laajuisia tumman tilan asetuksia.

HTML-rakenne

Lisää ensin vaihdinelementti HTML-koodiisi:

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

Tämä luo yksinkertaisen vaihtokytkimen käyttämällä valintaruutua ja mukautettua CSS-tyyliä.

CSS-tyylit (valinnainen)

Voit muotoilla vaihtokytkimen CSS:llä. Tässä on esimerkki:

.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);
}

/* Pyöristetyt liukusäätimet */
.slider.round {
  border-radius: 34px;
}

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

JavaScript-koodi

Lisää nyt seuraava JavaScript-koodi käsittelemään vaihtimen toiminnallisuutta:

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

// Funktio tumman tilan vaihtamiseksi
function toggleDarkMode() {
  body.classList.toggle('dark-mode');

  // Tallenna käyttäjän valinta localStorageen
  if (body.classList.contains('dark-mode')) {
    localStorage.setItem('darkMode', 'enabled');
  } else {
    localStorage.setItem('darkMode', 'disabled');
  }
}

// Tarkista tallennettu valinta localStoragesta
if (localStorage.getItem('darkMode') === 'enabled') {
  body.classList.add('dark-mode');
  darkModeToggle.checked = true;
}

// Lisää tapahtumankuuntelija vaihtimeen
darkModeToggle.addEventListener('change', toggleDarkMode);

Selitys:

Tumman tilan CSS-tyylit (luokkaa käyttäen)

Päivitä CSS-koodisi käyttämään dark-mode-luokkaa tumman teeman tyylien soveltamiseksi:

/* Oletusteema (vaalea) */
body {
  background-color: #fff;
  color: #000;
}

/* Tumma teema */
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;
}

Edut

Haitat

3. Mediakyselyiden ja JavaScriptin yhdistäminen

Paras lähestymistapa on usein yhdistää CSS-mediakyselyt ja JavaScript-vaihdin. Tämä tarjoaa molempien maailmojen parhaat puolet: automaattisen tunnistuksen käyttäjän ensisijaisesta värimaailmasta, samalla kun käyttäjät voivat manuaalisesti ohittaa järjestelmän asetuksen. Tämä palvelee laajempaa yleisöä, mukaan lukien ne, jotka eivät ehkä ole tietoisia järjestelmänlaajuisista teema-asetuksistaan tai eivät voi muuttaa niitä.

Koodiesimerkki

Käytä samaa HTML- ja CSS-koodia kuin JavaScript-vaihdin-esimerkissä. Muokkaa JavaScriptiä tarkistamaan järjestelmän asetus:

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

// Funktio tumman tilan vaihtamiseksi
function toggleDarkMode() {
  body.classList.toggle('dark-mode');

  // Tallenna käyttäjän valinta localStorageen
  if (body.classList.contains('dark-mode')) {
    localStorage.setItem('darkMode', 'enabled');
  } else {
    localStorage.setItem('darkMode', 'disabled');
  }
}

// Tarkista ensin tallennettu valinta localStoragesta, sitten järjestelmäasetus
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;
}

// Lisää tapahtumankuuntelija vaihtimeen
darkModeToggle.addEventListener('change', toggleDarkMode);

Selitys:

Edut

Haitat

Saavutettavuusnäkökohdat

Tummaa tilaa toteuttaessa on tärkeää ottaa huomioon saavutettavuus, jotta verkkosivustosi pysyy kaikkien käyttäjien käytettävissä. Muista, että pelkkä värien kääntäminen ei automaattisesti takaa saavutettavuutta. Tässä on joitakin keskeisiä näkökohtia:

Parhaat käytännöt tumman tilan toteutukseen

Tässä on joitakin parhaita käytäntöjä, joita noudattaa, kun toteutat tummaa tilaa verkkosivustollesi:

Esimerkki: CSS-muuttujat teemoitukseen

CSS-muuttujat tekevät vaalean ja tumman teeman välillä vaihtamisesta helppoa. Määrittele muuttujat :root-pseudoluokassa:

: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;
}

Nyt, kun dark-mode-luokka lisätään bodyyn, CSS-muuttujat päivittyvät ja tyylit sovelletaan automaattisesti.

Yhteenveto

Tumman tilan toteuttaminen voi merkittävästi parantaa verkkosivustosi käyttökokemusta, lisätä saavutettavuutta ja jopa säästää akkua. Noudattamalla tässä oppaassa esitettyjä tekniikoita ja parhaita käytäntöjä voit luoda saumattoman ja nautinnollisen tumman tilan kokemuksen käyttäjillesi maailmanlaajuisesti.

Muista priorisoida saavutettavuus ja testata toteutuksesi perusteellisesti varmistaaksesi, että verkkosivustosi pysyy kaikkien käyttäjien käytettävissä heidän mieltymyksistään tai näkökyvystään riippumatta.

Toteuttamalla tumman tilan harkitusti et ainoastaan seuraa trendiä, vaan luot myös osallistavamman ja käyttäjäystävällisemmän verkkokokemuksen maailmanlaajuiselle yleisölle. Tämä omistautuminen käyttökokemukselle voi merkittävästi hyödyttää verkkosivustosi yleistä suorituskykyä ja houkuttelevuutta.