Components
Tooltip
Tooltip displays brief information when the user hovers over or focuses on an element. It is used for secondary information, such as explaining the meaning of an icon.
React
Unable to parse html
const PreviewEn = () => { return ( <Tooltip content='Copy' placement='top'> <Button icon aria-label='Copy'> <FilesIcon aria-hidden /> </Button> </Tooltip> ); }; render(<PreviewEn />)
- 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
Placement- 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. @deprecated This should not be used on Tooltip. Use a Popover instead @TODO Look at this prop
- 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 | Placement | 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. @deprecated This should not be used on Tooltip. Use a Popover instead @TODO Look at this prop |
| 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. |
Usage
Examples
With text
React
Unable to parse html
const WithStringEn = () => { return <Tooltip content='Organisation number'>Org. no.</Tooltip>; }; render(<WithStringEn />)
Placement
Use the placement prop to adjust the placement of the Tooltip.
React
Unable to parse html
const PlacementEn = () => { return ( <Tooltip content='Copy' placement='bottom'> <Button icon aria-label='Copy'> <FilesIcon aria-hidden /> </Button> </Tooltip> ); }; render(<PlacementEn />)
HTML
Use the @digdir/designsystemet-web package to implement Tooltip.
You only need to add the data-tooltip attribute to the element that will trigger the tooltip.
For accessibility, the element will automatically receive either aria-label or aria-description, depending on whether it contains text content.
Custom element
Use the setTooltipElement function to set a custom tooltip element.
The element will auto automatically be added do document.body if it is not already in the document.
CSS variables and data attributes
| Name | Value |
|---|---|
| --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 |
| --dsc-tooltip-placement | top |
| Name | Value |
|---|---|
| data-tooltip | |
| data-overscroll | contain |
| data-floating| | top, right, bottom, left |
| data-floating | bottom, top, left, right |