FluentUI: oblikovalski žetoni
Nazaj: FluentUI (knjižnica oblikovalskega sistema)
Stanje: stopnja 1 – opisuje dejansko izvedeno kodo (lib/plugins/wkfluentui/style.css).
Jedrna barvna pogodba
wkfluentui/style.css določa enak razdelek »cross-template contract« kot
premium-navy-ivory/css/tokens.css:33-176 (ink/paper/accent/gold/surface/text/link/border/
highlight/sidebar/success/warning/error/admin-accent – enaka imena kot
lib/tpl/flat/css/color-palette.css). Vrednosti: lastna paleta predloge flat
(DokuWikijeve referenčne predloge – najbolj nevtralna in neodvisna izbira za splošno
privzeto vrednost, nobena od palet znamk WvdS nima prednosti). Celoten seznam žetonov:
Styles Contract (--wk-*).
Lestvica velikosti, polmerov, razmikov in tipografije
Vir: src/vs/workbench/browser/media/{style,part}.css (skupno za VS Code in ADS,
https://github.com/microsoft/vscode) ter CSS obrazcev in pogovornih oken, značilen za ADS, pod
src/sql/** (https://github.com/microsoft/azuredatastudio). Vse vrednosti so
povzete v pikslih iz vira, ne ocenjene.
| Žeton | Vrednost | Vir |
|---|---|---|
–wk-fs-chrome | 11px | style.css:43, part.css:53 (pisava okvirja in metapodatkov: naslovne vrstice, oznake) |
–wk-fs-body | 13px | style.css:53-54 (standardno besedilo, line-height:1.4em) |
–wk-fs-title | 15px | ADS modal.css:82-83 (naslov pogovornega okna, font-weight:600) |
–wk-lh-body | 18px | style.css:53-54 – navedba izvora pri –wk-fs-body tam navaja line-height:1.4em; 1,4 × 13px = 18,2px, zaokroženo na 18px |
–wk-lh-chrome | 16px | ADS slick.grid.css:26 – višina vrstice glave mreže (tam 28px pri 4px notranjega odmika) |
–wk-fs-heading | 20px | Azure DevOps – naslov zapisa (naslov delovnega elementa); stopnja med naslovom (15) in prikazom (28) |
–wk-lh-heading | 28px | isti vir – višina vrstice za –wk-fs-heading; uporabljata jo recordHeader() in textBox() z heading |
–wk-icon-size | 16px | style.css:152 (standardna velikost ikone, stalna) |
–wk-choice-size | 16px | okvirček potrditvenega polja, izbirnega gumba in izbire v mreži – pet gradnikov, ena mera |
–wk-choice-gap | 8px | razmik od okvirčka do njegove oznake – ne zamenjujte z –wk-control-gap, razmikom MED dvema kontrolnikoma |
Kje je zapisana velikost. Mera skupnega kontrolnika spada v pogodbo, ne v eno od več možnih predlog. Pravilo predloge, kot je .dokuwiki input[type="checkbox"] (teža 0-2-1), bi premagalo vsako pravilo za razred v kompletu (0-2-0); predloga zato bere žeton, namesto da bi nastavila lastno vrednost.
Stikalo ne sledi. Meri 34×18px in je izvzeto s selektorjem, ne z vrstnim redom v datoteki. Brez lastnega žetona za površino za dotik: to že opravlja --wk-touch-min.
–wk-radius-sm | 2px | button.css:11, inputBox.css:11, selectBox.css:9 (polmer zaprtega gumba, vnosnega polja in spustnega seznama) |
–wk-radius-md | 5px | dropdown.css:26, menubar.css:56 (polmer menija in pojavnega okna spustnega seznama) |
–wk-radius-lg | 8px | ADS card.css:89 (polmer kartice/ploščice, značilen za ADS) |
–wk-space-1 … –wk-space-6 | 5/10/15/20/25/30px | ADS formLayout.css:8, designer.css:98, card.css:11 (koraki po 5px, ne mreža Fluent s 4px) |
–wk-motion | 150ms | ADS/urejevalnik – le za prosojnost, premik in višino; barve stanj se zamenjajo brez prehoda |
–wk-easing | cubic-bezier(.33, 0, .67, 1) | isti vir, ista uporaba |
Zakaj ostaneta le dva žetona za gibanje. V obeh referencah vrstica seznama, gumb in potrditveno polje nimajo prehoda; skupaj je tam 27 prehodov v 154 slogovnih datotekah in nobene animacije s ključnimi sličicami. Giblje se tisto, kar se premika – pojavitev, stikalo, razpiranje. Stanje (kazalec, izbira, fokus, pritisk) barvo zamenja takoj. To ni vrzel, ampak pravilo: če kazalec povlečete čez trideset vrstic, želite trideset takojšnjih odzivov in ne trideset zakasnjenih prelivov.
Neprevzete vrednosti: preglasitev besedila v vsebinskem delu (ADS: 12px, part.css:91), majhna
ikona (13px, ADS designer.css:119), polmer stikala, lebdečega okna in opisa orodja (3px, toggle.css:13,
hover.css:104), širine pogovornih oken (500/800/1200px, ADS modal.css:60-72) – dokumentirane kot
referenčne vrednosti v FluentUI: osnovna postavitev podrobno in FluentUI: osnovni katalog gradnikov,
vendar niso dobavljene kot lastni žetoni wkfluentui, ker jih noben porabnik ne potrebuje.
Območja lupine (osnovna postavitev)
Za razliko od zgornje lestvice velikosti, polmerov in razmikov to niso na novo v pikslih
izmerjene vrednosti iz ADS, temveč žetoni vzdevki: vsaka rezervna vrednost se sklicuje na že
obstoječi žeton –wk-*, nobena nova vrednost v hex ali pikslih ni izmišljena
(izjema: –wk-shell-statusbar-h, povzet v pikslih iz istega vira ADS kot
preglednica osnovne postavitve v FluentUI (knjižnica oblikovalskega sistema), območje (7)). Prvi
porabnik: mreža .wkq-shell v wksqliteds (glejte
FluentUI: osnovna postavitev podrobno).
| Žeton | Rezervna vrednost | Uporaba |
|---|---|---|
–wk-shell-sidebar-bg | var(–wk-surface-alt) | ozadje območja stranske vrstice |
–wk-shell-sidebar-border | var(–wk-border) | rob desno od območja stranske vrstice |
–wk-shell-content-bg | var(–wk-surface) | ozadje vsebinskega območja |
–wk-shell-auxbar-bg | var(–wk-surface-alt) | ozadje območja Auxiliary Bar |
–wk-shell-auxbar-border | var(–wk-border) | rob levo od območja Auxiliary Bar |
–wk-shell-statusbar-bg | var(–wk-surface-alt) | ozadje vrstice stanja |
–wk-shell-statusbar-border | var(–wk-border) | rob nad vrstico stanja |
–wk-shell-statusbar-text | var(–wk-text-alt) | barva besedila v vrstici stanja |
–wk-shell-statusbar-h | 22px | stalna višina vrstice stanja, ADS part.css (glejte FluentUI: osnovna postavitev podrobno, območje (7)) |
–wk-shell-commandbar-bg | var(–wk-surface-alt) | ozadje ukazne vrstice (dodatek WvdS) |
–wk-shell-commandbar-border | var(–wk-border) | rob pod ukazno vrstico |
Namenoma ni dobavljeno: –wk-shell-titlebar-*/–wk-shell-rail-* – brez
trenutnega porabnika (naslovno vrstico in vrstico dejavnosti podeduje lupina wikija predloge
premium-navy-ivory, wksqliteds ju ne gradi na novo; glejte konvencijo
»neprevzete vrednosti« zgoraj).
Dotik, vrstice drevesa, predal
Pet žetonov za vprašanje »kako veliko je to pod prstom«. Navedeni so tukaj
in ne pri območjih lupine, ker so odvisni od kazalne naprave: pod
@media (pointer: coarse) dva od njih dobita drugo vrednost.
Porabnik zapiše eno ime in na obeh vrstah naprav dobi pravo število –
ponavljanje medijske poizvedbe v vsakem klicatelju je pot, po kateri nastaneta
dva sistema prelomnih točk.
| Žeton | Vrednost | pod pointer: coarse | Uporaba |
|---|---|---|---|
–wk-touch-min | 40px | 44px | spodnja meja vsake površine za dotik |
–wk-tree-row-height | 26px | 36px | višina vrstice drevesa |
–wk-drawer-width | 100% | – | predal na telefonu: celozaslonsko |
–wk-drawer-width-tablet | 380px | – | predal na tablici: omejena prekrivna plošča |
–wk-mobile-header-height | 48px | – | vrstica s kontekstom nad vsebino na majhnih zaslonih |
Definicija in rezervna vrednost žetona –wk-touch-min se ujemata. Pet
paketov žeton bere kot var(--wk-touch-min, 40px):
wkdocore, wkdodashboard, wkdogit, wkdoqueries, wkdoworkitems.
Določena vrednost na napravi s kazalcem je zato prav tako 40px: površina za dotik
tako ni odvisna od tega, ali je ta slogovna datoteka na strani naložena.
Skrbniška lestvica
Lestvica –wk-admin-fs-*/–wk-admin-radius predloge premium-navy-ivory
(tokens.css) je preverjena glede na izvorno kodo ADS; bloki komentarjev neposredno ob
definicijah žetonov za vsako vrednost navajajo vir. –wk-admin-radius 2px ustreza ADS
(button.css:11; današnji VS Code od prenove z zaobljenimi oblikami uporablja 4px –
namenoma je ohranjeno starejše stanje ADS). Zaobljenost kartice 4px in lestvica pisav sta
namerni odstopanji: kartica ADS (card.css:89, 8px) je tržna ploščica in
ne sodi v ploski skrbniški videz; velikosti pisav v skrbniškem območju so zaradi
berljivosti eno stopnjo nad osnovo ADS 11/13/15.
Vrstni red nalaganja in preglasitev
css_out() v lib/exe/css.php sestavi: sloge jedra → sloge vtičnikov
(css_pluginstyles(), samodejno vključi wkfluentui/style.css) → sloge predloge
(npr. wkbizway/css/tokens.css, prek seznama stylesheets v style.ini) →
uporabniške sloge. Pravila predloge se naložijo za pravili vtičnikov – pri enaki
specifičnosti selektorja () zmaga tisto, ki je določeno zadnje, zato aktivna predloga
z lastnimi vrednostmi :root–wk-* samodejno preglasi privzete vrednosti wkfluentui; če
ni aktivna nobena predloga z lastnimi žetoni, vrednosti wkfluentui ostanejo rezervne
vrednosti za celotno spletno mesto.
Kje sme biti izpeljava
Del žetonov ni vrednosti, temveč izpeljave: njihova vrednost prek var() bere drug žeton, da sprememba osnove potegne s seboj vse, kar iz nje sledi. Pri tem velja lastnost, ki je iz zapisa ni videti:
Izpeljava v torej računa s paleto korena. Površina nižje v drevesu, ki eno od osnov zase določi na novo, je ne doseže: izpeljava obdrži odgovor korena. Sporočila o napaki pri tem ni – slogovna datoteka je veljavna, vrednost je veljavna, stran se izriše.
:root
Zgled: prijavna kartica nastavi (želi oglate robove); --wk-radius-md: 0, izpeljan v --wk-radius, znotraj te površine kljub temu odgovori :root5px.
Za vsako izpeljavo v , katere osnovo površina nižje določi na novo, je zato dopusten natanko eden od dveh odgovorov; preverjanje v repozitoriju to spremlja:
:root
| Odgovor | Pomen | Izvedba |
|---|---|---|
| sledi | površina naj izpeljano vrednost spremeni | izpeljava se na isti površini deklarira znova ali pa se preseli v pravilo komponente, kjer se var() razreši na elementu |
| namenoma ne sledi | žeton poimenuje lastnost palete; lokalna sprememba na površini je zunaj njegovega predmeta | vnos v preglednico izjem pri preverjanju, z razlogom |
Nedopustna je tretja možnost: neodločenost.
Stanja: skupina »States«
Stanje je tu zapisano kot delež, ne kot barva – in to neposredno sledi iz zgornjega pravila.
| Žeton | Vrednost | Pomen |
|---|---|---|
--wk-state-disabled-opacity | 55% | prosojnost onemogočenega kontrolnika |
--wk-state-readonly-tint | 8% | delež lastne barve pisave, ki se primeša lastnemu ozadju |
--wk-state-hover-tint | 7% | enak delež za stanje pod kazalcem |
--wk-state-press-tint | 15% | enak delež za stanje pritiska |
--wk-state-press-dim | 82% | stopnja svetlosti stanja pritiska pri površinah z lastno barvo |
Ton stanja kot barvni žeton v bi računal s paleto korena in ne bi sledil nobeni površini, ki barve polj določi na novo – prijavna kartica naredi prav to. Delež pa se upošteva v pravilu komponente:
:root
background: color-mix(in srgb, var(--wk-field-fg) var(--wk-state-readonly-tint), var(--wk-field-bg));
Tam se var() razreši na elementu. Stanje tako sledi vsaki površini, shemi, koži in poudarku – iz ene deklaracije, namesto da bi jo ponavljali v vsakem bloku osi.
Zakaj ima stanje pritiska dve vrednosti
Odloča to, čigava barva je površina.
Kontrolnik, ki podeduje površino sheme (vnosno polje, nevtralen gumb), dobi zgornjo mešanico. Ta se sama usmeri: v svetli shemi je pisava temna in površina se pomakne proti temnemu, v temni shemi obratno. Ena deklaracija tako pokrije vse tri sheme.
Kontrolnik z lastno barvo – glavno dejanje, nevarnost, uspeh – namesto tega dobi stopnjo svetlosti. Če bi mu primešali njegovo pisavo, bi ga v svetli shemi posvetlili, medtem ko ga vrednost za hover zatemni: ena kretnja, dve smeri. Tudi stopnja svetlosti ne pozna barve, ne potrebuje barvne funkcije in obe stanji drži na eni osi.
color-mix() DokuWikijev prevajalnik LESS preživi nepoškodovan – tudi z var() na mestu odstotka, z rezervnimi vrednostmi in dve ravni izpeljave globoko. Mešane enote v calc() pa ostajajo prepovedane; tam se prevajanje ne prekine, temveč tiho računa narobe. Nič odstotkov pa ne preživi – glejte razdelek o paleti spodaj.
Stanja mreže
Poleg žetonov za okvir mreže (barve trakov, barve glave, višina traku, višina vrstice) skupina Grid ima štiri stanja – lastne žetone, da je mogoče hover vrstice v mreži spremeniti, ne da bi se spremenil hover vsake skrbniške površine.
| Žeton | Vrednost | Pomen |
|---|---|---|
–wk-grid-row-hover | = –wk-admin-hover | vrstica pod kazalcem |
–wk-grid-row-selected | = –wk-admin-row-selected-bg | izbrana ali aktivna vrstica |
–wk-grid-cell-border | = –wk-border-light | ločilna črta med vrsticami |
–wk-grid-focus-border | = –wk-focus | obroba fokusa vrstice |
Vsak od štirih se razreši v žeton iz stolpca »Vrednost«; izbrana barvna shema ostane nedotaknjena.
Zakaj štiri in ne sedem. Zgled pozna sedem stanj mreže. Treh – izbrano in pod kazalcem, hover nad dejanjem in hover nad povezavo v celici – ta komplet ne riše. Nastanejo skupaj s pravili, ki jih potrebujejo; žeton, ki ga nihče ne bere, je dražji od nobenega.
Zakaj --wk-admin-row-selected-bg ostane. Starejši žeton se v vsaki shemi razreši v isto vrednost kot
--wk-highlight, je torej vmesna stopnja brez lastne vrednosti. Berejo pa ga štiri mesta
v wkbizway in wkblog. Novi žeton je zato izpeljan iz njega, namesto da bi ponavljal
njegovo vrednost: če predloga nastavi starejšega, mreža sledi.
Paleta: tri sheme, trije poudarki
Paleta se izračuna kot celota: vsak par barve pisave in površine, ki ga komplet dejansko izriše, se preveri glede na zahtevo po kontrastu iz WCAG 2.2 (merilo uspeha 1.4.3, raven AA: 4,5:1 za tekoče besedilo; merilo uspeha 1.4.11: 3:1 za rob, po katerem je kontrolnik prepoznaven). Slogovna datoteka ne more odpovedati: skoraj berljiva vrednost je videti kot oblikovalska odločitev.
Ena naloga na žeton
--wk-border riše okrasno črto med dvema vrsticama preglednice; rob vnosnega polja ima lasten žeton. Za okrasno črto je 1,71:1 pravilno – ločilna črta, ki doseže 3:1, je že pas. Za rob polja bi bila ista vrednost kršitev merila 1.4.11, saj je rob edino, po čemer je polje prepoznavno kot polje.
Enako velja za stanja: družina --wk-warning ima tri žetone – signal (simbol, rob, polnilo), pisavo in barvo na signalu. Kot signal je zlata pravilna; kot pisava ista zlata doseže le 2,39:1, bela na zlati števčni znački pa 2,10:1.
Temna shema poleg površin, pisave, lupine in stranske vrstice na novo določi tudi družino poudarka in družino stanj; sicer bi temen zaslon kazal svetel okvir z obvestilom o uspehu.
Tri sheme
| Shema | Atribut | Material |
|---|---|---|
| svetla | brez (osnovni blok) | bel papir, hladne nevtralne stopnje |
| Heritage | data-wk-scheme="heritage" | slonokoščeni papir, mornarsko modri ukazni trak, zlata kot okrasna črta |
| temna | data-wk-scheme="dark" | skoraj črna površina, topla pisava |
Heritage ni tretja svetlost med svetlo in temno. Za brskalnik je svetel svet in color-scheme: light to tudi pove – sicer bi brskalnik nativne kontrolnike risal na podlagi napačne predpostavke. Shema si to ime zasluži s tem, da na novo določi material: površine in pisavo, nič drugega.
text.secondary je tam #C2A980, zlata: na slonokoščenem papirju to da 2,05:1, na mornarsko modrem ukaznem traku 7,25:1. Preglednica predloge navaja eno vlogo, kjer sta dve. Zlata je zato tam, kjer deluje (kot pridušena pisava lupine), papir pa ima lastno toplo temno sivo. Enako interactive.focus: v vseh treh shemah #1D3A6C, kar bi na temni površini dalo 1,74:1 – fokusni obroč, ki ga nihče ne vidi.
Trije poudarki
| Poudarek | Osnovni ton | druga barva |
|---|---|---|
| Atlantic | #1D3A6C | mornarsko modra |
| Riviera | #0F5132 | dirkalna zelena |
| Graphit | #3A4249 | grafitna |
Rdeča je stalnica jezika poudarkov v hiši in izrecno ni eden od treh: je alarm, alarm, ki je hkrati znamka, pa preneha biti alarm. Družine se ločijo po drugi barvi – grafitna je v naboru zato, ker edina ni barvna soseda drugih dveh, tako da jih je na gostem podatkovnem zaslonu še vedno mogoče razločiti.
Ena družina, en osnovni ton, ena smer
Tri družine krat tri sheme bi bile devet ročno usklajevanih blokov. Namesto tega vsaka družina navede en osnovni ton, shema pa pove, koliko ga ostane:
--wk-accent: color-mix(in srgb, var(--wk-accent-base) var(--wk-accent-keep, 100%), var(--wk-accent-lift, #FFFFFF));
| Regulator | svetla / Heritage | temna |
|---|---|---|
--wk-accent-keep | 100% | 54% |
--wk-accent-press-lift | #000000 | #FFFFFF |
Drugi regulator je zanimivejši: »pritisnjeno« je smer, ne svetlost. Na svetli površini je stanje pritiska temnejše, na temni svetlejše – in nobeni družini poudarka za to ni treba vedeti, da obstaja temna shema.
color-mix(). Prevajalnik LESS te namestitve 0% normalizira v 0 brez enote. color-mix() zahteva odstotek; gola ničla celotno funkcijo ob izračunu razveljavi in žeton tiho pade nazaj na podedovano vrednost.
V brskalniku je to videti takole: vsi trije poudarki dajo rgb(92,92,92) (okoliško barvo besedila), sveženj pa se prevede brez napake in nič se ne zabeleži. Zato se regulator imenuje »koliko ostane« in ne »kako zelo posvetljeno«: 100% je število, ki se ga prevajalniku ni treba dotakniti.
To je ostrejša oblika pravila, ki velja za calc(): škoda ni prekinitev, temveč vrednost, ki je v viru videti pravilna, brskalnik pa jo zavrže.
Kaj blok osi na vsebniku potrebuje še dodatno
Pravilo iz razdelka »Kje sme biti izpeljava« velja še eno raven višje. Žeton, ki je v deklariran kot :rootvar(X), dobi odgovor na korenu. Če je tudi shema na korenu (običajni primer, ki ga nastavi strežnik), to drži. Če je na vsebniku, kot pri označevanju modula, je koren že odgovoril.
Brez ponovitve na primer --wk-btn-primary-text ostane bel, --wk-text-on-accent poleg njega pa je skoraj črn – glavni gumb izgubi napis pri 3,20:1.
Zato velja: blok osi, ki na novo določi osnovo, ponovi izpeljave iz nje, ki so pomembne za kontrast. Preverjanje to spremlja – omejeno na pare, ker bi isto pravilo, uporabljeno za vse izpeljave, zahtevalo okrog 200 ponovljenih deklaracij in s tem vrnilo prav tisto podvajanje, proti kateremu je paleta zgrajena. Preostalih 71 se prešteje in sporoči, ne zahteva.
Preverjanje
Preverjanje kontrasta izračuna 34 parov v 12 kombinacijah (tri sheme krat štirje poudarki, vključno s privzetim), dodatno prek osi kože v kombinaciji s shemo, poleg tega pa preveri seznam osi, oznake v petih jezikih in pravilo o nič odstotkih.
Je zaskočka v obe smeri. Vrednost, ki se poslabša, ne prestane preverjanja – in prav tako par, ki ga ni več mogoče razrešiti: vrata, ki merijo le v eno smer, neopazno prenehajo meriti.
Os kože
Koža na novo določi po 26 vrednosti in podeduje vse ostale; ali se podedovane ujemajo z na novo določenimi, preverjanje zato izračuna prek kombinacije koža × shema × poudarek.
Enaka teža: odloča vrstni red
Vse štiri osi so zapisane kot :root[data-wk-<os>="<vrednost>"] in imajo zato enako težo. Pri enaki teži odloča le vrstni red v svežnju. Če bi bloka kože in sheme določala iste nevtralne barve, bi zadnji blok preglasil prejšnjega – skin="wxi" skupaj s scheme="dark" bi tedaj pokazal bel papir.
Rešitev: ločeni nabori žetonov
Koža svoje nevtralne barve navede za vsak svet svetlosti (--wk-n-<svet>-<vloga>), shema prebere en svet in iz njega določi pomenske žetone. Nabora se ne prekrivata, zato vrstni red med njima ne odloča – edina oblika pravokotnosti, ki preživi, da nekdo premakne blok.
Poudarek ostaja namerna izjema: koža in shema naj ga ne preglasita, zato je zadnji, ena od vrat pa zagotavljajo, da tam tudi ostane.
Zakaj ne izpeljano iz osnovnega tona kot pri poudarku: barvni ton je pod različno svetlobo res ena stvar, nevtralne barve niso. Devet svetlih stopenj te hiše ni enakomerna mešanica med njihovima koncema – mešanica dveh točk zgreši --wk-border za devet vrednosti na kanal, več stopenj pa nosi popravek kontrasta, ki bi se pri tem izgubil.
Koža navede le svetove, ki jih ima. wxi ima svetlo in temno različico in nobene različice Heritage, zato pod scheme="heritage" pade nazaj na hišno lestvico. To je predviden odgovor, ne vrzel.
Znana omejitev: sedem parov osi kože ostane pod mejo – lastne pridušene sive stopnje WXI (2,85:1 svetlo, 2,99:1 temno), nespremenjeno prevzete iz WXI.
Prejšnjih imen kož wxi-darkness in wxi-clearness ni več. wxi-darkness je bila svet svetlosti z imenom kože – kar je bilo videti po tem, da je morala sama nositi svoj color-scheme, kar pove svet in ne značaj; ustreza skin="wxi" scheme="dark". wxi-clearness je bila svetla različica WXI z drugačno modro; odkar ima poudarek lastno os, je od wxi nič več ne loči.
skin= površine modula. wxi-darkness pri tem obdrži svojo svetlost: uporabnik, ki jo je izbral, je izbral temen zaslon, in če bi prevedli le del s kožo, bi ga premaknili na svetlega – na osi, kjer tega nihče ne bi preveril.
Fiksira se nabor, ne število. Zgornja meja za število bi spregledala premik: ena kršitev odpravljena, nova nastala, vsota nespremenjena, sporočilo »nespremenjeno« za slogovno datoteko, ki se je spremenila. Zato se primerja seznam prizadetih parov, preverjanje pa navede, kaj je prišlo zraven in kaj je izginilo.
--wk-surface v svojem :root, pozneje v svežnju in z enako težo; blok kože z višjo specifičnostjo bi bil prav tista bitka specifičnosti, ki jo hišno pravilo »vtičnik določa, tema preglasi« prepoveduje. V temni shemi koža učinkuje.
Česar izrecno ne meri, je izrisana stran: izračunana barva lahko prihaja iz pravila, ki ga preverjanje nikoli ne vidi. Preverjanje dokazuje, da je paleta pravilna; preverjanje v brskalniku dokazuje, da jo pravila tudi izpišejo.