Slovenščina

Odkrijte, kako z medijskimi poizvedbami CSS ustvariti samodejne svetle in temne teme, ki izboljšajo dostopnost in vizualno privlačnost za globalno občinstvo.

Funkcija CSS Light-Dark: Samodejno prilagajanje tem za globalni splet

V današnjem globalno povezanem svetu morajo biti spletna mesta dostopna in vizualno privlačna za uporabnike z različnimi ozadji in preferencami. Eden najučinkovitejših načinov za dosego tega je s samodejnim prilagajanjem teme, zlasti s ponudbo svetlih in temnih tem, ki se prilagajajo uporabnikovim sistemskim nastavitvam. Ta objava vas bo vodila skozi implementacijo te funkcionalnosti z uporabo medijskih poizvedb CSS in lastnosti po meri, kar bo zagotovilo brezhibno in udobno izkušnjo brskanja za vaše mednarodno občinstvo.

Zakaj implementirati samodejne svetle in temne teme?

Obstaja več tehtnih razlogov za vključitev samodejnega prilagajanja teme v vaše spletne projekte:

Kako implementirati samodejno prilagajanje teme s CSS

Jedro samodejnega prilagajanja teme leži v medijski poizvedbi prefers-color-scheme. Ta medijska poizvedba CSS vam omogoča, da zaznate uporabnikovo želeno barvno shemo (svetlo ali temno) in uporabite ustrezne sloge.

1. korak: Določite lastnosti po meri (CSS spremenljivke)

Začnite z določanjem lastnosti po meri (CSS spremenljivk) za shranjevanje barvnih vrednosti za vaše svetle in temne teme. To olajša preklapljanje med temami s preprostim posodabljanjem vrednosti spremenljivk.


:root {
  --background-color: #ffffff; /* Ozadje svetle teme */
  --text-color: #000000; /* Besedilo svetle teme */
  --link-color: #007bff; /* Povezava svetle teme */
  --button-background-color: #f0f0f0;
  --button-text-color: #000;
}

@media (prefers-color-scheme: dark) {
  :root {
    --background-color: #121212; /* Ozadje temne teme */
    --text-color: #ffffff; /* Besedilo temne teme */
    --link-color: #66b3ff; /* Povezava temne teme */
    --button-background-color: #333;
    --button-text-color: #fff;
  }
}

V tem primeru določimo spremenljivke za barvo ozadja, barvo besedila, barvo povezave in barve gumbov. Izbirnik :root uporabi te spremenljivke za celoten dokument. Medijska poizvedba @media (prefers-color-scheme: dark) nato prepiše te spremenljivke z vrednostmi za temno temo, ko ima uporabnik v sistemu nastavljen temni način.

2. korak: Uporabite lastnosti po meri v svojih slogih

Nato uporabite te lastnosti po meri v svojih slogih CSS za nadzor videza elementov vašega spletnega mesta.


body {
  background-color: var(--background-color);
  color: var(--text-color);
  transition: background-color 0.3s, color 0.3s; /* Gladek prehod */
}

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

button {
  background-color: var(--button-background-color);
  color: var(--button-text-color);
  border: none;
  padding: 10px 20px;
  cursor: pointer;
}

Tukaj uporabljamo funkcijo var() za dostop do vrednosti naših lastnosti po meri. Dodali smo tudi lastnost transition elementu body, da ustvarimo gladek prehod med temami.

3. korak: Testiranje in izboljšave

Temeljito testirajte svojo implementacijo v različnih brskalnikih in operacijskih sistemih. Sodobni brskalniki, kot so Chrome, Firefox, Safari in Edge, v celoti podpirajo medijsko poizvedbo prefers-color-scheme. Med svetlim in temnim načinom lahko preklapljate v nastavitvah operacijskega sistema, da vidite spremembe na vašem spletnem mestu.

Napredne tehnike in premisleki

Zagotavljanje ročnega preklopa teme

Čeprav je samodejno prilagajanje teme odlična izhodiščna točka, nekateri uporabniki morda raje ročno preglasijo svoje sistemske nastavitve. Ročni preklop teme lahko zagotovite z uporabo JavaScripta in lokalnega pomnilnika.

HTML:



JavaScript:


const themeToggle = document.getElementById('theme-toggle');
const body = document.body;

let currentTheme = localStorage.getItem('theme') || 'auto'; // Privzeto na samodejno

function setTheme(theme) {
  if (theme === 'dark') {
    body.classList.add('dark-theme');
    body.classList.remove('light-theme');
  } else if (theme === 'light') {
    body.classList.add('light-theme');
    body.classList.remove('dark-theme');
  } else {
    body.classList.remove('light-theme', 'dark-theme');
  }
  localStorage.setItem('theme', theme);
  currentTheme = theme;
}

// Uporabi začetno temo ob nalaganju strani
if (currentTheme === 'dark') {
  setTheme('dark');
} else if (currentTheme === 'light') {
  setTheme('light');
} else {
  //Če je nastavljeno na samodejno, naj odloči prefers-color-scheme
}


themeToggle.addEventListener('click', () => {
    if (currentTheme === 'auto'){
        setTheme('light');
    } else if (currentTheme === 'light') {
        setTheme('dark');
    } else {
        setTheme('auto');
    }
});

CSS: Dodajte naslednji CSS skupaj s prejšnjim CSS-om. Bodite pozorni na ročno preglasitev:


body.light-theme {
  --background-color: #ffffff; /* Ozadje svetle teme */
  --text-color: #000000; /* Besedilo svetle teme */
  --link-color: #007bff; /* Povezava svetle teme */
  --button-background-color: #f0f0f0;
  --button-text-color: #000;
}

body.dark-theme {
  --background-color: #121212; /* Ozadje temne teme */
  --text-color: #ffffff; /* Besedilo temne teme */
  --link-color: #66b3ff; /* Povezava temne teme */
  --button-background-color: #333;
  --button-text-color: #fff;
}

Ta odsek kode doda gumb, ki uporabnikom omogoča preklapljanje med svetlo, temno in samodejno temo. Izbrana tema se shrani v lokalni pomnilnik, tako da ostane ohranjena med nalaganji strani.

Obravnava slik in SVG-jev

Nekatere slike in SVG-ji morda ne bodo videti dobro tako v svetlih kot v temnih temah. Z medijskimi poizvedbami CSS lahko pogojno prikažete različne različice teh sredstev.


img.light-mode {
  display: block;
}

img.dark-mode {
  display: none;
}

@media (prefers-color-scheme: dark) {
  img.light-mode {
    display: none;
  }

  img.dark-mode {
    display: block;
  }
}

Ta odsek kode prikazuje eno sliko (z razredom light-mode) v svetlem načinu in drugo sliko (z razredom dark-mode) v temnem načinu.

Premisleki o barvni paleti za mednarodno občinstvo

Pri izbiri barvnih palet za svetle in temne teme bodite pozorni na kulturne asociacije in vidike dostopnosti. Tukaj je nekaj splošnih smernic:

Premisleki o zmogljivosti

Čeprav je implementacija samodejnega prilagajanja teme relativno preprosta, je pomembno upoštevati morebiten vpliv na zmogljivost. Izogibajte se uporabi preveč zapletenih izbirnikov CSS ali animacij, ki lahko upočasnijo upodabljanje. Prav tako zagotovite, da so vaše lastnosti po meri definirane učinkovito, da zmanjšate obremenitev pri iskanju spremenljivk.

Tukaj je nekaj najboljših praks za optimizacijo zmogljivosti:

Najboljše prakse za dostopnost

Zagotovite, da vaše svetle in temne teme ustrezajo smernicam za dostopnost, kot so WCAG (Web Content Accessibility Guidelines). To vključuje zagotavljanje zadostnega barvnega kontrasta, uporabo semantičnega HTML-a in zagotavljanje, da so vsi interaktivni elementi dostopni s tipkovnico.

Tukaj je nekaj specifičnih najboljših praks za dostopnost, ki jih je treba upoštevati:

Primeri v različnih regijah

Upoštevajte te primere, kako lahko svetle in temne teme prilagodimo različnim globalnim občinstvom:

Zaključek

Implementacija samodejnih svetlih in temnih tem je ključen korak k ustvarjanju bolj dostopne in uporabniku prijazne spletne izkušnje za globalno občinstvo. Z uporabo medijskih poizvedb CSS in lastnosti po meri lahko enostavno prilagodite videz svojega spletnega mesta uporabniškim preferencam, zmanjšate obremenitev oči in izboljšate dostopnost za uporabnike z okvarami vida. Ne pozabite upoštevati kulturnih asociacij, smernic za dostopnost in premislekov o zmogljivosti, da zagotovite brezhibno in vključujočo izkušnjo brskanja za vse.

S sprejetjem teh tehnik kažete zavezanost sodobnim načelom spletnega oblikovanja in skrbite za raznolike potrebe vaše mednarodne publike, s čimer vaše spletno mesto postane gostoljuben in udoben prostor za vse.