Komponenter
Tooltip
Tooltip viser kort informasjon når brukeren holder musepekeren over eller fokuserer på et element. Den brukes til sekundær informasjon, for eksempel til å forklare hva et symbol betyr.
React
const Preview = () => { return ( <Tooltip content='Kopier' placement='top'> <Button icon aria-label='Kopier'> <FilesIcon aria-hidden /> </Button> </Tooltip> ); }; render(<Preview />)
- children
- Description
The element or string that triggers the tooltip. @note If it is a string, it will be wrapped in a span. @note If it is an element, it needs to be able to receive a ref.
- Type
string | (ReactElement<unknown, string | JSXElementConstructor<any>> & RefAttributes<HTMLElement>)
- content
- Description
Content of the tooltip
- Type
string
- placement
- Description
Placement of the tooltip on the trigger.
- Type
"top" | "right" | "bottom" | "left"- Default
top
- autoPlacement
- Description
Whether to enable auto placement.
- Type
boolean- Default
true
- open
- Description
Whether the tooltip is open or not. This overrides the internal state of the tooltip.
- Type
boolean
- type
- Description
Override if `aria-describedby` or `aria-labelledby` is used. By default, if the trigger element has no inner text, `aria-labelledby` is used.
- Type
"describedby" | "labelledby"
| Name | Type | Default | Description |
|---|---|---|---|
| children | string | (ReactElement<unknown, string | JSXElementConstructor<any>> & RefAttributes<HTMLElement>) | - | The element or string that triggers the tooltip. @note If it is a string, it will be wrapped in a span. @note If it is an element, it needs to be able to receive a ref. |
| content | string | - | Content of the tooltip |
| placement | "top" | "right" | "bottom" | "left" | top | Placement of the tooltip on the trigger. |
| autoPlacement | boolean | true | Whether to enable auto placement. |
| open | boolean | - | Whether the tooltip is open or not. This overrides the internal state of the tooltip. |
| type | "describedby" | "labelledby" | - | Override if `aria-describedby` or `aria-labelledby` is used. By default, if the trigger element has no inner text, `aria-labelledby` is used. |
Bruk
Eksempel
Med tekst
React
const WithString = () => { return <Tooltip content='Organisasjonsnummer'>Org.nr.</Tooltip>; }; render(<WithString />)
Plassering
Bruk placement-prop'en for å justere plasseringen av Tooltip.
React
const Placement = () => { return ( <Tooltip content='Kopier' placement='bottom'> <Button icon aria-label='Kopier'> <FilesIcon aria-hidden /> </Button> </Tooltip> ); }; render(<Placement />)
HTML
Tooltip bruker en manuell popover (mozilla.org).
Du må selv koble på at hover åpner, fokusering åpner og at den lukkes igjen ved tap av fokus, hover eller Esc.
I React bruker vi floating-ui (floating-ui.com) for plassering, og dette er et bibliotek som også kan brukes i rene JavaScript-applikasjoner.
For å style popoveren som en Tooltip, brukes klassen ds-tooltip.
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.
CSS variablar og data-attributter
| Navn | Verdi |
|---|---|
| --dsc-tooltip-background | var(--ds-color-neutral-text-default) |
| --dsc-tooltip-color | var(--ds-color-neutral-background-default) |
| --dsc-tooltip-border-radius | var(--ds-border-radius-default) |
| --dsc-tooltip-padding | var(--ds-size-1) var(--ds-size-2) |
| --dsc-tooltip-arrow-size | var(--ds-size-2) |
| --dsc-tooltip-transition-duration | 0.2s |
| --dsc-tooltip-transition-delay | 150ms |
Ingen relevante data-attributter funnet.
Rediger denne siden på github.com (åpnes i ny fane)