Modal

Denne komponenten er under aktiv utvikling, og vi trenger din feedback!

Er du eventyrlysten, test den og kom med innspill til oss på Slack.

Om komponenten

En modal er en dialogtype, som avbryter en brukerflyt for å be om brukerens input som er nødvendig for å fullføre en oppgave, eller for å gi brukeren viktig informasjon. Modaler brukes ofte til å formidle en konsekvens av en brukers handling.

Når modalen er åpen, blokkeres brukeren fra innholdet på siden og kan ikke gå tilbake til sin forrige arbeidsflyt før modaloppgaven er fullført, eller brukeren lukker modalen.

Egnet til:

  • For å varsle brukeren om relevant informasjon knyttet til hovedoppgaven.
  • For å bekrefte en brukers avgjørelse. Beskriv tydelig handlingen som bekreftes og forklar eventuelle konsekvenser den kan forårsake. Både tittelen og knappen skal gjenspeile handlingen som vil skje - i hvert fall hvis handlingen er destruktiv eller irreversibel.

Uegnet til:

  • Selv om en modal er effektiv når den brukes riktig, bør den likevel brukes sparsomt for å begrense forstyrrelse for brukeren. Hvis brukeren må utføre en oppgave gjentatte ganger, bør du ikke bruke modal.
  • Det skal ikke plasseres et helt skjema i en modal. Ett skjemaelement er greit.

Relaterte komponenter

Divider

Eksempel

En modal skal alltid ha en tittel, denne defineres ved å sette slot="title" på øverste headingen i modalen.

<UNSAFE_DialogTrigger>
  <Button>Åpne</Button>
  <UNSAFE_Modal>
    <UNSAFE_Dialog>
      <Heading slot="title" level={2}>
        Hvitevarer
      </Heading>
      <p>
        Denne boligen har tilvalg om hvitevarer fra HTH. Mulighet for
        vaskemaskin, tørketrommel, oppvaskmaskin eller å avstå dette
        tilbudet.
      </p>
    </UNSAFE_Dialog>
  </UNSAFE_Modal>
</UNSAFE_DialogTrigger>

Modal kan rendres med en eller flere knapper som gjør at modalen lukker seg. For å få denne oppførseln må man sette slot="close" på knappen

<UNSAFE_DialogTrigger>
  <Button>Åpne</Button>
  <UNSAFE_Modal>
    <UNSAFE_Dialog>
      <Heading slot="title" level={2}>
        Hvitevarer
      </Heading>
      <p>
        Denne boligen har tilvalg om hvitevarer fra HTH. Mulighet for
        vaskemaskin, tørketrommel, oppvaskmaskin eller å avstå dette
        tilbudet.
      </p>
      <Footer>
        <Button onPress={() => console.log('SAVED!')} slot="close">
          Lagre
        </Button>
        <Button variant="tertiary" slot="close">
          Avbryt
        </Button>
      </Footer>
    </UNSAFE_Dialog>
  </UNSAFE_Modal>
</UNSAFE_DialogTrigger>

Props

DialogTrigger

PropDescriptionDefault
children?-
isOpen?-
defaultOpen?-
Events
onOpenChange?-
PropDescriptionDefault
children?-
shouldCloseOnInteractOutside?-
isEntering?Whether the modal is currently performing an entry animation.-
isExiting?Whether the modal is currently performing an exit animation.-
isKeyboardDismissDisabled?Whether pressing the escape key to close the modal should be disabled.false
isOpen?-
defaultOpen?-
zIndex?10
isDismissable?true
Events
onOpenChange?-
Styles
className?'react-aria-Form'
style?-

Dialog

PropDescriptionDefault
children?-
Styles
className?'react-aria-Form'
style?-
Accessibility
role?The accessibility role for the dialog.'dialog'
id?-
aria-label?-
aria-labelledby?-
aria-describedby?-
aria-details?-