Skip to main content
Version: v6

HTML

Using rich markup content in ReactTooltip.

Raw HTML string APIs such as data-tooltip-html and the html prop are no longer part of the current API. Use tooltip children or the render prop instead so content stays in React rather than being injected as a string.

Using tooltip children​

import { Tooltip } from 'react-tooltip';

<a
data-tooltip-id="my-tooltip-children-html"
>
◕‿‿◕
</a>
<Tooltip id="my-tooltip-children-html">
<div>
<h3>Cool stuff</h3>
<ul>
<li>This is cool</li>
<li>This too</li>
</ul>
</div>
</Tooltip>

◕‿‿◕

Using render for dynamic rich content​

import { Tooltip } from 'react-tooltip';

<a data-tooltip-id="my-tooltip-render">◕‿‿◕</a>
<Tooltip
id="my-tooltip-render"
render={() => (
<div>
Hello
<br />
<s>multiline</s>
<br />
<b>markup</b>
<br />
tooltip
</div>
)}
/>
◕‿‿◕

Security note​

Avoid turning user-supplied strings into markup inside the tooltip. Prefer rendering React nodes directly with children or render.

JSX note​

If you already have JSX, pass it directly to the tooltip instead of converting it to a string.

<a data-tooltip-id="my-tooltip-jsx">◕‿‿◕</a>
<Tooltip id="my-tooltip-jsx">
<div>
I am <b>JSX</b> content
</div>
</Tooltip>