Atraskite CSS medijos užklausų ir individualių savybių galią kuriant automatines šviesias ir tamsias temas, kurios prisitaiko prie vartotojo nustatymų, gerindamos prieinamumą ir vizualinį patrauklumą globaliai auditorijai.
CSS šviesios-tamsios temos funkcija: automatinis temos pritaikymas globaliam internetui
Šiandieniniame globaliai susijusiame pasaulyje interneto svetainės turi būti prieinamos ir vizualiai patrauklios įvairių sričių ir pomėgių vartotojams. Vienas efektyviausių būdų tai pasiekti yra automatinis temos pritaikymas, konkrečiai siūlant tiek šviesią, tiek tamsią temas, kurios prisitaiko prie vartotojo sistemos nustatymų. Šis tinklaraščio įrašas padės jums įdiegti šią funkciją naudojant CSS medijos užklausas ir individualias savybes, užtikrinant sklandų ir patogų naršymą jūsų tarptautinei auditorijai.
Kodėl verta įdiegti automatines šviesią ir tamsią temas?
Yra keletas svarbių priežasčių, kodėl verta įtraukti automatinį temos pritaikymą į savo interneto projektus:
- Pagerinta vartotojo patirtis: Vartotojai dažnai turi aiškų polinkį į šviesią arba tamsią temą. Gerbiant jų sistemos nustatymus, leidžiama jiems naršyti jūsų svetainėje jiems natūraliu ir patogiu būdu. Tai ypač svarbu vartotojams, kurie praleidžia daug laiko prie ekranų, nes tamsios temos gali sumažinti akių nuovargį esant silpnam apšvietimui.
- Geresnis prieinamumas: Šviesios ir tamsios temos gali žymiai pagerinti prieinamumą vartotojams su regėjimo sutrikimais. Didelio kontrasto režimai gali padaryti tekstą lengviau skaitomą, o tamsios temos gali sumažinti atspindžius ir pagerinti skaitomumą vartotojams, jautriems šviesai.
- Šiuolaikinis interneto dizainas: Šviesių ir tamsių temų įdiegimas rodo atsidavimą šiuolaikinio interneto dizaino principams ir orientaciją į vartotoją. Tai parodo, kad jums rūpi suteikti išbaigtą ir pritaikomą patirtį.
- Sumažintas akių nuovargis: Ypač svarbu vartotojams regionuose, kur ilgai dirbama prie kompiuterių (pvz., daugelyje Azijos šalių). Tamsi tema palengvins akių įtampą.
- Baterijos energijos taupymas: Įrenginiuose su OLED ekranais tamsios temos gali taupyti baterijos energiją, sumažindamos skleidžiamos šviesos kiekį. Tai aktualu vartotojams visame pasaulyje, ypač tiems, kurie naudoja mobiliuosius įrenginius su ribota baterijos talpa.
Kaip įdiegti automatinį temos pritaikymą naudojant CSS
Automatinio temos pritaikymo pagrindas yra prefers-color-scheme
medijos užklausa. Ši CSS medijos užklausa leidžia nustatyti vartotojo pageidaujamą spalvų schemą (šviesią ar tamsią) ir pritaikyti atitinkamus stilius.
1 žingsnis: Apibrėžkite individualias savybes (CSS kintamuosius)
Pradėkite nuo individualių savybių (CSS kintamųjų) apibrėžimo, kad išsaugotumėte savo šviesios ir tamsios temos spalvų reikšmes. Tai palengvina perjungimą tarp temų tiesiog atnaujinant kintamųjų reikšmes.
:root {
--background-color: #ffffff; /* Šviesios temos fonas */
--text-color: #000000; /* Šviesios temos tekstas */
--link-color: #007bff; /* Šviesios temos nuoroda */
--button-background-color: #f0f0f0;
--button-text-color: #000;
}
@media (prefers-color-scheme: dark) {
:root {
--background-color: #121212; /* Tamsios temos fonas */
--text-color: #ffffff; /* Tamsios temos tekstas */
--link-color: #66b3ff; /* Tamsios temos nuoroda */
--button-background-color: #333;
--button-text-color: #fff;
}
}
Šiame pavyzdyje mes apibrėžiame kintamuosius fono spalvai, teksto spalvai, nuorodos spalvai ir mygtukų spalvoms. :root
selektorius taiko šiuos kintamuosius visam dokumentui. Tada @media (prefers-color-scheme: dark)
medijos užklausa perrašo šiuos kintamuosius tamsios temos reikšmėmis, kai vartotojas yra nustatęs savo sistemą į tamsųjį režimą.
2 žingsnis: Pritaikykite individualias savybes savo stiliams
Toliau pritaikykite šias individualias savybes savo CSS stiliams, kad valdytumėte savo svetainės elementų išvaizdą.
body {
background-color: var(--background-color);
color: var(--text-color);
transition: background-color 0.3s, color 0.3s; /* Sklandus perėjimas */
}
a {
color: var(--link-color);
}
button {
background-color: var(--button-background-color);
color: var(--button-text-color);
border: none;
padding: 10px 20px;
cursor: pointer;
}
Čia mes naudojame var()
funkciją, kad pasiektume savo individualių savybių reikšmes. Taip pat pridėjome transition
savybę prie body
elemento, kad sukurtume sklandų perėjimą tarp temų.
3 žingsnis: Testavimas ir tobulinimas
Kruopščiai išbandykite savo įgyvendinimą įvairiose naršyklėse ir operacinėse sistemose. Šiuolaikinės naršyklės, tokios kaip „Chrome“, „Firefox“, „Safari“ ir „Edge“, visiškai palaiko prefers-color-scheme
medijos užklausą. Galite perjungti tarp šviesaus ir tamsaus režimo savo operacinės sistemos nustatymuose, kad pamatytumėte pakeitimus savo svetainėje.
Pažangesnės technikos ir aspektai
Rankinio temos perjungiklio suteikimas
Nors automatinis temos pritaikymas yra puikus pradžios taškas, kai kurie vartotojai gali norėti rankiniu būdu perrašyti savo sistemos nustatymus. Galite pateikti rankinį temos perjungiklį naudodami „JavaScript“ ir „local storage“.
HTML:
<button id="theme-toggle">Perjungti temą</button>
JavaScript:
const themeToggle = document.getElementById('theme-toggle');
const body = document.body;
let currentTheme = localStorage.getItem('theme') || 'auto'; // Pagal nutylėjimą - automatinis
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;
}
// Taikyti pradinę temą įkeliant puslapį
if (currentTheme === 'dark') {
setTheme('dark');
} else if (currentTheme === 'light') {
setTheme('light');
} else {
// Jei nustatyta automatiškai, leisti nuspręsti prefers-color-scheme
}
themeToggle.addEventListener('click', () => {
if (currentTheme === 'auto'){
setTheme('light');
} else if (currentTheme === 'light') {
setTheme('dark');
} else {
setTheme('auto');
}
});
CSS: Pridėkite šį CSS kartu su ankstesniu CSS. Atkreipkite dėmesį į rankinį perrašymą:
body.light-theme {
--background-color: #ffffff; /* Šviesios temos fonas */
--text-color: #000000; /* Šviesios temos tekstas */
--link-color: #007bff; /* Šviesios temos nuoroda */
--button-background-color: #f0f0f0;
--button-text-color: #000;
}
body.dark-theme {
--background-color: #121212; /* Tamsios temos fonas */
--text-color: #ffffff; /* Tamsios temos tekstas */
--link-color: #66b3ff; /* Tamsios temos nuoroda */
--button-background-color: #333;
--button-text-color: #fff;
}
Šis kodo fragmentas prideda mygtuką, leidžiantį vartotojams perjungti tarp šviesios, tamsios ir automatinės temos. Pasirinkta tema yra saugoma „local storage“, todėl ji išlieka po puslapio perkrovimų.
Paveikslėlių ir SVG tvarkymas
Kai kurie paveikslėliai ir SVG gali atrodyti nepatraukliai tiek šviesioje, tiek tamsioje temoje. Galite naudoti CSS medijos užklausas, kad sąlygiškai rodytumėte skirtingas šių išteklių versijas.
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;
}
}
Šis kodo fragmentas rodo vieną paveikslėlį (su klase light-mode
) šviesiame režime ir kitą paveikslėlį (su klase dark-mode
) tamsiame režime.
Spalvų paletės aspektai tarptautinei auditorijai
Renkantis spalvų paletes savo šviesiai ir tamsiai temoms, atsižvelkite į kultūrines asociacijas ir prieinamumo aspektus. Štai keletas bendrų gairių:
- Kontrastas: Užtikrinkite pakankamą kontrastą tarp teksto ir fono spalvų, kad atitiktumėte prieinamumo standartus (WCAG). Naudokite įrankius, tokius kaip WebAIM kontrasto tikrintuvas, kad patikrintumėte kontrasto santykius.
- Daltonizmas: Apsvarstykite savo spalvų pasirinkimo poveikį vartotojams, turintiems daltonizmą. Naudokite įrankius, tokius kaip Daltonizmo simuliatorius, kad peržiūrėtumėte savo svetainę, kaip ją mato žmonės su skirtingais daltonizmo tipais.
- Kultūrinės asociacijos: Žinokite, kad spalvos gali turėti skirtingas kultūrines asociacijas skirtingose pasaulio dalyse. Pavyzdžiui, balta spalva kai kuriose kultūrose dažnai asocijuojasi su tyrumu ir gedulu, o raudona – su sėkme ir klestėjimu kitose. Ištirkite kultūrines asociacijas, kad netyčia neįžeistumėte ar nesuklaidintumėte.
- Neutralios paletės: Jei abejojate, rinkitės neutralias spalvų paletes, kurios mažiau tikėtina, kad bus neteisingai interpretuotos ar įžeidžiančios. Pilki, smėlio ir prislopinti atspalviai gali būti saugus ir universalus pasirinkimas.
- Vartotojų testavimas: Atlikite vartotojų testavimą su įvairia dalyvių grupe, kad surinktumėte atsiliepimus apie savo spalvų pasirinkimus ir užtikrintumėte, kad jūsų tikslinė auditorija juos suvoktų teigiamai.
- Lokalizacija: Kur įmanoma, apsvarstykite galimybę naudoti lokalizuotas spalvų paletes, pritaikytas konkrečių regionų ar šalių kultūriniams pageidavimams. Tai gali apimti spalvų atspalvių, sodrumo ir ryškumo koregavimą, kad atitiktų vietinį skonį.
Našumo aspektai
Nors automatinio temos pritaikymo įgyvendinimas yra gana paprastas, svarbu atsižvelgti į galimą poveikį našumui. Venkite naudoti pernelyg sudėtingus CSS selektorius ar animacijas, kurios gali sulėtinti atvaizdavimą. Taip pat užtikrinkite, kad jūsų individualios savybės būtų apibrėžtos efektyviai, kad sumažintumėte kintamųjų paieškos pridėtines išlaidas.
Štai keletas geriausių praktikų našumui optimizuoti:
- Išlaikykite CSS selektorius paprastus: Venkite naudoti pernelyg specifinius ar įdėtuosius CSS selektorius, nes jie gali pailginti laiką, kurio naršyklei reikia stiliams priskirti prie elementų.
- Naudokite CSS individualias savybes apgalvotai: Nors individualios savybės yra galingos, per didelis jų naudojimas gali paveikti našumą. Naudokite jas strategiškai dažnai kintančioms reikšmėms arba reikšmėms, kurios yra bendros keliems elementams.
- Sumažinkite nereikalingas animacijas: Animacijos gali suteikti jūsų svetainei vizualinio patrauklumo, tačiau jos taip pat gali paveikti našumą, jei nėra įgyvendintos atsargiai. Naudokite CSS perėjimus ir animacijas saikingai ir optimizuokite juos sklandžiam atvaizdavimui.
- Testuokite realiuose įrenginiuose: Visada testuokite savo svetainę realiuose įrenginiuose su skirtingomis tinklo sąlygomis ir aparatinės įrangos galimybėmis, kad nustatytumėte galimus našumo trūkumus. Naudokite naršyklės kūrėjo įrankius, kad profiliuotumėte savo svetainės našumą ir nustatytumėte tobulinimo sritis.
Prieinamumo geriausios praktikos
Užtikrinkite, kad jūsų šviesios ir tamsios temos atitiktų prieinamumo gaires, tokias kaip WCAG (Interneto turinio prieinamumo gairės). Tai apima pakankamo spalvų kontrasto užtikrinimą, semantinio HTML naudojimą ir visų interaktyvių elementų prieinamumą klaviatūra.
Štai keletas konkrečių prieinamumo geriausių praktikų, kurių reikėtų laikytis:
- Pakankamas spalvų kontrastas: Užtikrinkite, kad kontrasto santykis tarp teksto ir fono spalvų atitiktų WCAG 2.1 AA standartus (4.5:1 normaliam tekstui, 3:1 dideliam tekstui). Naudokite įrankius, tokius kaip „WebAIM“ kontrasto tikrintuvas, kad patikrintumėte kontrasto santykius.
- Semantinis HTML: Naudokite semantinius HTML elementus (pvz.,
<header>
,<nav>
,<article>
,<aside>
,<footer>
), kad logiškai struktūruotumėte savo turinį. Tai padeda ekrano skaitytuvams ir kitoms pagalbinėms technologijoms suprasti turinį ir efektyviai naršyti puslapyje. - Prieinamumas klaviatūra: Užtikrinkite, kad visi interaktyvūs elementai (pvz., nuorodos, mygtukai, formos laukai) būtų prieinami klaviatūra. Naudokite
tabindex
atributą, kad valdytumėte fokusavimo eilę ir pateiktumėte vizualines užuominas, nurodančias, kuris elementas yra fokusuotas. - ARIA atributai: Naudokite ARIA (Prieinamos turtingos interneto programos) atributus, kad suteiktumėte papildomos informacijos apie jūsų interneto programos struktūrą ir funkcionalumą pagalbinėms technologijoms. Pavyzdžiui, naudokite
aria-label
, kad pateiktumėte aprašomąją etiketę elementui, arbaaria-hidden
, kad paslėptumėte elementą nuo ekrano skaitytuvų. - Testavimas su pagalbinėmis technologijomis: Išbandykite savo svetainę su ekrano skaitytuvais ir kitomis pagalbinėmis technologijomis, kad nustatytumėte galimas prieinamumo problemas. Naudokite įrankius, tokius kaip NVDA („NonVisual Desktop Access“) ar „VoiceOver“, kad patirtumėte savo svetainę kaip vartotojas su regėjimo sutrikimais.
- Pateikite alternatyvų tekstą paveikslėliams: Naudokite
alt
atributą, kad pateiktumėte aprašomąjį alternatyvų tekstą visiems paveikslėliams. Šis tekstas bus rodomas, jei paveikslėlis nebus įkeltas, ir jį taip pat skaitys ekrano skaitytuvai.
Pavyzdžiai skirtinguose regionuose
Apsvarstykite šiuos pavyzdžius, kaip šviesios ir tamsios temos gali būti pritaikytos įvairioms pasaulio auditorijoms:
- Rytų Azija: Daugelyje Rytų Azijos kultūrų balta spalva asocijuojasi su gedulu. Kuriant tamsią temą šiems regionams, venkite naudoti per daug balto teksto juodame fone. Verčiau rinkitės balkšvą arba šviesiai pilką tekstą.
- Artimieji Rytai: Kai kuriose Artimųjų Rytų kultūrose dažnai teikiama pirmenybė ryškioms spalvoms. Kuriant šviesią temą, apsvarstykite galimybę naudoti ryškias akcentines spalvas, kad pridėtumėte vizualinio susidomėjimo. Tačiau užtikrinkite, kad spalvų pasirinkimai neprieštarautų kultūriniam jautrumui.
- Europa: Europoje dažnai mėgstami minimalistiniai dizainai. Kuriant tiek šviesią, tiek tamsią temą, rinkitės švarius išdėstymus, paprastą tipografiją ir subtilias spalvų paletes.
- Lotynų Amerika: Lotynų Amerikoje dažnai vertinami drąsūs ir išraiškingi dizainai. Kuriant tiek šviesią, tiek tamsią temą, apsvarstykite galimybę naudoti žaismingą tipografiją, ryškias spalvas ir dinamiškas animacijas.
- Afrika: Dėl skirtingo interneto greičio ir įrenginių galimybių, teikite pirmenybę našumui ir prieinamumui. Naudokite paprastesnius dizaino elementus ir testuokite esant lėtesniam ryšiui.
Išvada
Automatinių šviesių ir tamsių temų įdiegimas yra esminis žingsnis siekiant sukurti prieinamesnę ir patogesnę interneto patirtį pasaulinei auditorijai. Naudodami CSS medijos užklausas ir individualias savybes, galite lengvai pritaikyti savo svetainės išvaizdą prie vartotojo pageidavimų, sumažinti akių nuovargį ir pagerinti prieinamumą vartotojams su regėjimo sutrikimais. Nepamirškite atsižvelgti į kultūrines asociacijas, prieinamumo gaires ir našumo aspektus, kad užtikrintumėte sklandų ir įtraukų naršymo patirtį visiems.
Taikydami šias technikas, jūs parodote atsidavimą šiuolaikinio interneto dizaino principams ir tenkinate įvairius savo tarptautinės auditorijos poreikius, paversdami savo svetainę svetinga ir patogia erdve visiems.