Table

Release dato: 16.05.2024

Sist oppdatert: –

Tabeller brukes for å presentere strukturert data i rader og kolonner. De gjør det enklere å skanne, sammenligne og utføre handlinger på data. Tabellen kan inneholde interaktive elementer som lenker, knapper, inputfelt og avkrysningsbokser.

Har du noen innspill til komponenten?Gi oss beskjed!

Test komponenten

NavnAlderBy
Ola Nordmann35Oslo
Kari Nordmann32Bergen

Kodebygger

PktTable

Utseende
Utseendet til tabellen

Innhold

0 (PktTableHeader)

PktTableHeader

Innhold

0 (PktTableRow)

PktTableRow

Innhold

0 (PktTableHeaderCell)

PktTableHeaderCell

Innhold
1 (PktTableHeaderCell)

PktTableHeaderCell

Innhold
2 (PktTableHeaderCell)

PktTableHeaderCell

Innhold
1 (PktTableBody)

PktTableBody

Innhold

0 (PktTableRow)

PktTableRow

Innhold

0 (PktTableDataCell)

PktTableDataCell

Innhold
Etikett som brukes for responsiv visning av tabellen, typisk samme som kolonneoverskriften
1 (PktTableDataCell)

PktTableDataCell

Innhold
Etikett som brukes for responsiv visning av tabellen, typisk samme som kolonneoverskriften
2 (PktTableDataCell)

PktTableDataCell

Innhold
Etikett som brukes for responsiv visning av tabellen, typisk samme som kolonneoverskriften
1 (PktTableRow)

PktTableRow

Innhold

0 (PktTableDataCell)

PktTableDataCell

Innhold
Etikett som brukes for responsiv visning av tabellen, typisk samme som kolonneoverskriften
1 (PktTableDataCell)

PktTableDataCell

Innhold
Etikett som brukes for responsiv visning av tabellen, typisk samme som kolonneoverskriften
2 (PktTableDataCell)

PktTableDataCell

Innhold
Etikett som brukes for responsiv visning av tabellen, typisk samme som kolonneoverskriften

Relaterte komponenter

Varianter

Størrelser

StørrelseBeskrivelse
DefaultFor lesbarhet på desktop
CompactNår mange rader må få plass uten horisontal scroll
Størrelser: DefaultStørrelser: Compact

Utseende/skin

SkinBeskrivelse
BasicHvit bakgrunn, grå skillelinjer
ZebraAnnenhver rad med lyseblå/grå bakgrunn for enklere skanning
Utseende: BasicUtseende: Zebra

Retningslinjer for bruk

Bruk table når

  • du skal vise strukturert data i rader og kolonner
  • brukeren må kunne sammenligne flere poster side om side
  • det er behov for sortering, filtrering eller paginering

Unngå table når

  • du bare skal vise én post i detalj (bruk for eksempel card i stedet)
  • dataene blir vanskelig å lese på små skjermer, og en annen visning fungerer bedre
  • du egentlig bare trenger en enkel liste

Skriv tydelige og beskrivende kolonneoverskrifter

Bruk korte og konsise overskrifter som gjør det enkelt å forstå hva kolonnen inneholder.

Gjør slik

Skriv klare og presise kolonneoverskrifter som gjør innholdet lett å forstå

Unngå

Unngå uklare og ufullstendige kolonneoverskrifter som gjør innholdet vanskelig å tolke

Juster innhold riktig

Tekst skal venstrejusteres, mens tall og summeringer bør høyrejusteres for enklere skanning.

Gjør slik

Tabell med venstrejustert tekst og høyrejusterte tall for enkel sammenligning

Unngå

Unngå ulogisk og ulik justering som gjør det vanskelig å skanne innholdet

Responsivitet

Table tilpasser seg tilgjengelig plass og vises ulikt avhengig av skjermstørrelse.

På mobil og små skjermer bygges radene i høyden. Vi anbefaler å unngå horisontal scrolling fordi det kan være forvirrende for brukeren. Dersom du likevel velger å bruke horisontal scroll, bør du alltid teste det nøye på målgruppen.

Table på små skjermer

Universell utforming

Innholdet må gi mening med skjermleser

Alle tabeller skal kodes semantisk med <table>, <thead>, <tbody>, <th> og <td>. Bruk scope for å knytte kolonne- og radoverskrifter til cellene.

Alle handlinger må være tilgjengelige med tastatur

Brukeren skal kunne navigere med “Tab” og “Shift+Tab”, og aktivere elementer med “Enter” eller “Mellomrom”.

Sørg for tydelig kontrast og fokusmarkering

Tekst, linjer og bakgrunn skal ha tilstrekkelig kontrast, og fokus på interaktive elementer skal være synlig.

Bruk caption ved behov

Hvis tabellen trenger en forklarende tittel, bruk <caption> slik at skjermlesere fanger det opp.

Anatomi

ElementBeskrivelse
Tittel (valgfritt)Gir en overskrift som beskriver hva tabellen inneholder
KolonneoverskriftViser hva hver kolonne representerer
CelleinnholdViser data eller handlinger i tabellen
RadGrupperer innhold på tvers av kolonner
Anatomi for Table

Implementasjon i kode

Hvordan ta komponenten i bruk?

import { PktTable } from '@oslokommune/punkt-react';

Egenskaper

Table

PktTable

Props

Prop:
compact?
Type:
boolean
Standardverdi:
false
Beskrivelse:
Skal tabellen vises i kompakt modus?
Prop:
skin?
Type:
"basic" | "zebra-blue"
Standardverdi:
"basic"
Beskrivelse:
Utseendet til tabellen
Prop:
responsiveView?
Type:
boolean
Standardverdi:
true
Beskrivelse:
Skal tabellen vises responsivt? Cellene trenger dataLabel for å få etikett på små skjermer

TableDataCell

PktTableDataCell

Props

Prop:
dataLabel?
Type:
string
Beskrivelse:
Etikett som brukes for responsiv visning av tabellen, typisk samme som kolonneoverskriften

Slots

Slot:
default
Beskrivelse:
Innholdet i tabellcellen