Lietuvių

Įdiekite tamsųjį režimą savo svetainėje naudodami šį išsamų vadovą. Sužinokite apie CSS medijos užklausas, „JavaScript“ perjungiklius, prieinamumo aspektus ir geriausią praktiką.

Tamsiojo režimo diegimas: išsamus vadovas su CSS ir „JavaScript“

Tamsusis režimas tampa vis populiaresnis, siūlydamas patogesnę žiūrėjimo patirtį, ypač esant prastam apšvietimui. Šis vadovas pateikia išsamią apžvalgą, kaip įdiegti tamsųjį režimą savo svetainėje naudojant CSS ir „JavaScript“, užtikrinant sklandžią ir prieinamą vartotojo patirtį pasaulinei auditorijai.

Kodėl verta diegti tamsųjį režimą?

Yra keletas svarių priežasčių, kodėl verta apsvarstyti tamsiojo režimo diegimą:

Tamsiojo režimo diegimo metodai

Yra keli tamsiojo režimo diegimo būdai, kurių kiekvienas turi savo privalumų ir trūkumų. Išnagrinėsime populiariausius metodus:

1. Tamsiojo režimo diegimas su CSS medijos užklausomis

CSS medijos užklausa prefers-color-scheme leidžia jums aptikti vartotojo pageidaujamą spalvų schemą ir atitinkamai pritaikyti skirtingus stilius. Tai yra paprasčiausias ir efektyviausias būdas įdiegti tamsųjį režimą vartotojams, kurie jau yra nustatę savo sistemos nuostatas.

Kodo pavyzdys

Pridėkite šį CSS kodą į savo stilių failą:

/* Numatytasis (šviesus) stilius */
body {
  background-color: #fff;
  color: #000;
}

/* Tamsusis stilius */
@media (prefers-color-scheme: dark) {
  body {
    background-color: #222;
    color: #fff;
  }
  /* Pritaikykite kitus elementus pagal poreikį */
  h1, h2, h3 {
    color: #ddd;
  }
  a {
    color: #8ab4f8;
  }
}

Paaiškinimas:

Privalumai

Trūkumai

2. Tamsiojo režimo diegimas su „JavaScript“ perjungikliu

Naudojant „JavaScript“ perjungiklį suteikiama vartotojams galimybė rankiniu būdu valdyti svetainės temą. Tai suteikia vartotojams daugiau kontrolės ir leidžia jiems nepaisyti savo sistemos nuostatų. Šis metodas yra itin svarbus, norint prisitaikyti prie vartotojų, naudojančių įvairius įrenginius ir platformas, kurios gali nenuosekliai palaikyti ar rodyti visos sistemos tamsiojo režimo nustatymus.

HTML struktūra

Pirmiausia, pridėkite perjungiklio elementą į savo HTML:

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

Tai sukuria paprastą perjungiklį, naudojant žymimąjį langelį ir šiek tiek pritaikyto CSS stiliaus.

CSS stiliai (nebūtina)

Perjungiklį galite stilizuoti naudodami CSS. Štai pavyzdys:

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

/* Apvalūs slankikliai */
.slider.round {
  border-radius: 34px;
}

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

„JavaScript“ kodas

Dabar pridėkite šį „JavaScript“ kodą, kad valdytumėte perjungiklio funkcionalumą:

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

// Funkcija tamsiajam režimui perjungti
function toggleDarkMode() {
  body.classList.toggle('dark-mode');

  // Išsaugoti vartotojo pasirinkimą „localStorage“
  if (body.classList.contains('dark-mode')) {
    localStorage.setItem('darkMode', 'enabled');
  } else {
    localStorage.setItem('darkMode', 'disabled');
  }
}

// Patikrinti „localStorage“, ar yra išsaugotas pasirinkimas
if (localStorage.getItem('darkMode') === 'enabled') {
  body.classList.add('dark-mode');
  darkModeToggle.checked = true;
}

// Pridėti įvykio klausytoją prie perjungiklio
darkModeToggle.addEventListener('change', toggleDarkMode);

Paaiškinimas:

Tamsiojo režimo CSS stiliai (naudojant klasę)

Atnaujinkite savo CSS, kad naudotumėte klasę dark-mode tamsiosios temos stiliams pritaikyti:

/* Numatytasis (šviesus) stilius */
body {
  background-color: #fff;
  color: #000;
}

/* Tamsusis stilius */
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;
}

Privalumai

Trūkumai

3. Medijos užklausų ir „JavaScript“ derinimas

Geriausias būdas dažnai yra derinti CSS medijos užklausas ir „JavaScript“ perjungiklį. Tai suteikia geriausius abiejų pasaulių aspektus: automatinį vartotojo pageidaujamos spalvų schemos aptikimą, kartu leidžiant vartotojams rankiniu būdu nepaisyti sistemos nuostatų. Tai pritaikyta platesnei auditorijai, įskaitant tuos, kurie gali nežinoti ar negalėti pakeisti savo visos sistemos temos nustatymų.

Kodo pavyzdys

Naudokite tą patį HTML ir CSS iš „JavaScript“ perjungiklio pavyzdžio. Pakeiskite „JavaScript“ kodą, kad patikrintumėte sistemos nuostatas:

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

// Funkcija tamsiajam režimui perjungti
function toggleDarkMode() {
  body.classList.toggle('dark-mode');

  // Išsaugoti vartotojo pasirinkimą „localStorage“
  if (body.classList.contains('dark-mode')) {
    localStorage.setItem('darkMode', 'enabled');
  } else {
    localStorage.setItem('darkMode', 'disabled');
  }
}

// Patikrinti „localStorage“ dėl išsaugoto pasirinkimo, tada sistemos nuostatas
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;
}

// Pridėti įvykio klausytoją prie perjungiklio
darkModeToggle.addEventListener('change', toggleDarkMode);

Paaiškinimas:

Privalumai

Trūkumai

Prieinamumo aspektai

Diegiant tamsųjį režimą, labai svarbu atsižvelgti į prieinamumą, kad jūsų svetainė liktų naudojama visiems vartotojams. Atminkite, kad paprastas spalvų inversavimas automatiškai neužtikrina prieinamumo. Štai keletas pagrindinių aspektų:

Tamsiojo režimo diegimo geriausios praktikos

Štai keletas geriausių praktikų, kurių reikėtų laikytis diegiant tamsųjį režimą savo svetainėje:

Pavyzdys: CSS kintamieji temų kūrimui

CSS kintamieji palengvina perjungimą tarp šviesios ir tamsios temos. Apibrėžkite kintamuosius pseudo-klasėje :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;
}

Dabar, kai klasė dark-mode pridedama prie „body“, CSS kintamieji atnaujinami, ir stiliai pritaikomi automatiškai.

Išvada

Tamsiojo režimo įdiegimas gali žymiai pagerinti jūsų svetainės vartotojo patirtį, prieinamumą ir netgi taupyti baterijos energiją. Laikydamiesi šiame vadove aprašytų metodų ir geriausių praktikų, galite sukurti sklandžią ir malonią tamsiojo režimo patirtį savo vartotojams visame pasaulyje.

Nepamirškite teikti pirmenybę prieinamumui ir kruopščiai išbandykite savo diegimą, kad užtikrintumėte, jog jūsų svetainė išliks naudojama visiems vartotojams, nepriklausomai nuo jų pageidavimų ar regėjimo galimybių.

Apgalvotai įdiegdami tamsųjį režimą, jūs ne tik sekate tendenciją, bet ir kuriate įtraukesnę bei patogesnę interneto patirtį pasaulinei auditorijai. Šis atsidavimas vartotojo patirčiai gali labai pagerinti jūsų svetainės bendrą našumą ir patrauklumą.

Tamsiojo režimo diegimas: išsamus vadovas su CSS ir „JavaScript“ | MLOG