Table

Om komponenten

Tabellen er en enkel og stilren tabellkomponent som kan brukes til Ä vise data pÄ en oversiktlig mÄte. Tabellen er som en standard responsiv og vil tilpasse seg skjermstÞrrelsen. Denne funksjonaliteten kan slÄes av.

Tabellen kan brukes i ren HTML med Ä legge pÄ .pkt-table, eller som en komponent i Vue eller React. Dersom tabellen skal brukes i ren html med kun css-klassene, mÄ man huske Ä legge pÄ en av skinsene for Ä fÄ riktig farge.

For nÄ vil tabellen kun endre stil og farge. Senere er tanken Ä legge til mer funksjonalitet som sortering og filtrering i Vue og React komponentene.

Se et mer komplekst eksempel helt nederst.

Varianter

Tabellen kommer i flere varianter som kan brukes for seg selv eller sammen. Disse er:

  • .pkt-table--compact
  • .pkt-table--responsive

Som standard er tabellen satt til Ă„ ha en god del spacing og vĂŠre responsiv. Ønsker man ha mindre padding mellom cellene, kan man bruke .pkt-table--compact klassen eller sette prop’en compact i Vue eller React. Dette kan endres ved Ă„ sette prop-en responsiveView til false for React og Vue.

Kompakt tabell

For Ä fÄ en mer kompakt tabell, kan man bruke klassen .pkt-table--compact eller sette prop-en compact til true for React og Vue. Som en standard, er denne satt til false.

// Ren html med kun stylingklasser
<table class="pkt-table pkt-table--compact">
  ...
</table>
// Vue og React

<PktTable compact> ... </PktTable>

Responsive tabeller

For Ä tilpasse tabeller pÄ smÄ skjermer kan man bruke klassen .pkt-table--responsive. Da vil hver celle stables under hverandre i tillegg til Ä vise kolonnetitler. NÄr skjermstÞrrelsen blir mindre enn 768px (breakpoint: tablet), vil tabellen bli endres til en listevisning av tabellen.

For React og Vue, kan man endre pÄ prop-en responsiveView for Ä velge om man Þnsker en slik responsivitet eller ikke. Som en standard, er denne satt til true.

I mobilvisning, vil flere elementer fungere som normalt ved bruk av wrapperen .pkt-table__celle-wrapper i de fleste nettlesere.

// Ren html med kun stylingklasser
<table class="pkt-table pkt-table--responsive">
  ...
</table>
// Vue og React

<PktTable responsiveView> ... </PktTable>

Farger

Tabellen har to ulike skins: “basic” og “zebra-blue”. Disse kan brukes for Ă„ gi tabellen en spesifikk farge. Disse kan settes ved hjelp av klassen direkte i html eller via props i Vue og React.

  • .pkt-table--basic
  • .pkt-table--zebra-blue
// Ren html med kun stylingklasser
<table class="pkt-table pkt-table--zebra-blue">
  ...
</table>
// Vue og React

<PktTable skin="zebra-blue"> ... </PktTable>

Flere elementer i én celle

For Ä legge til flere elementer i én celle, kan man gruppere elementene i en <span> med klassen .pkt-table--cell-wrapper. Dette vil gi en finere visning av innholdet i cellen. Se eksempel under.

Eksempel med mer fyldig data

Under er et kodeeksempel pÄ en tabell med mer komplekst innhold. Den er responsiv, inneholder flere <Tag>-komponenter, og har et skin kalt basic.

CSS oversikt

I Punkt brukes BEM-styling. Under er Table sin CSS-struktur.

Block:

  • .pkt-table

Elements:

  • .pkt-table__header
  • .pkt-table__body
  • .pkt-table__row
  • .pkt-table__header-cell
  • .pkt-table__data-cell

Modifiers:

  • .pkt-table--basic
  • .pkt-table--zebra-blue
  • .pkt-table--compact
  • .pkt-table--responsive

Props og slots

<Table/>

PropsTypeValidationDefaultDescription
classNamestringStyling klasse
childrenReactNode eller VNode
compactbooleanfalseMindre padding
skinbasic, zebra-bluebasicHvert skin har en egen stil
responsiveViewbooleantrueTilpasser seg mindre skjermer nÄr skjermeen er mindre enn 786px

<TableBody/>, <TableHeader/>, <TableHeaderCell/> og <TableRow/>

PropsTypeValidationDefaultDescription
classNamestring-Styling klasse
childrenReactNode eller VNode-

<TableDataCell>

PropsTypeValidationDefaultDescription
classNamestring-Styling klasse
childrenReactNode eller VNode-
dataLabelstring-Brukes i responsiv visning. MĂ„ settes til kolonnetittelen til tilhĂžrende celleinnhold