Card
Release dato: 03.10.2024
Sist oppdatert: 20.05.2025
Card (kort) brukes for Ă„ gruppere innhold som hĂžrer sammen, og kan inneholde tekst, bilde, ikon, knapp og lenker, eller en kombinasjon av disse. Card gjĂžr det enklere Ă„ skanne, sammenligne og velge mellom flere elementer.
Test komponenten
Relaterte komponenter
NÄr hele cardet kun skal vÊre en lenke uten fleksibelt innhold.
NÄr du skal vise strukturerte data i kolonner og rader.
NÄr du vil vise en fremhevet melding med ikon og tekst.
Varianter
Card finnes i to hovedvarianter. Du kan kombinere disse med ulike skins og farger.
Layout | Bruk |
---|---|
Portrait | Innhold stables vertikalt, fungerer godt nÄr du legger flere card ved siden av hverandre |
Landscape | NÄr du vil bruke mer av bredden, f.eks. i desktop-visning |
Skin | Bruk |
---|---|
Outlined | NÄr du vil ramme inn uten bakgrunn |
Filled | Full bakgrunnsfarge |
No padding | Fjerner marger inne i cardet |
Bildestil | Bruk |
---|---|
Square | Gir et strammere uttrykk |
Round | Mer lekent, harmonerer med Oslo-profilen |
Retningslinjer for bruk
Bruk card nÄr
- du vil gruppere informasjon
- du trenger oversiktlige valg i grid eller liste
- du Ăžnsker fleksibel visning med eller uten bilde, innhold eller handling
UnngÄ card nÄr
- du bare viser én ting og ikke trenger visuell gruppering
- informasjonen egner seg bedre i ren tekst eller tabell
Tilpass cardet til ditt innholdsbehov
Komponenten er fleksibel, og du kan selv velge om du vil bruke:
- tekst
- tittel
- undertittel
- bilde
- tags over eller under innholdet
- lenker eller knapper
Du kan ogsÄ velge om hele cardet skal vÊre klikkbart.
UnngÄ Ä overlesse cardet. Bruk luft og visuell prioritering. Om du bruker flere card i samme lÞsning, kan det vÊre lurt Ä designe alle like og bruke de samme elementene konsekvent.
GjĂžr slik
UnngÄ
Skriv tydelig og konsist
Innholdet i et card skal vÊre lett Ä skanne. Bruk korte titler og tydelig handling. Hvis cardet er klikkbart, mÄ det vÊre klart hvor det leder, fÞlg regler for god lenketekst.
GjĂžr slik
UnngÄ
Responsivitet
Card tilpasser seg automatisk til ulike skjermstĂžrrelser. Innhold bryter linjer og grid flyter om ved behov.
Landscape-card skaleres automatisk ned til portrait pÄ smÄ skjermer. PÄ mobil anbefaler vi Ä bruke portrait-layout som utgangspunkt, sÊrlig dersom cardsene vises i listevisning.
Vi anbefaler at du uansett tester ulike visningsformer og antall cards i din lĂžsning.
Universell utforming
Card skal kunne brukes og forstÄs av alle, ogsÄ de som bruker tastatur eller skjermleser. Her er noen viktige prinsipper for Ä sikre tilgjengelighet:
Struktur og semantikk
Bruk riktig heading-nivÄ i konteksten der cardet vises, og sÞrg for at alle card pÄ samme nivÄ i lÞsningen ogsÄ benytter samme heading-nivÄ. Dette gir god struktur for skjermlesere og visuell lesing.
Interaktive og ikke-interaktive card
Et card kan enten vĂŠre:
- Interaktivt: hele cardet fungerer som en lenke eller knapp
- Ikke-interaktivt: cardet inneholder klikkbare elementer som knapper eller lenker
UnngÄ Ä blande disse. Ikke legg knapper inne i et kort som allerede er klikkbart - knappen vil vÊre umulig Ä nÄ med musepeker. Kort sagt: én handling per omrÄde.
Tastaturnavigasjon og fokus
Brukeren skal kunne bruke âTabâ for Ă„ navigere:
- I interaktive card: Hele cardet er et tab stop og aktiveres med âEnterâ eller âMellomromâ.
- I ikke-interaktive card: Bare knapper og lenker er fokuserbare
Alle fokuserbare elementer har tydelig visuell fokusindikator. Skriv tydelig lenketekst som skjermleseren forstÄr, les mer om gode lenketekster her.
Les mer om universell utforming av cards:
En praktisk og pedagogisk gjennomgang av hvordan cards kan vĂŠre universelt utformet.
Anatomi
Element | Beskrivelse |
---|---|
1. Label | Overskrift for kortet. Bruk <h3> eller tilsvarende semantikk |
2. BrĂždtekst | Forklarende tekst som utdyper innholdet |
3. Bilde | Illustrasjon eller fotografi (valgfritt) |
4. Handling | Lenke eller knapp for navigasjon eller videre handling, brukes kun dersom ikke hele cardet er klikkbart (valgfritt) |
5. Container | Kortets ramme, med eller uten kantlinje og padding |
Implementasjon i kode
Hvordan ta komponenten i bruk?
import @oslokommune/punkt-elements/dist/pkt-card.js;
import { PktCard } from '@oslokommune/punkt-react';
<script src="https://punkt-cdn.oslo.kommune.no/latest/elements/pkt-card.js" type="module"></script>
Testing
Elements og React: Dersom du skal skrive tester med JSDOM eller liknende er det viktig at du lar komponenten bli rendret ferdig fĂžr du tester den. Dette kan gjĂžres ved Ă„ kjĂžre denne kodelinjen fĂžr testene kjĂžres:
await window.customElements.whenDefined("pkt-card");
Dersom du bruker verktÞyene i punkt-testing-utils sÄ kan dette bli gjort automatisk for deg.
Props og tokens
Prop | Type | Beskrivelse |
---|---|---|
heading | string | Tittel pÄ card |
headingLevel | 1 2 3 4 5 6 | NivÄet pÄ headingen. Brukes for tilgjengelighet. |
subheading | string | Undertittel pÄ card |
layout | vertical horizontal | StÄende/liggende. Portrett/landskap. Horisontal/vertikal. KjÊrt barn⊠|
skin | outlined outlined-beige gray blue beige green | Fargen pÄ card. Velg mellom outlined, outlined-beige, gray, blue, beige og green. |
padding | none default | Skal det vÊre padding pÄ innsiden av card? |
metaLead | string | Undertekst med fet skriftvekt |
metaTrail | string | Undertekst med normal skriftvekt |
tagPosition | top bottom | Plassering av tags i card |
clickCardlink | string | Href sendes inn som streng for Ă„ gjĂžre card klikkbart. Heading brukes som lenktetekst. |
openLinkInNewTab | boolean | Velg denne dersom du Þnsker at lenken i card skal Äpnes i ny fane. |
borderOnHover | boolean | Vi anbefaler hoverborder pÄ klikkbart card. Kan slÄs av ved behov. |
image | object | Bildet pÄ card. Tar inn et objekt av typen {src: string, alt: string}. |
imageShape | square round | Her kan vi velge om bildet i card skal vĂŠre firkantet eller rundt. |
tags | array | Liste av tags pÄ card. Tar inn et array med objekter med fÞlgende stringproperties: skin, iconName, ariaLabel, text |
ariaLabel | string | Tekst til skjermleser for aria-label pÄ card. Settes automatisk til headingen, eller subheadingen der heading ikke eksisterer. |
Slot (children) | Beskrivelse |
---|---|
default | Innholdet i card |