Hopp til hovedinnhold

Hva leter du etter?

Prøv å søke etter…

Komponenter

Checkbox

Checkbox gir brukerne mulighet til å velge ett eller flere alternativer. Den kan også brukes i tilfeller der brukeren skal bekrefte noe.

HTML

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

render(<Preview />)

Bruk

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

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

CSS variablar og data-attributter

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

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

Data-attributter
NavnVerdi
data-widthauto
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)

Eksempler

Gruppering

Bruk fieldset for gruppering av flere valg.

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å checkbox 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 opp en checkbox, da vi har en ferdig komponent som tar seg av det meste av logikken og tilstandshåndteringen for oss.

Checkbox er ein samansatt komponent som bruker field, label, validation message og input for å lage ein checkbox.

I tillegg har vi en egen useCheckboxGroup React-hook for å lettere håndtere en gruppe av Checkbox-komponenter.

disabled
Description

Disables element @note Avoid using if possible for accessibility purposes

Type
boolean
readOnly
Description

Toggle `readOnly`

Type
boolean
data-indeterminate
Description

Indeterminate state for checkbox inputs Only works when used inside `Field` component

Type
boolean
Default
false
aria-label
Description

Optional aria-label

Type
string
label
Description

Checkbox label

Type
ReactNode
description
Description

Description for field

Type
ReactNode
value
Description

Value of the `input` element

Type
string | number | readonly string[]
error
Description

Error message for field

Type
ReactNode
variant
Description

If outline, the checkbox will have a border.

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

Disables element @note Avoid using if possible for accessibility purposes

readOnlyboolean-

Toggle `readOnly`

data-indeterminatebooleanfalse

Indeterminate state for checkbox inputs Only works when used inside `Field` component

aria-labelstring-

Optional aria-label

labelReactNode-

Checkbox label

descriptionReactNode-

Description for field

valuestring | number | readonly string[]-

Value of the `input` element

errorReactNode-

Error message for field

variant"outline"-

If outline, the checkbox will have a border.

aria-labelledbystring-

-

Indeterminate checkbox

Bruk useCheckboxGroup for å lage en overordnet checkbox som kan velge eller fjerne alle alternativer i gruppen.

Dette aktiverer en ekstra tilstand, indeterminate, ved siden av checked og unchecked. Den vises med en horisontal strek når én eller flere checkbox er markert i gruppen. Den vises som en vanlig checkbox dersom alle i gruppen har samme tilstand.

Dette aktiveres ved å sette allowIndeterminate: true i getCheckboxProps.

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