Table
Intro
Tabeller brukes til å organisere og vise data på en strukturert måte.
Eksempler
Medium er standardstørrelsen på både eksterne og interne flater.
Small brukes på interne flater der det er behov for et mer komprimert grensesnitt.
Rader kan utvides for å vise ekstra informasjon. Man kan velge om knappen for å utvide/lukke vises i starten eller enden av raden.
Retningslinjer
Justering av innhold
Alt bør være venstrejustert, unntatt tall, som bør høyrejusteres for å gjøre det enklere å sammenligne tallene.
Meny
Bruk ActionMenu dersom det er flere handlinger i en tabellrad. Dette gir en ryddigere tabell og sparer plass.
Overskriftceller
Bruk <th>
og ikke <td>
i alle overskriftceller. I Aksel-APIet betyr det at du som regel skal bruke <Table.HeaderCell>
i stedet for <Table.DataCell>
i første rad og kolonne. Se kodeeksemplene.
Tilgjengelighet
Ulike skjermlesere håndterer tabeller litt forskjellig, men felles er at bare en liten del av tabellen kan presenteres av gangen: ofte bare én celle. Det er en fordel at tabellceller ikke slås sammen, og at cellene ikke inneholder mer enn ett interaktivt element. Det er viktig å bruke rad- og kolonneoverskrifter (<th>
). Unntaket er kolonner som kun inneholder interaktive elementer, som skal ha label. (Se eksempel "Selectable".)
Jaws med standardinnstillinger, som er ganske tilsvarende andre skjermlesere, fungerer slik:
Du bør lære deg tastene for å navigere i tabeller hvis du skal teste. De enkleste kommandoene er:
Spesielt Jaws har veldig mange innstillinger for tabeller. Skal du sikre at du tester på riktig måte kan det være nødvendig å kjenne til innstillingene i de ulike skjermleserne.
Caption
For skjermlesere er det en fordel å ha en <caption>
. Denne vises hvis du hopper til tabellen eller viser en liste over tabeller. Dette er ekstra viktig hvis du har mange tabeller på samme side.
Props
Table
size?
- Type:
"medium" | "small" | "large"
- Default:"medium"
- Description:
zebraStripes?
- Type:
boolean
- Default:false
- Description:
stickyHeader?
- Type:
boolean
- Default:false
- Description:
sort?
- Type:
SortState
- Description:
onSortChange?
- Type:
((sortKey: string) => void)
- Description:
className?
- Type:
string
data-color?
- Type:
(string & {}) | AkselColor
ref?
- Type:
LegacyRef<HTMLTableElement>
- Description:
Table.Body
className?
- Type:
string
data-color?
- Type:
(string & {}) | AkselColor
ref?
- Type:
LegacyRef<HTMLTableSectionElement>
- Description:
Table.ColumnHeader
sortKey?
- Type:
string
- Description:
sortable?
- Type:
boolean
- Default:false
- Description:
scope?
- Type:
string
align?
- Type:
"left" | "center" | "right"
- Default:"left"
- Description:
textSize?
- Type:
"medium" | "small"
- Description:
className?
- Type:
string
data-color?
- Type:
(string & {}) | AkselColor
ref?
- Type:
LegacyRef<HTMLTableCellElement>
- Description:
Table.Header
className?
- Type:
string
data-color?
- Type:
(string & {}) | AkselColor
ref?
- Type:
LegacyRef<HTMLTableSectionElement>
- Description:
Table.Row
selected?
- Type:
boolean
- Default:false
- Description:
shadeOnHover?
- Type:
boolean
- Default:true
- Description:
className?
- Type:
string
data-color?
- Type:
(string & {}) | AkselColor
ref?
- Type:
LegacyRef<HTMLTableRowElement>
- Description:
Table.DataCell
align?
- Type:
"left" | "center" | "right"
- Default:"left"
- Description:
textSize?
- Type:
"medium" | "small"
- Description:
className?
- Type:
string
data-color?
- Type:
(string & {}) | AkselColor
ref?
- Type:
LegacyRef<HTMLTableCellElement>
- Description:
Table.HeaderCell
scope?
- Type:
string
align?
- Type:
"left" | "center" | "right"
- Default:"left"
- Description:
textSize?
- Type:
"medium" | "small"
- Description:
className?
- Type:
string
data-color?
- Type:
(string & {}) | AkselColor
ref?
- Type:
LegacyRef<HTMLTableCellElement>
- Description:
Table.ExpandableRow
content
- Type:
ReactNode
- Description:
togglePlacement?
- Type:
"left" | "right"
- Default:left
- Description:
open?
- Type:
boolean
- Description:
defaultOpen?
- Type:
boolean
- Default:false
- Description:
onOpenChange?
- Type:
((open: boolean) => void)
- Description:
expansionDisabled?
- Type:
boolean
- Default:false
- Description:
expandOnRowClick?
- Type:
boolean
- Default:false
- Description:
colSpan?
- Type:
number
- Default:999
- Description:
contentGutter?
- Type:
"left" | "right" | "none"
- Default:Same as `togglePlacement`
- Description:
selected?
- Type:
boolean
- Default:false
- Description:
shadeOnHover?
- Type:
boolean
- Default:true
- Description:
className?
- Type:
string
data-color?
- Type:
(string & {}) | AkselColor
ref?
- Type:
LegacyRef<HTMLTableRowElement>
- Description: