Niko Poikulainen

Takaisin suunnittelupöydälle


Julkaistu 2025-11-01

 

Löytyipä harmillinen bugi! Asensin eilen erään Mastodon-keskustelun pohjalta Konqueror-nimisen nettiselaimen, ja kun suunnistin sillä omille sivuilleni, kohtasin ikävän yllätyksen: kaikki värit puuttuivat.

 

Näiden sivujen on tarkoitus toimia kaikilla mahdollisilla laitteilla moderneista nettiselaimista tekstipohjaisiin selaimiin ja näkörajoitteisten käyttämiin ruudunlukijoihin, mutta yllätyksekseni niin ei olekaan ollut. Nettisivujen värimäärittelyyn on perinteisesti käytetty RGB-värejä, jotka muodostuvat punaisesta (Red), vihreästä (Green) ja sinisestä (Blue) ja ilmoitetaan yleensä heksamuodossa. Esimerkiksi kirkkaanpunaisen värin RGB-koodi on rgb(255, 0, 0) ja heksakoodi #ff0000. Kirkkaanvihreälle vastaavat arvot ovat rgb(0, 255, 0) ja #00ff00.

 

Muitakin vaihtoehtoja väriavaruuksiksi on, ja niistä muista olin haksahtanut käyttämään tuoreempaa ja monipuolisempaa OKLCH-palettia. OKLCH:ssa määritellään värin valoisuus (Luminess) mustasta valkoiseen, kylläisyys (Chroma) harmaasävystä täysväriseen ja sävy (Hue) eli sijainti väriympyrässä. OKLCH-arvot edellä mainituille punaiselle ja vihreälle ovat oklch(0.628, 0.258, 29) ja oklch(0.866, 0.295, 142). Värin läpinäkyvyyden taso on mahdollista määritellä nollan ja yhden välillä sijaitsevalla neljännellä arvolla.

 

Konqueror ei osaa käsitellä OKLCH:ta, joten se ei osannut hakea värejä tyylitiedostosta, ja koska varapaletti oli asetettu väärin, sivu jäi mustavalkoiseksi. Tarkempi selvittely paljasti, että olin mokannut sekä ns. fallback-värien että OKLCH:n kohdalla. Modernit selaimet eivät ole olleet moksiskaan, mutta Konqueror ei osannut tulkita ajatuksiani mitenkään päin, ja töppäykseni paljastuivat. Korjausyritykseni saivat puolestaan modernit selaimet hulluksi, joten prosessi oli aloitettava alusta.

 

Päädyin käyttämään HSL-väripalettia (Hue, Saturation, Lightness), joka toimii suunnilleen samalla periaatteella kuin OKLCH, mutta siinä on vähemmän värejä, sen käyttäminen on hieman suoraviivaisempaa ja sitä tukee moni vanhempikin selain – myös Konqueror. HSL-versiot punaisesta ja vihreästä ovat hsl(0, 100%, 50%) ja hsl(120, 100%, 50%). Koska en jaksanut ruveta nysväämään liikaa, värien sävyt ovat nyt hieman erilaiset kuin ne olivat aiemmin, mutta ainakin kaikki tuntuu toimivan. Kompromissi, joka ei edes tunnu kompromissilta, vaan juhlalta!!

 

Toinen Konquerorin rajoite on kykenemättömyys lukea tyylitiedostosta sisäkkäisiä määrittelyjä kaksien tai useampien aaltosulkeiden sisältä. Minulta kesti jonkin aikaa ymmärtää, että minkä takia otsikoiden, linkkien ja leipätekstin värit eivät toimineet edelleenkään, vaikka taustavärit toistuivat jo oikein, ja vielä saman verran aikaa meni tyylitiedoston korjailuun. Sen minkä hävisin tiedoston muotoilussa (ja mielestäni myös koodin luettavuudessa), voitin yhteensopivuuksien sovittamisessa. Hyvin suunniteltu on puoliksi tehty, ja puoliksi tehty on tietysti hyvä, mutta joskus myös puoliksi suunniteltu saa kelvata.




Julkaisun aihetunnisteet

Kaikki aihetunnisteet

Mastodon Bluesky Pixelfed Sähköposti | Email RSS-syöte