Design-muuttujat
Design-muuttujat ovat yhteisiä tyyliarvoja, jotka toimivat komponenttien rakennuspalikoina ja johdonmukaisen design-kielen perusyksiköinä.
Design-muuttujat ovat yhteisiä tyyliarvoja, jotka toimivat komponenttien rakennuspalikoina ja johdonmukaisen design-kielen perusyksiköinä.
Design-muuttujat (design tokens) ovat atomiseen rakenteeseen perustuvia tyylipäätöksiä, jotka määrittävät käyttöliittymäelementtien muotokielen ja visuaalisen ilmeen.
Yhteinen termistö ja jaetut muuttujat helpottavat kehittäjien ja suunnittelijoiden välistä yhteistyötä.
Lisäksi niiden avulla voidaan toteuttaa yhteinen visuaalinen ilme teknologiasta riippumatta.
Kela Design Systemin design-muuttujat on jaettu kolmeen kategoriaan:
Kela Design System käyttää design-muuttujia esimerkiksi komponenttien tyylien, teemoituksen ja apuluokkien toteutuksessa. Teemamuuttujia käytetään arvoihin, jotka voivat muuttua teeman tai tumman ja vaalean tilan mukaan, kun taas perusmuuttujat määrittävät arvot, jotka pysyvät samoina kaikissa teemoissa.
2
var(--kds-typography-label-font-size);var(--kds-typography-label-font-weight);var(--kds-color-input-bg);var(--kds-color-input-border);var(--kds-color-primary-bg-btn);var(--kds-typography-font-size-base);var(--kds-color-bg);var(--kds-typography-font-size-base);Perusmuuttujat sisältävät visuaalisen ilmeen ja teemoituksen toteuttamiseen tarkoitetut vakioarvot. Nämä arvot ovat kiinteitä, eivätkä ne muutu eri teemojen tai tumman ja vaalean tilan välillä.
Perusmuuttujien nimeäminen kuvastaa niiden arvoja, jotta merkitys on selkeä sekä suunnittelijoille että kehittäjille.
Kaikki perusmuuttujatTeemamuuttujilla toteutetaan Kela- ja Kanta-teemojen erityispiirteet sekä vaalean ja tumman tilan värit. Teemamuuttujien arvot periytyvät perusmuuttujista, mutta niiden avulla voidaan muokata visuaalista ilmettä eri teemojen tarpeisiin.
Komponenttien teemoitus on toteutettu pääasiassa CSS-muuttujien avulla, mutta muuttujat ovat saatavilla myös muissa formaateissa, jolloin niitä voidaan hyödyntää esimerkiksi JavaScript-kontekstissa.
Teemamuuttujien nimeäminen on semanttista, ja sen tarkoituksena on kuvata muuttujien käyttötarkoitus yleisellä tasolla.
Teemamuuttujiin on sisällytetty pääasiassa vain ne arvot, joita tarvitaan Kela- ja Kanta-teemojen sekä vaalean ja tumman tilan toteuttamiseksi. Muutoin komponenttien tyylit perustuvat perusmuuttujiin.
Teemamuuttujat jakautuvat globaaleihin ja komponenttikohtaisiin muuttujiin. Globaaleilla teemamuuttujilla määritellään kaikkien komponenttien yhteiset arvot. Komponenttikohtaisia muuttujia käytetään silloin, kun tietyn komponentin ulkoasuun tarvitaan poikkeuksia, eikä globaaleista arvoista löydy sopivaa vaihtoehtoa.
Komponenttikohtaisten muuttujien nimeäminen kuvaa tarkasti niiden käyttötarkoituksen kyseisessä komponentissa.
Tiedon visualisoinnin muuttujat toimivat samalla periaatteella kuin teemamuuttujat, mutta niitä käytetään ainoastaan tiedon visualisointien toteuttamiseen.
Kaikki tiedon visualisoinnin muuttujat
Kun sovelluksessa hyödynnetään valmiita design-muuttujia, KDS:n tyyleihin tehtävät muutokset periytyvät sovelluksiin automaattisesti versiopäivitysten myötä. Näin tyylejä ei tarvitse ylläpitää erikseen jokaisessa sovelluksessa. Teemamuuttujien käyttö varmistaa myös tumman ja vaalean tilan toimivuuden.
Design-muuttujia voi käyttää sovelluksissa myös räätälöityjen komponenttien tyyleihin. Ne mahdollistavat KDS-tyylien hyödyntämisen silloinkin, kun sovellus ei käytä Reactia.
Kaikki design-muuttujat ovat saatavilla CSS-, JavaScript-, JSON- ja SCSS-tiedostomuodoissa, mikä mahdollistaa niiden käyttämisen erilaisilla teknologioilla.
Työkalut design-muuttujien hyödyntämiseen
Design-muuttujia käytetään myös CSS-apuluokissa. Apuluokat yhdistävät design-muuttujat valmiiksi CSS-luokiksi, joita voi hyödyntää suoraan HTML-elementeissä tyylimäärittelyiden toteuttamiseen.
Sovelluksen omat CSS-apuluokat kannattaa toteuttaa siten, että ne perustuvat design-muuttujiin aina, kun sopivia arvoja on saatavilla. Näin varmistetaan yhtenäinen tyyli ja se, että muutokset design-muuttujiin päivittyvät myös räätälöityihin apuluokkiin ilman manuaalista ylläpitoa.