Tabs

Om komponenten

Tabs er i utgangspunktet ment Ä brukes til Ä erstatte innhold i et begrenset omrÄde under fanerekken, uten Ä navigere vekk fra siden, men i enkelte tilfeller ser vi at vÄre brukere Þnsker Ä bruke denne komponenten som en navigasjonsrekke med lenker. Disse to bruksomrÄdene har forskjellige hensyn nÄr det kommer til semantikk og tilgjengelighet, og komponenten kommer derfor med to forskjellige interaksjonsmÞnstre.

Dersom du Þnsker Ä bruke den som en inline navigasjon av innhold pÄ siden, sÄ vil fanene oppfÞre seg slik som WAI-ARIA-kravene sier de skal, og ellers vil de bare vÊre som en rekke med lenker.

Avhengigheter

Ved bruk av tag eller ikon i fanene:

  • pkt-tag
  • pkt-icon

Bruk uten Vue eller React

Dersom denne komponenten skal oppfylle krav for universell utforming mÄ den utvides med noe JavaScript for Ä kontrollere tastaturnavigasjonen. Dette kommer bakt inn i Vue- og Reactkomnponentene, men mÄ legges til spesielt ellers.

Vi har laget en klasse som kan brukes “ut av boksen” dersom dere ikke Ăžnsker Ă„ skrive denne funksjonaliteten selv. Den kan dere finne pĂ„ vĂ„r CDN eller i pakken punkt-css under /dist/scripts/pkt-tags.js.

Eksempel pÄ bruk:

import PktTabs from "@oslokommune/punkt-css/dist/scripts/pkt-tabs.js";
const tabList1 = new PktTabs(
  document.getElementById("MineTabs"),
  document.getElementById("MineTabsPaneler")
);
document.querySelectorAll("#MineTabs [role=tab]").forEach((tab, index) => {
  tab.addEventListener("click", (event) => {
    event.preventDefault();
    tabList1.setActiveByIndex(index);
  });
});

Varianter

For Ä endre innhold pÄ siden

For Ă„ navigere til en annen side (navigasjon)

CSS-klasser

Block:

  • .pkt-tabs

Elements:

  • .pkt-tabs__list
  • .pkt-tabs__link
  • .pkt-tabs__button
  • .pkt-link-button
  • .pkt-tag
  • .pkt-icon

Modifiers:

  • .pkt-icon--small
  • .pkt-tag--small

Props og events

PropsTypeValidationDefaultBeskrivelse
tabsarrayRequired-Liste av objekter som utgjþr fanene – Se neste tabell
arrowNavboolean-trueSettes denne til false vil fanerekken vĂŠre navigasjon med lenker istedenfor tablist
onTabSelected (React)function--Callback-funksjon som kalles med index av valgt fane

tab-objektet i tabs

KeyTypeValidationDefaultBeskrivelse
textstringRequired-Tekst som vises i fanen
hrefstring--Valgfri lenke-URL til bruk dersom dette er navigasjon, eller for fallback
actionfunction--Valgfri funksjon som skal kalles ved klikk pÄ denne fanen
iconstring--Ikon fra vÄrt ikonbibliotek som skal vises i fanen
controlsstring--ID til innholdspanelen som denne fanen styrer (aria-controls-attributt)
tagobjectSom PktTag-Tar text- og skin-verdier som matcher det som kan sendes til PktTag
activeboolean--Er denne fanen aktiv? true/false

Events

EventsTypeReturnsBeskrivelse
onTabSelectedVueintegerReturnerer index pÄ valgt fane

Les mer