2016-08-02 16:06:46 +08:00
---
category: Components
2022-11-09 12:28:04 +08:00
group: Data Display
2016-08-02 16:06:46 +08:00
title: Tooltip
2024-03-22 14:22:42 +08:00
description: Simple text popup box.
2024-01-29 14:50:36 +08:00
cover: https://mdn.alipayobjects.com/huamei_7uahnr/afts/img/A*9LKlRbWytugAAAAAAAAAAAAADrJ8AQ/original
coverDark: https://mdn.alipayobjects.com/huamei_7uahnr/afts/img/A*bCbPTJ7LQngAAAAAAAAAAAAADrJ8AQ/original
2022-11-09 12:28:04 +08:00
demo:
cols: 2
2016-08-02 16:06:46 +08:00
---
## When To Use
2017-09-18 10:28:22 +08:00
- The tip is shown on mouse enter, and is hidden on mouse leave. The Tooltip doesn't support complex text or operations.
- To provide an explanation of a `button/text/operation` . It's often used instead of the html `title` attribute.
2016-08-02 16:06:46 +08:00
2022-11-09 12:28:04 +08:00
## Examples
2022-11-17 17:31:26 +08:00
<!-- prettier - ignore -->
2022-11-09 12:28:04 +08:00
< code src = "./demo/basic.tsx" > Basic< / code >
< code src = "./demo/placement.tsx" > Placement< / code >
2023-01-19 11:21:05 +08:00
< code src = "./demo/arrow.tsx" > Arrow< / code >
2024-07-11 10:03:12 +08:00
< code src = "./demo/shift.tsx" iframe = "300" > Auto Shift< / code >
2022-11-09 12:28:04 +08:00
< code src = "./demo/auto-adjust-overflow.tsx" debug > Adjust placement automatically< / code >
< code src = "./demo/destroy-tooltip-on-hide.tsx" debug > Destroy tooltip when hidden< / code >
< code src = "./demo/colorful.tsx" > Colorful Tooltip< / code >
< code src = "./demo/render-panel.tsx" debug > _InternalPanelDoNotUseOrYouWillBeFired< / code >
2023-03-05 17:51:19 +08:00
< code src = "./demo/debug.tsx" debug > Debug< / code >
2023-11-09 17:15:21 +08:00
< code src = "./demo/disabled.tsx" > Disabled< / code >
< code src = "./demo/disabled-children.tsx" debug > Disabled children< / code >
2022-11-09 12:28:04 +08:00
2016-08-02 16:06:46 +08:00
## API
2023-08-08 18:27:48 +08:00
Common props ref: [Common props](/docs/react/common-props)
2021-06-25 11:04:00 +08:00
| Property | Description | Type | Default |
| -------- | ----------------------------- | ---------------------------- | ------- |
| title | The text shown in the tooltip | ReactNode \| () => ReactNode | - |
2016-12-22 12:00:57 +08:00
### Common API
The following APIs are shared by Tooltip, Popconfirm, Popover.
2020-05-07 13:57:50 +08:00
| Property | Description | Type | Default | Version |
| --- | --- | --- | --- | --- |
2024-04-30 09:54:21 +08:00
| align | This value will be merged into placement's config, please refer to the settings [dom-align ](https://github.com/yiminghe/dom-align ) | object | - | |
2023-03-05 17:51:19 +08:00
| arrow | Change arrow's visible state and change whether the arrow is pointed at the center of target. | boolean \| { pointAtCenter: boolean } | true | 5.2.0 |
2020-06-17 23:18:14 +08:00
| autoAdjustOverflow | Whether to adjust popup placement automatically when popup is off screen | boolean | true | |
2020-07-02 11:56:48 +08:00
| color | The background color | string | - | 4.3.0 |
2022-08-26 17:17:13 +08:00
| defaultOpen | Whether the floating tooltip card is open by default | boolean | false | 4.23.0 |
2023-02-15 10:21:28 +08:00
| destroyTooltipOnHide | Whether destroy tooltip when hidden | boolean | false | |
2023-09-22 15:45:22 +08:00
| fresh | Tooltip will cache content when it is closed by default. Setting this property will always keep updating | boolean | false | 5.10.0 |
2022-09-22 10:10:29 +08:00
| getPopupContainer | The DOM container of the tip, the default behavior is to create a `div` element in `body` | (triggerNode: HTMLElement) => HTMLElement | () => document.body | |
2020-05-07 13:57:50 +08:00
| mouseEnterDelay | Delay in seconds, before tooltip is shown on mouse enter | number | 0.1 | |
| mouseLeaveDelay | Delay in seconds, before tooltip is hidden on mouse leave | number | 0.1 | |
| overlayClassName | Class name of the tooltip card | string | - | |
| overlayStyle | Style of the tooltip card | object | - | |
2021-06-25 11:04:00 +08:00
| overlayInnerStyle | Style of the tooltip inner content | object | - | |
2020-05-07 13:57:50 +08:00
| placement | The position of the tooltip relative to the target, which can be one of `top` `left` `right` `bottom` `topLeft` `topRight` `bottomLeft` `bottomRight` `leftTop` `leftBottom` `rightTop` `rightBottom` | string | `top` | |
2020-07-02 11:56:48 +08:00
| trigger | Tooltip trigger mode. Could be multiple by passing an array | `hover` \| `focus` \| `click` \| `contextMenu` \| Array< string> | `hover` | |
2022-09-06 14:03:39 +08:00
| open | Whether the floating tooltip card is open or not. Use `visible` under 4.23.0 ([why?](/docs/react/faq#why-open)) | boolean | false | 4.23.0 |
2021-05-07 17:38:45 +08:00
| zIndex | Config `z-index` of Tooltip | number | - | |
2022-09-22 10:10:29 +08:00
| onOpenChange | Callback executed when visibility of the tooltip card is changed | (open: boolean) => void | - | 4.23.0 |
2017-01-22 14:26:46 +08:00
2023-04-11 10:25:24 +08:00
## Design Token
< ComponentTokenTable component = "Tooltip" > < / ComponentTokenTable >
2023-07-25 11:38:38 +08:00
## FAQ
2024-02-19 13:42:05 +08:00
### Why does the warning findDOMNode is deprecated some times appear in strict mode?
2024-02-19 14:43:43 +08:00
This is due to the implementation of `rc-trigger` . `rc-trigger` forces children to accept ref, otherwise it will fall back to findDOMNode, so children need to be native html tags. If not, you need to use `React.forwardRef` transparently passes `ref` to native html tags.
2024-02-19 13:42:05 +08:00
2023-07-25 11:38:38 +08:00
### Why sometime not work on HOC?
2017-01-22 14:26:46 +08:00
2023-07-28 17:39:38 +08:00
Please ensure that the child node of `Tooltip` accepts `onMouseEnter` , `onMouseLeave` , `onPointerEnter` , `onPointerLeave` , `onFocus` , `onClick` events.
2023-07-25 11:38:38 +08:00
### What's the placement logic?
It will follow `placement` config when screen has enough space. And flip when space is not enough (Such as `top` to `bottom` or `topLeft` to `bottomLeft` ). Single direction such as `top` `bottom` `left` `right` will auto shift on the view:
< img alt = "shift" height = "200" src = "https://mdn.alipayobjects.com/huamei_7uahnr/afts/img/A*sxaTTJjLtIMAAAAAAAAAAAAADrJ8AQ/original" / >
When `placement` is set to edge align such as `topLeft` `bottomRight` , it will only do flip but not do shift.
2023-09-22 15:45:22 +08:00
### Why Tooltip not update content when close?
Tooltip will cache content when it is closed to avoid flicker when content is updated:
```jsx
// `title` will not blink when `user` is empty
< Tooltip open = {user} title = {user?.name} / >
```
< div >
< img alt = "no blink" height = "50" src = "https://mdn.alipayobjects.com/huamei_7uahnr/afts/img/A*KVx7QLOYwVsAAAAAAAAAAAAADrJ8AQ/original" / >
< / div >
If need update content when close, you can set `fresh` property ([#44830](https://github.com/ant-design/ant-design/issues/44830)):
```jsx
< Tooltip open = {user} title = {user?.name} fresh / >
```
< div >
< img alt = "no blink" height = "50" src = "https://mdn.alipayobjects.com/huamei_7uahnr/afts/img/A*rUbsR4xWpMsAAAAAAAAAAAAADrJ8AQ/original" / >
< / div >