Hopp til hovedinnhold

Hva leter du etter?

Prøv å søke etter…

Komponenter

Button

Button lèt brukarane utføre handlingar.

HTML

Trykk Enter for å redigere
Unable to parse html
const Preview = () => {
  return <Button>Min knapp</Button>;
};

render(<Preview />)

Bruk

Klassenavnet ds-button blir satt på <button>.

Det er tre data-attributtar du kan bruke for tilpasning: data-icon - legg på dersom knappen kun har ikon. data-variant - set variant på knappen (primary, secondary, tertiary). data-fullwidth - legg på dersom knappen skal vere full bredde.

CSS variablar og data-attributtar

Størrelsar styrast med data-size og fargar med data-color. Komponenten vil arve næraste forelder med desse satt.

Data-attributter
NavnVerdi
data-variantsecondary, tertiary
data-icon
data-fullwidth
CSS-variabler
NavnVerdi
--dsc-button-background--activevar(--ds-color-base-active)
--dsc-button-background--hovervar(--ds-color-base-hover)
--dsc-button-backgroundvar(--ds-color-base-default)
--dsc-button-colorvar(--ds-color-base-contrast-default)
--dsc-button-color--hovervar(--ds-color-base-contrast-default)
--dsc-button-border-widthvar(--ds-border-width-default)
--dsc-button-border-stylesolid
--dsc-button-border-colortransparent
--dsc-button-gapvar(--ds-size-2)
--dsc-button-paddingvar(--ds-size-2) var(--ds-size-4)
--dsc-button-sizevar(--ds-size-12)

Eksempel

Varianter

variant brukast for å endre utsjånad på knappen.

Ikon

Dersom du har kun ikon i knappen kan du sette data-icon="true" for å få den firkanta. Har du anna innhald, som tekst, vil knappen automatisk få luft rundt ikonet.

Knappar som lastar

Dersom du skal ha ein knapp som laster, må du sjølv legge til laste-indikator.

Merk: Verken aria-busy eller aria-disabled hindrar automatisk at knappen utløyser onClick. Du må sjølv sørgje for at callback-funksjonen ikkje køyrer når knappen er deaktivert.

React

I React legg me også på type="button" som standard, for å unngå uventa submit i skjema.

variant
Description

Specify which variant to use

Type
"primary" | "secondary" | "tertiary"
Default
primary
icon
Description

Toggle icon only styling, pass icon as children When combined with loading, the loading-icon will be shown instead of the icon.

Type
boolean
Default
false
loading
Description

Toggle loading state. Pass an element if you want to display a custom loader.

Type
ReactNode
Default
false
asChild
Description

Change the default rendered element for the one passed as a child, merging their props and behavior.

Type
boolean
Default
false
type
Description

Specify the type of button. Unset when `asChild` is true

Type
"button" | "submit" | "reset"
Default
'button'
command
Description

Native invoker commands. Specifies actions to perform on an element specified by commandfor. Polyfilled by designsystemet-web and includes a custom --show-non-modal command. "show-modal", "close", "request-close", "show-popover", "hide-popover", "toggle-popover", "--show-non-modal"

Type
string
commandfor
Description

Specifies the target element for "command". value is ID of target

Type
string
commandFor
Type
string
NameTypeDefaultDescription
variant"primary" | "secondary" | "tertiary"primary

Specify which variant to use

iconbooleanfalse

Toggle icon only styling, pass icon as children When combined with loading, the loading-icon will be shown instead of the icon.

loadingReactNodefalse

Toggle loading state. Pass an element if you want to display a custom loader.

asChildbooleanfalse

Change the default rendered element for the one passed as a child, merging their props and behavior.

type"button" | "submit" | "reset"'button'

Specify the type of button. Unset when `asChild` is true

commandstring-

Native invoker commands. Specifies actions to perform on an element specified by commandfor. Polyfilled by designsystemet-web and includes a custom --show-non-modal command. "show-modal", "close", "request-close", "show-popover", "hide-popover", "toggle-popover", "--show-non-modal"

commandforstring-

Specifies the target element for "command". value is ID of target

commandForstring-

-

Ekstra logikk for knappar som lastar

I React brukar me loading={true} for å vise at knappen lastar noko. Her kan du også sende inn din eigen loading-komponent dersom vår Spinner ikkje passar.

I eksempelet over blir aria-disabled sett automatisk når loading={true}. Dette er den anbefalte måten å vise at ein knapp er deaktivert på. Då kan knappen framleis få fokus når brukaren navigerer med tastatur. Slik blir skjermlesarar og andre hjelpemiddel informerte om at knappen finst, men at han ikkje er aktiv.

Knapp som lenkje

Lenker kan få utsjånad som ein knapp, men vurder først om det er betre å bruke Link-komponenten. For å endre knappen til ei lenkje brukast asChild. Les meir om komposisjon i Designsystemet.

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