Button
Release dato: 13.03.2023
Sist oppdatert: 07.07.2025
Button lar brukeren utfĂžre en handling, for eksempel Ă„ sende inn et skjema, starte en prosess eller navigere videre. Den skal vĂŠre tydelig, gi god tilbakemelding og plasseres der handlingen hĂžrer hjemme.
Test komponenten
Relaterte komponenter
NÄr brukeren skal navigere til en ny side.
NÄr du bare skal vise en status eller kategori.
NÄr brukeren skal tilbake til et tidligere steg.
Varianter
Skins
Buttons i Punkt har 3 ulike varianter (skins) og 3 ulike stĂžrrelser.
Skin | Bruk |
---|---|
Primary | Hovedhandling pÄ siden. Brukes én gang per flate |
Secondary | For alternative eller mindre viktige handlinger |
Tertiary | NÄr button ikke skal ta oppmerksomhet, f.eks. «Avbryt» |
StĂžrrelser
Button kan ogsÄ brukes i tre ulike stÞrrelser:
StĂžrrelse | Bruk |
---|---|
Small | For trange flater, som tabeller |
Medium (default) | Standard, og skal brukes som hovedregel |
Large | For ekstra oppmerksomhet |
Farger
Button har ogsÄ flere mulige farger. Vi anbefaler Ä bruke standardfargen OsloblÄ, men du kan spe pÄ med andre farger i spesielle tilfeller.
Farge | Bruk |
---|---|
Blue | Standardfarge. Bruk denne sÄ ofte som mulig |
Blue outline | For spesielle tilfeller, bruk med mÄte |
Green | For Ä bekrefte suksess, f.eks. «FullfÞr» |
Green outline | For spesielle tilfeller, bruk med mÄte |
Dark green | For spesielle tilfeller, bruk med mÄte |
Darg green outline | For spesielle tilfeller, bruk med mÄte |
Light beige | For spesielle tilfeller, bruk med mÄte |
Dark beige outline | For spesielle tilfeller, bruk med mÄte |
Yellow | For spesielle tilfeller, bruk med mÄte |
Yellow outline | For spesielle tilfeller, bruk med mÄte |
Red | For destruktive handlinger, som «Slett» |
Red outline | For spesielle tilfeller, bruk med mÄte |
Variant | Bruk |
---|---|
Label only | Kun tekst |
Icon right | Tekst + ikon til hĂžyre |
Icon left | Tekst + ikon til venstre |
Icon right and left | Tekst + ikon til hĂžyre og til venstre |
Icon only | Kun ikon, unngÄ bruk med mindre noe annet er mulig |
Retningslinjer for bruk
Bruk button nÄr
- brukeren skal utfÞre en konkret handling pÄ siden
- handlingen ikke innebÊrer Ä gÄ til en ny side
UnngÄ button nÄr
- handlingen er navigasjon til en ny side (bruk da heller en lenke)
- du vil vise status eller informasjon (bruk tag eller tabs)
Forskjellen mellom button og link
En tommelfingerregel er Ă„ skille mellom funksjonen til link og button:
- Bruk link nÄr brukeren skal komme til en ny side
- Bruk button nÄr brukerne skal utfÞre en konkret handling: logg inn, send, last opp osv.
Med det sagt, sÄ er ikke dette noe som er satt i stein. Det vil vÊre tilfeller der en button fungerer bedre enn en lenke selvom brukeren navigerer til en ny side, f.eks dersom det kun er én primÊrhandling brukeren kan gjÞre pÄ den aktuelle siden.
Skriv tydelige tekster
Teksten i button skal vĂŠre sĂ„ enkel og tydelig som mulig. Bruk aktivt sprĂ„k, gjerne verb i imperativ, og maks to â tre ord. Husk at teksten skal forklare hva som skjer.
GjĂžr slik
UnngÄ
Button er merkevarebĂŠrende
Buttons er noe av det brukeren legger mest merke til i en lÞsning. De signaliserer ikke bare handling, men ogsÄ stil og tone. Derfor er det viktig Ä bruke farger og former som stÞtter Oslos visuelle identitet og gir en gjenkjennelig opplevelse.
Bruk primÊrfargen (mÞrkeblÄ) som hovedregel. UnngÄ Ä bruke sterke farger som grÞnn, rÞd og gul hvis det ikke er nÞdvendig. Disse fargene skal kun brukes for Ä understÞtte et tydelig budskap, ikke for variasjon.
I Oslo kommunes lÞsninger bruker vi ikke buttons med avrundede hjÞrner. Formen skal vÊre tydelig, enkel og i trÄd med Oslo-profilen.
GjĂžr slik
UnngÄ
Responsivitet
Button tilpasser seg tilgjengelig plass og innhold. PÄ smÄ skjermer anbefaler vi Ä bruke fullbredde for Ä sikre god trykkflate.
UnngÄ mange buttons pÄ én rad. Da bÞr de stables vertikalt.
Universell utforming
Button skal fungere for alle brukere, derfor er det viktig at button
- er tilgjengelig med med tastaturnavigering og aktiveres med âEnterâ eller âSpaceâ
- viser tydelig fokusmarkering nÄr den er aktiv
UnngÄ deaktiverte buttons
Brukere forstÄr ofte ikke hvorfor en button er deaktivert. Derfor anbefaler vi Ä heller vise en feilmelding eller en hjelpetekst, enn Ä bruke disabled button.
Hvis du mÄ deaktivere en button, mÄ det vÊre tydelig for brukeren hvorfor den er deaktivert og hva som mÄ til for Ä aktivere den igjen.
Mer om universell utforming av buttons:
Tips og rÄd for hvordan du skriver tydelige og forstÄelige knappetekster i digitale lÞsninger.
En praktisk gjennomgang av kravene til minimumsstĂžrrelse for trykkbare elementer.
Anatomi
Element | Beskrivelse |
---|---|
1. Bakgrunn | Bakgrunnsfarge (evt. outline) |
2. Tekst (valgfritt) | Forklarer handlingen |
3. Ikon (valgfritt) | Kan stÄ uten, foran eller etter tekst |
Implementasjon i kode
Hvordan ta komponenten i bruk?
import @oslokommune/punkt-elements/dist/pkt-button.js;
import { PktButton } from '@oslokommune/punkt-react';
<script src="https://punkt-cdn.oslo.kommune.no/latest/elements/pkt-button.js" type="module"></script>
Testing
Elements: 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-button");
Overstyring av sti til loading-animasjon
I likhet med Icon-komponentens overstyring av sti til ikoner kan man overstyre stien til loading-animasjonen globalt ved Ă„ sette sti i window.pktAnimationPath
.
Props og tokens
Prop | Type | Beskrivelse |
---|---|---|
size | small medium large | Knappens stĂžrrelse |
skin | primary secondary tertiary | Er knappen primĂŠr, sekundĂŠr eller tertiĂŠr? |
type | button submit reset | Hvilken type knapp er dette? |
color | blue blue-outline green green-outline green-dark green-dark-outline beige-light beige-dark-outline yellow yellow-outline red red-outline | Denne verdien overstyrer âskinâ/utseende |
state | normal focus hover active | Her kan vi forhÄndsvise knappens tilstander |
variant | label-only icon-left icon-right icon-only icons-right-and-left | Med eller uten ikon eller tekst |
iconName | icon | Navn pÄ ikonet som skal vises |
secondIconName | icon | Navn pÄ det andre ikonet som skal vises |
isLoading | boolean | Spinner for Ă„ vise at knappen er opptatt |
disabled | boolean | Deaktiverer knappen |
Slot (children) | Beskrivelse |
---|---|
default | Innholdet i knappen |
Event | Beskrivelse |
---|---|
onClick | Klikk-event for knappen |