Switch

Release dato: 31.01.2024

Sist oppdatert: 13.03.2025

En switch (også kalt toggle eller bryter) lar brukeren veksle mellom to mulige tilstander – av eller på. Den brukes for handlinger som får umiddelbar effekt, uten at brukeren må bekrefte eller lagre.

Typiske bruksområder er å skru på varsler, aktivere en funksjon eller slå av en innstilling.

For demo og implementasjonsdetaljer kan du se checkbox.

Eksempler

Med labelPosition kan man legge label til venstre:

Switch kan også presenteres med en skjult label:

Relaterte komponenter

Varianter

Variant

VariantBeskrivelse
StandardNår switch står alene eller i en enkel liste
Med ramme (tile)Når du vil ramme inn en switch visuelt

Type

TypeBeskrivelse
FrittståendeBrukes når konteksten er tydelig, for eksempel i tabeller eller lister
Med tekstBrukes når det er nødvendig å forklare hva som skrus av/på, kan også ha hjelpetekst

Retningslinjer for bruk

Bruk switch når

  • handlingen får umiddelbar effekt når den slås av eller på
  • brukeren forventer en visuell bekreftelse på tilstanden
  • valget gjelder én funksjon eller innstilling

Unngå switch når

  • du trenger bekreftelse eller lagring før endringen trer i kraft (bruk checkbox eller button)
  • brukeren skal kunne velge flere alternativer samtidig (bruk checkbox)
  • brukeren skal velge ett av flere alternativer (bruk radio button)

Bruk switch når endring i tilstanden ikke skal kreve bekreftelse

Bruk switch for binære handlinger som slår en funksjon av eller på umiddelbart. Endringen skal tre i kraft med én gang, uten at brukeren må bekrefte eller lagre. Gi alltid switchen en tydelig ledetekst som forteller hva som blir aktivert eller deaktivert.

Switch skal ikke erstatte knapp

En switch skal ikke brukes til å starte en enkeltstående handling som normalt gjøres med en knapp. For eksempel: “Lagre endringer” bør være en button, ikke en switch.

Gjør slik

Gjør slik – bruk knapp for enkeltstående handlinger
Bruk knapp for handlinger som krever bekreftelse

Unngå

Unngå – switch som erstatning for knapp
Unngå switch som erstatning for knapp

Ledeteksten skal beskrive handlingen

Ledeteksten skal fortelle hva som skrus av eller på, switchen viser statusen. Unngå å legge status direkte inn i teksten.

Gjør slik

Gjør slik – ledetekst beskriver handlingen
Skriv ledetekst som beskriver hva som skrus av eller på

Unngå

Unngå – ledetekst uttrykker status i stedet for handling
Unngå ledetekst som uttrykker status i stedet for handling

Endringen skal ha umiddelbar effekt

En switch skal ikke kreve et ekstra steg for å bekrefte. Effekten skal tre i kraft idet brukeren aktiverer eller deaktiverer bryteren.

Gjør slik

Gjør slik – la endringen tre i kraft umiddelbart
La endringen tre i kraft umiddelbart når switchen aktiveres

Unngå

Unngå – ekstra lagringstrinn etter at switch er brukt
Unngå ekstra lagringstrinn etter at switchen er brukt

Responsivitet

Switch fungerer på alle skjermstørrelser. Den tilpasser seg tilgjengelig plass, og bryteren og eventuell tekst bryter linjer ved behov.

  • at ledetekst og bryter har god avstand og er lett å treffe på mobil
  • at interaksjonen fungerer like godt i stående og liggende visning
  • at skjulte etiketter fungerer på alle skjermlesere

Universell utforming

Switch er egentlig bare en checkbox

Switch er teknisk implementert som en checkbox med role="switch", og følger samme tastaturinteraksjon: “space” aktiverer/deaktiverer.

Bruk alltid ledetekst/etikett

Bruk alltid en etikett (synlig eller skjult) som beskriver hva bryteren gjør (WCAG 2.1: 1.3.1 Info and Relationships, 2.4.6 Headings and Labels). Ved grupper av switcher, bruk fieldset og legend for å gi kontekst.

Switch og skjermleser

Endringen skal annonseres for skjermlesere umiddelbart ved aktivering (WAI-ARIA Switch Pattern).

Anatomi

ElementBeskrivelse
Ledetekst venstre (valgfritt)Kort tekst som beskriver handlingen
SwitchSelve bryteren som endrer tilstand
Ledetekst høyre (valgfritt)Kort tekst som beskriver handlingen
Hjelpetekst (valgfritt)Utfyllende forklaring under ledeteksten

Implementasjon i kode

Se checkbox for implementasjon i kode.

Props og tokens

Se checkbox for egenskaper.

Farger

ElementCSS variabel
Border
Text