Checkbox

Kildekode på GitHub · Les som Markdown

Checkbox er en avkryssingsboks for binære valg. Til forskjell fra Switch er den ment for skjemaer der endringen ikke trer i kraft umiddelbart, men først ved innsending. Bygget på Radix UI Checkbox.

Importering

import { Checkbox } from "@kilden/designsystem";

Grunnleggende bruk

<div style={{ display: "flex", alignItems: "center", gap: "0.5rem" }}>
<Checkbox id="terms" />
<Label htmlFor="terms">Jeg godtar vilkårene</Label>
</div>

Flere checkboxer

<div style={{ display: "grid", gap: "0.75rem" }}>
<div style={{ display: "flex", alignItems: "center", gap: "0.5rem" }}>
  <Checkbox id="email-notif" defaultChecked />
  <Label htmlFor="email-notif">E-postvarsler</Label>
</div>
<div style={{ display: "flex", alignItems: "center", gap: "0.5rem" }}>
  <Checkbox id="sms-notif" />
  <Label htmlFor="sms-notif">SMS-varsler</Label>
</div>
<div style={{ display: "flex", alignItems: "center", gap: "0.5rem" }}>
  <Checkbox id="push-notif" defaultChecked />
  <Label htmlFor="push-notif">Push-varsler</Label>
</div>
</div>

Med FormField

<FormField>
<div style={{ display: "flex", alignItems: "center", gap: "0.5rem" }}>
  <Checkbox id="newsletter" />
  <Label htmlFor="newsletter">Meld meg på nyhetsbrevet</Label>
</div>
<FormDescription>Du kan melde deg av når som helst.</FormDescription>
</FormField>

Deaktivert

<div style={{ display: "grid", gap: "0.75rem" }}>
<div style={{ display: "flex", alignItems: "center", gap: "0.5rem" }}>
  <Checkbox id="disabled-unchecked" disabled />
  <Label htmlFor="disabled-unchecked" style={{ opacity: 0.5 }}>Deaktivert (av)</Label>
</div>
<div style={{ display: "flex", alignItems: "center", gap: "0.5rem" }}>
  <Checkbox id="disabled-checked" disabled defaultChecked />
  <Label htmlFor="disabled-checked" style={{ opacity: 0.5 }}>Deaktivert (på)</Label>
</div>
</div>

Bruksanbefalinger

Bruk i skjemaer med lagre-knapp

Checkbox passer for valg som sendes inn med et skjema, som samtykke, preferanser eller flervalg.

Ikke bruk for umiddelbare endringer

For innstillinger som trer i kraft med en gang (mørk modus, varsler av/på), bruk Switch i stedet.

Bruk for flervalg

Når brukeren kan velge flere alternativer fra en liste, bruk checkboxer.

Ikke bruk for enkeltvalg mellom alternativer

Når brukeren skal velge ett alternativ fra en liste, bruk RadioGroup eller Select.

Tilgjengelighet

  • Space toggler checkboxen
  • Støtter checked, unchecked og indeterminate tilstander
  • Kobles til label via id/htmlFor
  • Deaktivert tilstand kommuniseres via aria-disabled

Props

PropTypeDefaultBeskrivelse
checkedboolean | "indeterminate"Kontrollert tilstand
defaultCheckedbooleanfalseStarttilstand (ukontrollert)
onCheckedChange(checked: boolean | "indeterminate") => voidKalles når tilstanden endres
disabledbooleanfalseDeaktiver checkboxen
requiredbooleanfalseMarker som påkrevd i skjema
namestringNavn for skjemainnsending
valuestring"on"Verdi som sendes ved skjemainnsending