Button er en grunnleggende handlingskomponent i Jøkul. Start med én tydelig primærhandling per område, og flytt mindre viktige valg ned i hierarkiet.
Forhåndsvisningen bruker Jøkul sin faktiske CSS fra monopakka `@fremtind/jokul`, og HTML-en følger den samme klassekontrakten som stilpakkene forventer.
Eksemplet under er den primære playgrounden for Button og lar deg styre de Jøkul-definerte propsene direkte.
Hendelsesloggen under playgrounden viser hvilke native events komponenten faktisk fyrer mens du bruker forhåndsvisningen.
import "@fremtind/jokul/styles/core/core.css";
import "@fremtind/jokul/styles/components/button/button.min.css";
import "@fremtind/jokul/styles/components/loader/loader.min.css";
import { Button } from "@fremtind/jokul/button";
export function Example() {
return (
<Button
type="button"
variant="secondary"
>
Send inn
</Button>
);
}
Hendelser
Ingen hendelser fra komponenteksempelet ennå.
Props
Jøkul-props
Props som er definert av Jøkul sitt eget Button-API eller av den polymorfe kontrakten rundt komponenten.
Prop
Type
Standard
Beskrivelse
as
React.ElementType
"button"
Polymorf rendering av knappen som et annet element, for eksempel en lenke når API-et krever det.
variant
"primary" | "secondary" | "tertiary" | "ghost"
"secondary"
Velger visuelt nivå for handlingen.
density
"comfortable" | "compact"
arver layout-density
Overstyrer tettheten for enkeltknappen dersom du ikke vil arve den fra omgivelsene.
loader
{ showLoader: boolean; textDescription: string }
ingen loader
Viser innebygget lasteindikator og krever en tekstlig beskrivelse for skjermlesere.
icon
ReactElement
ingen
Ikoninnhold for knapper som kombinerer tekst og ikon eller rendres som ren ikon-knapp. Jøkul-ikoner fra `@fremtind/jokul/icon` er et naturlig utgangspunkt.
iconPosition
"left" | "right"
"left"
Plasserer ikonet på venstre eller høyre side når `icon` er satt.
React-props
Props som følger den vanlige React-komponentmodellen.
Prop
Type
Standard
Beskrivelse
children
ReactNode
påkrevd når du ikke bruker `icon`
Synlig etikett eller innhold i knappen. Når du bruker ren ikon-knapp styres innholdet via `icon`.
className
string
ingen
Ekstra klasse på rotelementet når du må koble knappen til lokal layout eller sporing.
Native HTML-props
Props som kommer fra det underliggende HTML-elementet når knappen rendres som `button` eller et annet nativt element.
Prop
Type
Standard
Beskrivelse
disabled
boolean
false
Gjør knappen utilgjengelig for aktivering inntil brukeren har fullført nødvendige steg.
type
"button" | "submit" | "reset"
"button"
Definerer hvordan knappen oppfører seg i skjemaer.
href
string
ikke relevant for vanlig knapp
Kommer fra det underliggende elementet når knappen rendres som lenke via `as`.
onClick
(event) => void
ingen handler
Klikkhåndterer for knappvarianter som faktisk utfører en handling i grensesnittet.
ARIA-props
Tilgjengelighetsattributter som kommer fra den underliggende DOM-kontrakten.
Prop
Type
Standard
Beskrivelse
aria-label
string
ingen
Brukes når knappen trenger et eksplisitt tilgjengelig navn, for eksempel hvis den bare viser et ikon.
aria-describedby
string
ingen
Peker til hjelpetekst eller feilmelding som utdyper hva knappen gjør eller hvorfor den er utilgjengelig.
Utfasete props
Gamle Jøkul-props som fortsatt finnes i typen, men bør erstattes av nyere API-er.
Prop
Type
Standard
Beskrivelse
iconLeft
ReactNode
deprecated
Utfaset API. Bruk `icon` sammen med `iconPosition="left"` i stedet.
iconRight
ReactNode
deprecated
Utfaset API. Bruk `icon` sammen med `iconPosition="right"` i stedet.
Migrering fra utfasete props
iconLeft
Utfaset API. Bruk `icon` sammen med `iconPosition="left"` i stedet.