Tummasta tilasta on tullut suosittu mieltymys, joten sinun kannattaa yrittää tukea sitä sivustoillasi ja verkkosovelluksissasi.

Viime vuosina tumma tila on saavuttanut merkittävän suosion käyttöliittymävaihtoehtona. Se tarjoaa tummemman taustan, jota täydentää vaaleampi teksti, mikä paitsi vähentää silmien rasitusta, myös säästää akun käyttöikää, erityisesti OLED-näytöissä.

Tutustu kuinka voit lisätä pimeän tilan vaihtoehdon verkkosivustoihisi ja verkkosovelluksiisi käyttämällä CSS: n ja JavaScriptin yhdistelmää.

Tumman tilan ymmärtäminen

Tumma tila on vaihtoehtoinen värimaailma verkkosivustollesi, joka vaihtaa perinteisen vaalean taustan tummaan. Se helpottaa sivujasi silmille, etenkin hämärässä. Tummasta tilasta on tullut vakioominaisuus monilla verkkosivustoilla ja sovelluksissa sen käyttäjäystävällisyyden vuoksi.

Projektin määrittäminen

Ennen kuin otat tämän käyttöön, varmista, että sinulla on projekti perustettu ja valmis työskentelemään. Sinun tulee järjestää HTML-, CSS- ja JavaScript-tiedostot jäsennellysti.

instagram viewer

HTML-koodi

Aloita seuraavalla sivusi sisällön merkinnällä. Vierailija voi käyttää teema__vaihtaja elementti vaihtaaksesi tumman ja vaalean tilan välillä.

<body>
<navclass="navbar">
<spanclass="logo">Company Logospan>

<ulclass="nav__lists">
<li>Aboutli>
<li>Blogli>
<li>Contactli>
ul>

<divid="theme__switcher">
<imgid="theme__image"src="./toggle.svg"alt="" />
div>
nav>

<main>
Lorem ipsum dolor sit amet consectetur adipisicing elit.
Odit deserunt sit neque in labore quis quisquam expedita minus
perferendis.
main>

<scriptsrc="./script.js">script>
body>

CSS-koodi

Lisää seuraava CSS muotoilemaan esimerkkiä. Tämä toimii oletusvalotilana, jota täydennät myöhemmin uusilla tyyleillä pimeän tilan näkymää varten.

@import url("https://fonts.googleapis.com/css2?family=Quicksand: wght@400;700&display=swap");

* {
margin: 0;
padding: 0;
box-sizing: border-box;
}

html { font-size: 62.5%; }

body { font-family: "Quicksand", sans-serif; }

.navbar {
display: flex;
padding: 2rem;
font-size: 1.6rem;
align-items: center;
color: rgb(176, 58, 46);
background-color: #fdedec;
}

.navbarspan { margin-right: auto; }

.logo { font-weight: 700; }

.nav__lists {
display: flex;
list-style: none;
column-gap: 2rem;
margin: 0 2rem;
}

#theme__switcher { cursor: pointer; }

main {
width: 300px;
margin: 5remauto;
font-size: 2rem;
line-height: 2;
padding: 1rem 2rem;
border-radius: 10px;
box-shadow: 2px 3.5px 5pxrgba(242, 215, 213, 0.4);
}

Tällä hetkellä käyttöliittymäsi pitäisi näyttää tältä:

Tumman tilan käyttöönotto CSS: n ja JavaScriptin avulla

Tumman tilan toteuttamiseksi määrität sen ulkoasun CSS: n avulla. Käytät sitten JavaScriptiä vaihtamiseen tumman ja vaalean tilan välillä.

Teemakurssien luominen

Käytä yhtä luokkaa kullekin teemalle, jotta voit helposti vaihtaa kahden tilan välillä. Täydellisen projektin saamiseksi sinun tulee harkita, miten tumma tila voi vaikuttaa suunnittelusi kaikkiin puoliin.

.dark {
background: #1f1f1f;
color: #fff;
}

.light {
background: #fff;
color: #333;
}

Interaktiivisten elementtien valitseminen

Lisää seuraava JavaScript omaan script.js tiedosto. Ensimmäinen koodibitti valitsee vain elementit, joita käytät vaihdon käsittelemiseen.

// Get a reference to the theme switcher element and the document body

const themeToggle = document.getElementById("theme__switcher");
const bodyEl = document.body;

Toggle-toiminnon lisääminen

Käytä seuraavaksi seuraavaa JavaScriptiä vaihtaaksesi valotilan välillä (valoa) ja tumma tila (tumma) luokat. Huomaa, että on myös hyvä idea muuttaa vaihtokytkintä osoittamaan nykyinen tila. Tämä koodi tekee niin kanssa CSS-suodatin.

// Function to set the theme

functionsetTheme(theme) {
// If the theme is "dark," add the "dark" class, remove "light" class,
// and adjust filter style
bodyEl.classList.toggle("dark", theme "dark");

// If the theme is "light," add the "light" class, remove "dark" class,
bodyEl.classList.toggle("light", theme !== "dark");

// adjust filter of the toggle switch
themeToggle.style.filter = theme "dark"? "invert(75%)": "none";
}

// Function to toggle the theme between light and dark

functiontoggleTheme() {
setTheme(bodyEl.classList.contains("dark")? "light": "dark");
}

themeToggle.addEventListener("click", toggleTheme);

Tämä saa sivusi vaihtamaan teemoja napsauttamalla vaihtosäilöä.

Tumman tilan parantaminen JavaScriptillä

Harkitse seuraavia kahta parannusta, jotka voivat tehdä pimeän tilan sivustoistasi miellyttävämpiä vierailijoillesi.

Käyttäjäasetusten tunnistaminen

Tämä edellyttää käyttäjän järjestelmäteeman tarkistamista ennen verkkosivuston latautumista ja sivuston säätämistä vastaavaksi. Näin voit tehdä sen käyttämällä matchMedia toiminto:

// Function to detect user's preferred theme

functiondetectPreferredTheme() {
// Check if the user prefers a dark color scheme using media queries
const prefersDarkMode = window.matchMedia("(prefers-color-scheme: dark)").matches;
setTheme(prefersDarkMode);
}

// Run the function to detect the user's preferred theme
detectPreferredTheme();

Nyt jokainen sivustollasi vieraileva käyttäjä näkee suunnittelun, joka vastaa heidän laitteensa nykyistä teemaa.

Pysyvä käyttäjäasetus paikallisen tallennustilan kanssa

Parantaaksesi käyttökokemusta entisestään, käytä paikallista tallennustilaa muistaaksesi käyttäjän valitseman tilan istuntojen aikana. Tämä varmistaa, että heidän ei tarvitse toistuvasti valita haluamaansa tilaa.

functionsetTheme(theme) {
bodyEl.classList.toggle("dark", theme "dark");
bodyEl.classList.toggle("light", theme !== "dark");

themeToggle.style.filter = theme "dark"? "invert(75%)": "none";

// Setting the theme in local storage
localStorage.setItem("theme", theme);
}

// Check if the theme is stored in local storage

const storedTheme = localStorage.getItem("theme");

if (storedTheme) {
setTheme(storedTheme);
}

functiondetectPreferredTheme() {
const prefersDarkMode = window.matchMedia("(prefers-color-scheme: dark)").matches;

// Getting the value from local storage
const storedTheme = localStorage.getItem("theme");

setTheme(prefersDarkMode && storedTheme !== "light"? "dark": "light");
}

Käyttäjäkeskeinen suunnittelu

Tumma tila ylittää ulkonäön; Kyse on käyttäjän mukavuuden ja mieltymysten asettamisesta etusijalle. Noudattamalla tätä lähestymistapaa voit luoda käyttäjäystävällisiä käyttöliittymiä ja kannustaa toistuviin vierailuihin. Kun koodaat ja suunnittelet, aseta käyttäjien hyvinvointi etusijalle ja tarjoa lukijoillesi parempi digitaalinen käyttökokemus.