Skip to content


Tooltips display informative text when users hover over, focus on, or tap an element.

When activated, Tooltips display a text label identifying an element, such as a description of its function.

Simple Tooltips

Positioned Tooltips

The Tooltip has 12 placements choice. They don’t have directional arrows; instead, they rely on motion emanating from the source to convey direction.

Customized tooltips

Here are some examples of customizing the component. You can learn more about this in the overrides documentation page.

Custom child element

The tooltip needs to apply DOM event listeners to its child element. If the child is a custom React element, you need to make sure that it spreads its properties to the underlying DOM element.

function MyComponent(props) {
  // We spread the properties to the underlying DOM element.
  return <div {...props}>Bin</div>

// ...

<Tooltip title="Delete">

You can find a similar concept in the wrapping components guide.


You can define the types of events that cause a tooltip to show.

Controlled Tooltips

You can use the open, onOpen and onClose properties to control the behavior of the tooltip.

Variable Width

The Tooltip wraps long text by default to make it readable.


A tooltip can be interactive. It won't close when the user hovers over the tooltip before the leaveDelay is expired.

Disabled Elements

By default disabled elements like <button> do not trigger user interactions so a Tooltip will not activate on normal events like hover. To accommodate disabled elements, add a simple wrapper element like a span.


Use a different transition.

Showing and hiding

The tooltip is normally shown immediately when the user's mouse hovers over the element, and hides immediately when the user's mouse leaves. A delay in showing or hiding the tooltip can be added through the properties enterDelay and leaveDelay, as shown in the Controlled Tooltips demo above.

On mobile, the tooltip is displayed when the user longpresses the element and hides after a delay of 1500ms. You can disable this feature with the disableTouchListener property.