Tooltip
Tooltips are brief pieces of information that appear on hover state over an element to clarify its meaning or use for the user.
install | yarn add @clayui/tooltip |
---|---|
version | 3.119.0 |
Stable3.119.0View in LexiconCHANGELOG
Simplest way of using Tooltip is by leveraging it's show
prop and specifying alignPosition
to determine it's position relative to the element it's aligned to.
If you have multiple Tooltips on the page, TooltipProvider allows you to only have to instantiate the component once and simply provide html attributes to the elements that need tooltips.
TooltipProvider
By using the <TooltipProvider>
it allows you to add the desired tooltip content on each element as a data attribute.
Here's a list of html attributes that you can provide to children elements of the TooltipProvider:
title
is for the tooltip content.data-tooltip-align
is for alignment direction.data-tooltip-delay
is for the delay(ms) before showing the tooltip.data-tooltip-floating
defines if the tooltip should be floating positioned where the mouse is over the element.
contentRenderer
contentRenderer
prop gives you the ability to format the content passed to the Tooltip via the title
attribute to meet your requirements.
Disabled elements with title
Elements or components that use the browser's native disabled
property, have the problem of the provider not being able to track element events, natively elements with disabled do not trigger events, such as click
, mouseup
, mousedown
, keydown
... if the element has a title
the tooltip will not work correctly, for this scenario we recommend using a different strategy to continue that the element emits events but still has the disabled state. For example, the Button component:
// instead of
<button className="btn btn-primary" disabled="" title="Open Menu">Click</button>
<Button disabled title="Top">Top</Button>
// use
<button className="btn btn-primary disabled" aria-disabled="true" title="Open Menu">Click</button>
<Button aria-disabled="true" className="disabled" title="Top">Top</Button>
Add the disabled
CSS class that adds the visual state of disabled and the aria-disabled
property to keep the element accessible, this same behavior can be repeated for other elements where you want the title even when the component is disabled.