Kuidas lisada oma veebilehele või rakendusse tumeda režiim (ilma valguseviteta)
Tumeda režiimi lisamiseks määratle oma värvid nimetatud tokenitena (taust, tekst, pind, äär, rõhuvärv), mitte kõvakooditud väärtustena, anna igale tokenile hele ja tume väärtus ning vaheta neid CSS-i funktsiooniga prefers-color-scheme, et sait järgiks külastaja süsteemiseadet. Kui tahad ka käsitsi lülitit, salvesta valik brauserisse ja rakenda see väikese reasisese skriptiga lehe päises, et laadimisel ei tekiks valget vilkumist. Seejärel kontrolli kontrasti, pilte ja diagramme mõlemas teemas. AI-rakenduste ehitajas saab enamiku sellest teha ühe selge promptiga; kvaliteet tuleb kontrollimisest.
Kaks lähenemist
| Lähenemine | Kuidas see töötab | Sobib | Kompromissid |
|---|---|---|---|
| Järgi süsteemi | CSS-i meediafunktsioon prefers-color-scheme valib hele või tumeda | Lihtsad saidid, nulli kasutajaliidest | Külastajad ei saa seada teistsugust väärtust kui nende seade |
| Lüliti + süsteemi vaikeväärtus | Algab süsteemiseadest; valik Hele / Tume / Süsteem kirjutab selle üle ja jääb meelde | Rakendused, mida inimesed palju kasutavad | Veidi JavaScripti ja laadimisel vilkumise probleem, mis tuleb lahendada |
Enamik rakendusi toimib kõige paremini teisega: järgi vaikimisi süsteemi, lase inimestel seda üle kirjutada.
Alusta värvitokenitega
Tumeda režiimiga on valus tegemist, kui värvid on koodis hajutatud nagu white, #333 ja gray-100. Lihtne on siis, kui iga värv tuleb väikesest nimetatud tokenite komplektist:
| Token | Hele | Tume |
|---|---|---|
background | peaaegu valge | väga tume hall |
surface (kaardid, menüüd) | valge | veidi heledam tume hall |
text | peaaegu must | väljas valge |
text-muted | keskmine hall | heledam keskmine hall |
border | helehall | tume hall veidi kontrastiga |
accent | sinu brändi värv | sageli heledam või vähem küllastunud versioon |
Iga komponent kasutab tokenite nimesid. Teema vahetamine tähendab siis ühe väärtuste komplekti vahetamist, mitte iga komponendi muutmist.
Näpunäiteid tumeda paletti jaoks:
- Väldi suurtel aladel puhast musta ja puhast valget; väga tume hall ja väljas valge on lugemiseks kergemad.
- Näita sügavust heledamate pindadega, mitte varjudega — varjud tumedal taustal peaaegu ei paista.
- Tee heledad brändivärvid natuke vähem küllastunuks; need võivad tumedal taustal ebamugavalt helendada.
- Hoia kontrast loetavana. WCAG AA tase nõuab tavalisele tekstile vähemalt 4,5:1 kontrasti. Tumedates teemades ebaõnnestub see sageli hallil nõrgal tekstil.
Tailwind CSS-iga
Tailwind CSS on paljudes AI-ga ehitatud rakendustes vaikimisi stiilitööriist. Vastavalt Tailwindi tumeda režiimi dokumentatsioonile kasutab variant dark: vaikimisi prefers-color-scheme, seega klassid nagu bg-white dark:bg-gray-900 järgivad süsteemiseadet ilma lisatööta.
Käsitsi lüliti jaoks Tailwind v4-ga näitab dokumentatsioon, kuidas vahetada variant klassipõhiseks ülemisel elemendil:
@import "tailwindcss";
@custom-variant dark (&:where(.dark, .dark *));
Seejärel lisab või eemaldab rakendus juurelemendilt klassi dark. Dokumentatsioon soovitab ka päises reasisest skripti, mis rakendab salvestatud valiku (või süsteemiseade) enne lehe joonistamist — just nii väldid vilkumist.
Valge vilkumise vältimine
Vilkumine tekib seetõttu, et leht joonistatakse heledas režiimis, seejärel laeb JavaScript, loeb salvestatud valiku ja lülitub tumedaks. Parandus:
- Pane väike reasisene skript lehe päisesse, mis loeb salvestatud teema ja seab klassi juurelemendile enne, kui midagi renderdatakse.
- Sea iga teema jaoks
color-schemeCSS-i omadus, et brauseri joonistatud osad (kerimisribad, vormielemendid) sobiksid. - Anna lehele mõlemas teemas selge taustavärv.
- Kui rakendus renderdatakse serveris, veendu, et server ja brauser nõustuvad algteema osas, muidu võib leht uuesti renderduda ja vilkuda.
Näidispromptid
Täielik seadistus:
Lisa tume režiim. Esmalt asenda kõvakooditud värvid teematokenitega (taust, pind, tekst, hall tekst, äär, rõhuvärv) koos heleda ja tumeda väärtusega. Vaikimisi järgi külastaja süsteemiseadet. Lisa päisesse teema lüliti valikutega Hele, Tume ja Süsteem, salvesta valik localStorage'i ja rakenda see päises oleva reasisese skriptiga, et laadimisel ei tekiks valget vilkumist. Sea iga teema jaoks color-scheme. Hoia praegune hele kujundus täpselt samana.
Jäänud asjade parandamine:
Kontrolli iga lehte tumedas režiimis ja paranda: madala kontrastiga tekst (sihi vähemalt 4,5:1), kõvakooditud valged taustad, kadunud servad, diagrammid tumedal taustal tumedate siltidega ja logod, mis kaovad. Ära muuda heledat teemat.
Pildid ja diagrammid:
Kasuta tumedas režiimis logo heledat versiooni. Tee diagrammi teljed, ruudustik ja sildid teematokenite kaudu. Anna ekraanipiltidele tumedas režiimis peen äär, et need ei sulanduks taustaga.
Samm-sammult
- Audiit värvidest. Leia kõvakooditud värvid ja asenda need tokenitega. See on enamik tööst.
- Määra tumedad väärtused igale tokenile.
- Järgi süsteemi
prefers-color-scheme-iga (või Tailwindi vaikimisidark:-ga). - Lisa lüliti, kui tahad: Hele, Tume, Süsteem. Salvesta valik brauserisse; sisselogitud rakenduste puhul saad selle salvestada ka kasutaja profiili.
- Väldi vilkumist päises oleva reaskriptiga ja
color-scheme-iga. - Kontrolli keerukamaid kohti: logod, ikoonid, pildid valgete taustadega, diagrammid, koodiplokid, kaardid, sisestused ja e-kirjad.
- Testi mõlemat teemat lauaarvutis ja telefonis, süsteemi seatuna heledaks ja tumedaks ning pärast kõva värskendamist.
Levinud vead
- Kõige pööramine. Filter, mis pöörab värve, rikub fotod ja brändivärvid.
- Kõvakooditud värvid jäetud alles. Üks valge kaart tumedal lehel paistab kohe silma.
- Madala kontrastiga hall tekst. Näeb stiilne välja, kuid ei vasta loetavusele.
- Valge vilkumine laadimisel. Eriti märgatav telefonides öösel.
- Kolmanda osapoole sisestuste unustamine. Kaardid, videod ja vidinad võivad jääda heledaks; kontrolli, kas neil on tume valik.
- Kahe olekuga lüliti. Kui keegi klõpsab seda, ei saa ta enam süsteemi järgimisele tagasi minna.
- Hele teema rikkumine. Ütle promptis selgelt, et heledat kujundust tuleb hoida samana.
Kontrollnimekiri
- Kõik värvid tulevad teematokenitest
- Vaikimisi järgitakse süsteemiseadet
- Valikuline lüliti valikutega Hele, Tume ja Süsteem, mis jääb meelde
- Laadimisel või värskendamisel ei teki valget vilkumist
-
color-schemeon seatud, et vormielemendid ja kerimisribad sobiksid - Tekstikontrast on mõlemas teemas vähemalt 4,5:1
- Logod, pildid, diagrammid ja sisestused on tumedas režiimis üle vaadatud
- Hele teema on muutumata
- Testitud lauaarvutis ja telefonis
Tume režiim Mythexis
Mythexi peal ehitatud rakendused kasutavad vaikimisi Vite'i, Reacti, TypeScripti ja Tailwindi, seega kehtib ülal kirjeldatud Tailwindi lähenemine otse: kleebi täieliku seadistuse prompt vestlusse, seejärel kontrolli eelvaates mõlemat teemat ja telefonisuurust. Mythexi disainiprompti soovitus on nimetada, mida muuta ja mida hoida, mis siin tähtis on — ütle, et hele teema peab jääma samaks. Vt Disaini ja kasutajaliidese promptid ja taasta kontrollpunktiga, kui käik läheb valesti.
Rohkem sellest, kuidas kujundust õigeks saada, vaata kuidas disainida AI-ga hea välimusega rakendus ja kuidas kirjutada prompte AI-rakenduste ehitajatele.
Küsimused
Kuidas panna mu veebileht järgima seadme tumeda režiimi seadet?
Kasuta CSS-i funktsiooni prefers-color-scheme, mis ütleb, kas külastaja süsteem on seatud heledaks või tumedaks. Tailwindi dark:-variant kasutab seda vaikimisi.
Miks mu leht vilgub enne tumedale režiimile lülitumist valgeks?
Salvestatud teema rakendatakse JavaScripti abil pärast seda, kui leht on juba joonistatud. Paranda see väikese reasisese skriptiga lehe päises, mis seab teema klassi enne, kui midagi renderdatakse, ning sea mõlemale teemale selge taustavärv.
Kas tumeda režiimi peaks olema puhas must?
Tavaliselt mitte. Väga tumedad hallid on pikal lugemisel silmadele kergemad ja lubavad näidata sügavust veidi heledamate pindadega. Puhas must võib sobida OLED-keskseteks või meediarohketeks kujundusteks.
Kas vajan tumeda režiimi lülitit, kui järgin süsteemi seadet?
Mitte rangelt. Süsteemi järgimine on hea vaikeväärtus, kuid lüliti valikutega Hele, Tume ja Süsteem aitab inimesi, kes soovivad, et sait erineks nende seadme seadest.