Skip to content

Releases: atomiks/tippyjs

v5.0.0

28 Sep 17:40
Compare
Choose a tag to compare

View migration guide from v4 to v5

Goals

  1. Improve developer experience with warnings without bloating production bundle size
  2. Reduce core size and make the library more tree-shakable
  3. Allow new feature additions to be added separately without increasing bundle size (addons & plugins system)
  4. Improve naming consistency and usage

Highlights

🌳 Core size has decreased

The library is now tree-shakable, allowing you to import and use only the parts you need.

  • ⬇️ 30%+ smaller download size
  • ⬇️ 50%+ smaller parse size
  • ⬇️ 60%+ smaller core CSS + smaller external animation files

👷 Better developer experience

There is now a DEV-only messaging system to help you when things go wrong.

🔥 Animation improvements

There is a new /animations folder (like /themes) and creating custom animations is a smoother experience. Additionally, there is new documentation about fully dynamic transitions of a tippy element's dimensions, and work is being done to create an official API for it.

🤩 Plenty of new features

  • New touch: ["hold", delay] prop (for long press behavior)
  • New arrow: string | SVGElement values to use your own shape
  • New createSingleton addon, supersedes group() for smooth transitions
  • New sticky behavior to check reference or popper rects (or both)
  • New inlinePositioning prop supports better inline element positioning (further behavior options to come)

🔌 Plugins API

Allows you to extend functionality of tippy instances and create your own props.

♿ Improved accessibility out of the box

Interactive tippies are now accessible by default, and DEV warnings will let you know if there is an accessibility problem.

🐞 Subtle behavioral bugs fixed and improvements made

  • animateFill: true is no longer default, so the shape cut off issue is not present with large content unless you intentionally use it
  • hideOnClick uses mousedown instead of click
  • Calling .disable() will hide an instance if it's currently visible
  • Updating content while hovering over an interactive element will not break the mouseleave to hide it
  • For instances with a delay, if the tippy began to transitioning out and the instance was triggered again before unmounting, it will ignore the delay
  • Window blur listener will only blur references whose tippy is not visible upon blur
  • If using multiple tippys on a single element, screenreaders will now announce all of them
  • In touch and keyboard contexts, delay is always 0

Installation

Package Managers:

# npm
npm i tippy.js@5

# Yarn
yarn add tippy.js@5

CDN:

<script src="https://unpkg.com/popper.js@1"></script>
<script src="https://unpkg.com/tippy.js@5"></script>

v4.3.5

01 Aug 23:55
Compare
Choose a tag to compare

Fixes

  • Optimize sticky option by preventing repaints on every animation frame
  • Place injected style node before the first style or link tag instead of first child
  • Reduce CSS size slightly
  • Fix leak with document click listener not being removed if tippy was hidden before it was shown when using delay
  • Fix #532: Add referenceNode property for followCursor (NOTE: awaiting [email protected] release)

v4.3.3

04 Jun 11:11
Compare
Choose a tag to compare

Fixes

  • Fix followCursor having incorrect offset when using a variation placement (-start or -end) (#513)

v4.3.2

03 Jun 09:37
Compare
Choose a tag to compare

Fixes

  • Mounting behavior (IE11 scrollbar flicker) (#509)
  • followCursor fixes (respects boundary & fix regression where initial was not placed correctly on touch devices on first show)
  • Ensure destroy()'s unmounting of the tippy can never be impeded
  • Fix the longstanding interactive scrolling issue
  • Fix path selector having pointer-events: auto (#504)

v4.3.1

08 May 19:31
Compare
Choose a tag to compare

Fixes

  • Improve support for nested tippys by using per-instance hideOnClick handler (#485)
  • Add data-tippy-stylesheet to style tag (#483)

v4.3.0

24 Apr 10:22
Compare
Choose a tag to compare

Features

  • Added triggerTarget option to apply the trigger listeners to a different node from the positioning reference
  • Added onTrigger option to allow calls to .set() to change the reference position and instance props based on the event before the tooltip is shown without interrupting the lifecycle (unlike wait)
  • Added ability to pass a ReferenceElement to HideAllOptions.exclude for references with multiple tippys

Fixes

  • Make tippy.group() and updateDuration updateable
  • Fix when popperOptions.onCreate and popperOptions.onUpdate are called so they match the actual invocations by Popper.js
  • Fix followCursor not respecting popperOptions.modifiers.preventOverflow.padding
  • Fix multiple tippys from only displaying one if using touch and hideOnClick: true
  • Fix the tooltip moving with the cursor if over the popper element when using followCursor: '{horizontal, vertical}' and interactive: true
  • [TypeScript] Fix instance.reference type to account for VirtualReference

v4.2.1

26 Mar 18:39
Compare
Choose a tag to compare

Fixes

  • Change show checks to fix Shadow DOM support (#453)
  • Change notransition technique (#454)
  • Add x-out-of-boundaries attribute to tooltip node (#455)
  • Optimize set(): avoid recreating popperInstance by comparing props (#456)
  • Remove tap highlight color by default on iOS

v4.2.0

13 Mar 18:54
Compare
Choose a tag to compare

Features

  • Add x-placement attribute to tooltip node, allowing you to style without needing to use the .tippy-popper selector

Example

Before:

.tippy-popper[x-placement^='top'] .tippy-tooltip.my-theme .tippy-arrow {
  border-top-color: pink;
}

After:

.tippy-tooltip.my-theme[x-placement^='top'] .tippy-arrow {
  border-top-color: pink;
}

Fixes

  • Apply correct mutations when calling .set() with a popperInstance dependency update

v4.1.0 - TypeScript rewrite

12 Mar 15:59
Compare
Choose a tag to compare

Minor release was bumped due to large TypeScript refactor and a minor package fields change.

Fixes

  • Improves types due to refactor (#441). Props interface was deprecated in favor of Options. Use Required<Options> to mimic the internal Props interface.
  • Use unminified code in "main" and use the "unpkg" field (#445)
  • Fix obscure Chrome setTimeout issue (#447)
  • Remove will-change properties: seems to improve animation FPS
  • Prevent overwriting user-defined preventOverflow padding
  • Add safety early return to tippy.group()

v4.0.4

04 Mar 07:15
Compare
Choose a tag to compare

This release mainly fixes some minor CSS issues

Fixes

  • Make rem units align with whole pixels using 16px base default
  • Size round arrow closer to default sharp arrow so it reaches the edges of the popper + reduce arrow margins overall
  • Fix infinite loop when popperOptions is undefined instead of an object
  • Fix small gaps when using the round arrow in Edge/IE11
  • Fix longstanding issue (since v0) of Popper's preventOverflow not taking into account the distance prop