Hopp til hovedinnhold

Hva leter du etter?

Prøv å søke etter…

Komponenter

Radio

Radio er et alternativ brukeren kan velge. Bruk flere radio for å vise en liste med alternativer. Brukerne kan bytte mellom alternativene, men kan kun velge ett.

HTML

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

render(<Preview />)

Bruk

Bruk klassen ds-input<input> sammen med type="radio".

For et gyldig form-element 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.

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

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

Eksempel

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.

Inline

Radio kan plasseres horisontalt med flex, men skal som hovedregel plasseres vertikalt.

ReadOnly

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

Radio er en sammensatt komponent som bruker field, label, validation message og input for å lage en radio.

I tillegg har vi en egen useRadioGroup React-hook for å lettere håndtere en gruppe av Radio-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

Radio 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 radio 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-

Radio label

descriptionReactNode-

Description for field

valuestring | number | readonly string[]-

Value of the `input` element

errorReactNode-

Error message for field

variant"outline"-

If outline, the radio will have a border.

aria-labelledbystring-

-

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