v1.0.0
15 Sep 2026First release.
Added
- The panel in the browser's top layer through the native popover API, so there
is no
z-indexin the stylesheet at all and anoverflow: hiddenancestor cannot clip it. A positioned fallback for browsers without it. - WCAG 2.2 SC 1.4.13 in full, with a test for each clause: Escape dismisses without the pointer moving, a grace period lets you move diagonally onto the panel, and nothing closes on a timer.
- Focus as well as hover, because the rule says hover or focus.
- Long press on a touch device instead of a pretend hover.
createTooltipandcreatePopoveras separate functions, becausearia-describedbyandaria-expanded+aria-controlsdescribe different things and a flag would hide that.- Focus moved into a popover and returned to its anchor on close, behind
focusTrap. - Placement in twelve directions with flipping, sliding, and an arrow positioned
from the anchor so that a slide leaves it pointing at the right thing. RTL
turns
startandendaround. place()exported on its own: 590 bytes of pure arithmetic, no DOM.- Content as text by default, as a
Node, or as a function called each time it opens. - Theming through custom properties,
classNameson the panel, the arrow and the open anchor, andtheme: 'auto'. - React (including 19), Vue as a directive, Svelte as an action,
<dx-tooltip>, and a CDN build over one core. - 3.0 kB gzip, zero dependencies.