Siirry sisältöön
Olet Kela Design Systemin vanhemmassa versiossa. Siirry viimeisimpään versioon.
Luonnos

OverlayNav

Komponentti sisällön päälle avautuvan navigaatiovalikon toteutukseen.

Julkaistu versiossa 16.2.0

Komponentti on edelleen kehityksessä, joten sen API ja ominaisuudet saattavat vielä muuttua.

Esikatselu

Käyttötarkoitus

OverlayNav-komponenttia käytetään sisällön päälle avautuvan navigaatiovalikon toteuttamiseen (esimerkiksi mobiilinavigaatio).

Komponentti on tarkoitettu käytettäväksi silloin, kun ei käytetä Sidebar-sivupohjaa, joka tarjoaa mobiilinavigaation valmiina.

Komponentti toimii kehyksenä navigaatiolle. Varsinainen navigaatiorakenne toteutetaan valikon sisään sijoitettavalla Nav-komponentilla.

Saavutettavuus

Komponentti huomioi saavutettavuuden seuraavasti:

  • Kohdistus ja ruudunlukijan virtuaalikursori lukitaan valikon sisään, kun valikko on auki.
  • Valikko suljetaan Esc-painikkeella (onClose).
  • Komponentin renderöimää HTML-elementtiä voi muokata as-propin avulla (oletuksena section).

Sovelluksen vastuulle jää huomioida seuraavat asiat:

  • Kohdistus säilytetään valikon avaavassa painikkeessa ja palautetaan siihen valikon sulkeutuessa, jos kohdistus on valikon sisällä (onClose-funktion tai useEffect-hookin avulla).
  • Valikko voidaan määritellä alueeksi lisäämällä sille aria-label silloin kun valikko sisältää muitakin elementtejä kuin vain navigaation.
  • Määrittää insideElements-propin avulla ne HTML-elementit, joihin valikon lisäksi pääsee kohdistamaan.
  • Valikon avaavalle painikkeelle tulee lisätä aria-controls- ja aria-expanded-attribuutit.
  • Valikon sisäisten elementtien saavutettavuus.

Esimerkit

Alla olevat esimerkit on muokattu koodieditoria varten, joten ne eivät täysin vastaa todellista käyttöä. Oikea esimerkki löytyy Sivupohja Tab-navigaatiolla -sivulta tai tämän sivun yläreunasta, kun selainikkunan leveyttä pienennetään.

Kun isOverlay-prop on asetettu arvoon true (oletus), navigaatiovalikko sijoittuu sivun sisällön päälle ja peittää koko ruudun.

Navigaatiovalikon etäisyyttä sivun yläreunasta voi säätää useResizeObserver-hookin avulla. Hookin avulla etäisyyden voi asettaa esimerkiksi seuraamaan dynaamisesti ylätunnisteen korkeutta.

Yksinkertaistettu esimerkki navigaatiovalikon avaamisesta ja sulkemisesta.

Esimerkki navigaatiovalikon yhdistämisestä MainBar-komponentilla toteutettuun ylätunnisteeseen.

Huom! Poista oikeasta toteutuksesta kds-relative ja kds-absolute määritykset ja välitä offset-propilla valikon etäisyys sivun yläreunasta.

Huomioitavaa selaintuessa

Tunnetut ongelmat

  • Firefoxilla valikkoelementti saa virheellisesti kohdistuksen, kun elementit eivät mahdu kerralla näkyviin ja valikko saa vierityspalkin.
    • Tämä on korjattu tilapäisesti siirtämällä kohdistus joko ensimmäiseen elementtiin valikossa tai sen ulkopuolelle.
    • Käytä focusOutRef-proppia, jos kohdistus siirtyy väärään elementtiin, kun kohdistus poistuu valikosta.