Hopp til hovedinnhold

Komponenter

Popover

Popover vises over andre elementer i grensesnittet og er koblet til et spesifikt element. Den brukes til å vise tilleggsinformasjon, interaktive elementer eller korte forklaringer uten å navigere bort fra siden.

id
Description

id to connect the trigger with the popover - required when not using Popover.Context.

Type
string
placement
Description

Placement of the popover on the trigger.

Type
Placement
Default
top
open
Description

When a boolean is provided, the popover will be controlled.

Type
boolean
Default
undefined
variant
Description

Change the background color of the popover.

Type
"default" | "tinted"
Default
default
onOpen
Description

Callback when the popover wants to open.

Type
() => void
onClose
Description

Callback when the popover wants to close.

Type
() => void
autoPlacement
Description

Whether to enable auto placement.

Type
boolean
Default
true
asChild
Description

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

Type
boolean
Default
false
NameTypeDefaultDescription
idstring-

id to connect the trigger with the popover - required when not using Popover.Context.

placementPlacementtop

Placement of the popover on the trigger.

openbooleanundefined

When a boolean is provided, the popover will be controlled.

variant"default" | "tinted"default

Change the background color of the popover.

onOpen() => void-

Callback when the popover wants to open.

onClose() => void-

Callback when the popover wants to close.

autoPlacementbooleantrue

Whether to enable auto placement.

asChildbooleanfalse

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

Bruk

React og popovertarget

Når du bruker Popover uten Popover.TriggerContext, kobler du selv sammen utløseren og Popover. Da brukes popovertarget i små bokstaver, slik at alle versjoner av React korrekt gjengir attributtet. Når du bruker @digdir/designsystemet-react utvider vi @types/react-dom til å akseptere dette.

Polyfill

Popover bruker popover (mozilla.org). Dette apiet er klassifisert som Baseline: Newly available (mozilla.org) fra april 2024, da Firefox som siste nettleser la det til. I noen tilfeller kan en oppleve at brukere av ulike grunner er låst til eldre nettleserversjoner, og da kan det være aktuelt å legge til en Popover-Polyfill (github.com) for å sikre at Popover fungerer for alle.

Eksempler

Standard

Inline trigger

Du kan bruke Popover inline i tekst med stiplet understrek:

Kontrollert

Du kan kontrollere når popover er åpen eller lukket:

Uten TriggerContext

Du kan også bruke Popover uten TriggerContext ved å bruke popovertarget:

HTML

Du kan bruke popover i ren HTML ved å bruke popover-attributtet på et element og koble det til en trigger med popovertarget. Klassenvnet ds-popover blir brukt på elementet som er popoveren.

I React bruker vi floating-ui (floating-ui.com) for plassering, og dette er et bibliotek som også kan brukes i rene JavaScript-applikasjoner.

Vi anbefaler å lese om popover (mozilla.org).

data-placement er brukt for å plassere pila riktig. Dette attributtet henger sammen med en "plugin" vi har laget for floating-ui. Den er portabel til andre som bruker floating-ui, og du finner koden på github.com.

Inline popover

Dersom du vil ha triggeren inline i tekst må du fortsatt bruke <button>, men du kan legge på data-popover="inline" for å få riktig styling.

CSS variabler og data-attributter

CSS-variabler
NavnVerdi
--dsc-popover-backgroundvar(--ds-color-surface-default)
--dsc-popover-border-widthvar(--ds-border-width-default)
--dsc-popover-border-stylesolid
--dsc-popover-border-colorvar(--ds-color-border-default)
--dsc-popover-colorvar(--ds-color-text-default)
--dsc-popover-arrow-sizevar(--ds-size-3)
--dsc-popover-border-radiusvar(--ds-border-radius-md)
--dsc-popover-max-width300px
--dsc-popover-paddingvar(--ds-size-3) var(--ds-size-4)
--dsc-popover-box-shadowvar(--ds-shadow-md)
Data-attributter
NavnVerdi
data-placementtop, left, right, bottom
data-variantdefault, tinted
data-popoverinline
Rediger denne siden på github.com (åpnes i ny fane)