Hopp til hovedinnhold

Hva leter du etter?

Prøv å søke etter…

Komponenter

Switch

Switch lar brukerne velge mellom to alternativer ved å slå noe av eller på.

HTML

Trykk Enter for å redigere
Unable to parse html
const Preview = () => {
  return <Switch label='Switch' />;
};

render(<Preview />)

Bruk

Bruk klassenavnet ds-input<input> sammen med type="checkbox" og role="switch".

For et gyldig skjemaelement anbefaler vi å bruke <ds-field> sammen med en <label>.

CSS variabler og data-attributter

Størrelser styres med data-size og farger med data-color. Komponenten vil arve nærmeste forelder med disse satt.

Switch er ds-input med type="checkbox" så variabler og data-attributter som gjelder for input gjelder også for switch.

CSS-variabler
NavnVerdi
--dsc-input-padding-blockvar(--ds-size-2)
--dsc-input-padding-inlinevar(--ds-size-3)
--dsc-input-paddingvar(--dsc-input-padding-block) var(--dsc-input-padding-inline)
--dsc-input-size--togglevar(--ds-size-6)
--dsc-input-sizevar(--ds-size-12)
--dsc-input-background--readonlyvar(--ds-color-neutral-surface-tinted)
--dsc-input-backgroundvar(--ds-color-neutral-surface-default)
--dsc-input-border-color--readonlyvar(--ds-color-neutral-border-subtle)
--dsc-input-border-colorvar(--ds-color-neutral-border-default)
--dsc-input-border-stylesolid
--dsc-input-border-width--togglemax(var(--ds-border-width-default),calc(var(--ds-size-1)/2))
--dsc-input-border-widthvar(--ds-border-width-default)
--dsc-input-outline-color--hovervar(--ds-color-neutral-border-default)
--dsc-input-outline-color--toggle--hovervar(--dsc-input-accent-color)
--dsc-input-outline-width--hovervar(--ds-border-width-default)
--dsc-input-outline-style--hoversolid
--dsc-input-color--readonlyvar(--ds-color-neutral-text-default)
--dsc-input-colorvar(--ds-color-neutral-text-default)
--dsc-input-stroke-colorvar(--ds-color-base-contrast-default)
--dsc-input-stroke-color--invalidvar(--ds-color-danger-base-contrast-default)
--dsc-input-stroke-width0.05em
--dsc-input-accent-colorvar(--ds-color-base-default)
--dsc-input-accent-color--invalidvar(--ds-color-danger-text-subtle)
--dsc-input-line-heightvar(--ds-line-height-md)
Data-attributter
NavnVerdi
data-widthauto

Høyrejustert

Ønsker du å høyrejustere switch legger du data-position="end"<ds-field>.

Outline

data-variant="outline" legger på ekstra padding og en ramme rundt valget slik at det blir en større klikkflate.

Readonly

type="checkbox" er alltid :read-only, og har ikke støtte for dette på samme måte som input-typer du kan skrive i.

Dersom du setter readonly på switch sørger vi for at den oppfører seg som om den kun har lesetilgang, ved å stoppe onClick og onChange.

Brukeren vil fortsatt kunne fokusere på elementet.

React

I React er det enklere å bygge en switch, fordi vi har en ferdiglaget komponent som håndterer det meste av logikken og tilstandshåndteringen for oss.

Switch er en sammensatt komponent som bruker field, label, og input for å lage en switch.

aria-label
Description

Optional aria-label

Type
string
label
Description

Switch label

Type
ReactNode
description
Description

Description for field

Type
ReactNode
value
Description

Value of the `input` element

Type
string | number | readonly string[]
position
Description

Position of switch

Type
"start" | "end"
Default
start
variant
Description

If outline, the switch will have a border.

Type
"outline"
aria-labelledby
Type
string
NameTypeDefaultDescription
aria-labelstring-

Optional aria-label

labelReactNode-

Switch label

descriptionReactNode-

Description for field

valuestring | number | readonly string[]-

Value of the `input` element

position"start" | "end"start

Position of switch

variant"outline"-

If outline, the switch will have a border.

aria-labelledbystring-

-

Rediger denne siden på github.com (åpnes i ny fane)