# What changed in driver.js

> 49 changes in driver.js 1 from its official release notes, upgrade guides and advisories: 5 breaking, 21 new APIs and options. Each one cited. Sources checked 2026-10-18. HTML: https://unstale.sh/npm/driver.js/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## driver.js 1

### Breaking changes

- Starting a tour or highlight closes any other active instance; that instance gets `onDeselected` and `onDestroyed`, but not `onDestroyStarted`. (1.9.0) — [release notes](https://github.com/nilbuild/driver.js/releases/tag/1.9.0)
- Custom popover footer buttons are no longer auto styled; style them using this selector. (1.6.0) — [release notes](https://github.com/nilbuild/driver.js/releases/tag/1.6.0)
- Drops the CSS selector for broader browser compatibility. (1.6.0) — [release notes](https://github.com/nilbuild/driver.js/releases/tag/1.6.0)
- Unicode characters have been removed from buttons. (1.5.0) — [release notes](https://github.com/nilbuild/driver.js/releases/tag/1.5.0)
- Button text-shadow ghost text has been removed. (1.5.0) — [release notes](https://github.com/nilbuild/driver.js/releases/tag/1.5.0)

### New APIs and options

- Adds launcher: false to disable the floating checklist launcher. (1.10.1) — [release notes](https://github.com/nilbuild/driver.js/releases/tag/1.10.1)
- Added support for checklists. (1.10.0) — [release notes](https://github.com/nilbuild/driver.js/releases/tag/1.10.0)
- A new reason option on destroy hooks distinguishes between destroy reasons. (1.10.0) — [release notes](https://github.com/nilbuild/driver.js/releases/tag/1.10.0)
- Adds a driver- and step-level option to set the close button’s aria-label for translated tours; defaults to Close. (1.9.0) — [release notes](https://github.com/nilbuild/driver.js/releases/tag/1.9.0)
- Adds the `none` behavior to ignore overlay clicks while Escape and the close button still close the tour. (1.9.0) — [release notes](https://github.com/nilbuild/driver.js/releases/tag/1.9.0)
- Adds a driver- and step-level option to advance the tour by clicking the highlighted element. (1.8.0) — [release notes](https://github.com/nilbuild/driver.js/releases/tag/1.8.0)
- Adds pulsing beacons that open a popover on click; the overlay is optional and the page stays interactive. (1.8.0) — [release notes](https://github.com/nilbuild/driver.js/releases/tag/1.8.0)
- Adds a driver- and step-level option to wait up to N ms for a step's element before treating it as missing. (1.8.0) — [release notes](https://github.com/nilbuild/driver.js/releases/tag/1.8.0)
- Set this CSS variable to choose the popover font. (1.7.0) — [release notes](https://github.com/nilbuild/driver.js/releases/tag/1.7.0)
- Hook options now include `index`. (1.7.0) — [release notes](https://github.com/nilbuild/driver.js/releases/tag/1.7.0)
- Popover titles and descriptions now render in the default font stack; set `--driver-popover-font-family` to use a custom font. (1.7.0) — [release notes](https://github.com/nilbuild/driver.js/releases/tag/1.7.0)
- Add this option to skip a step when its target element is missing. (1.7.0) — [release notes](https://github.com/nilbuild/driver.js/releases/tag/1.7.0)
- Adds a config option to lock body scroll while a tour is active. (1.6.0) — [release notes](https://github.com/nilbuild/driver.js/releases/tag/1.6.0)
- Adds a config option to control how long the highlight transition takes. (1.6.0) — [release notes](https://github.com/nilbuild/driver.js/releases/tag/1.6.0)
- Adds a step property for passing arbitrary data, accessible from hooks for custom per-step logic. (1.6.0) — [release notes](https://github.com/nilbuild/driver.js/releases/tag/1.6.0)
- The popover exposes alignment-specific classes according to the rendered alignment. (1.6.0) — [release notes](https://github.com/nilbuild/driver.js/releases/tag/1.6.0)
- The popover exposes side-specific classes according to the rendered side. (1.6.0) — [release notes](https://github.com/nilbuild/driver.js/releases/tag/1.6.0)
- Adds a hook that fires when the done button on the final step is clicked. (1.6.0) — [release notes](https://github.com/nilbuild/driver.js/releases/tag/1.6.0)
- The next button now has the done-btn class, allowing developers to target it with styling. (1.5.0) — [release notes](https://github.com/nilbuild/driver.js/releases/tag/1.5.0)
- The driver API now includes getNextStep. (1.5.0) — [release notes](https://github.com/nilbuild/driver.js/releases/tag/1.5.0)
- overlayClickBehavior now supports callbacks. (1.4.0) — [release notes](https://github.com/nilbuild/driver.js/releases/tag/1.4.0)

### Performance

- Adds a package.json field for better tree-shaking. (1.8.0) — [release notes](https://github.com/nilbuild/driver.js/releases/tag/1.8.0)

### Behavior and default changes

- Arrow keys do nothing when their popover button is hidden or disabled, and Escape does nothing when the close button is disabled. (1.9.0) — [release notes](https://github.com/nilbuild/driver.js/releases/tag/1.9.0)
- Now fires when moving between two steps on the same element or between two steps without an element. (1.9.0) — [release notes](https://github.com/nilbuild/driver.js/releases/tag/1.9.0)
- When steps are skipped, the last reachable step now shows Done and runs onDoneClick; step queries such as isLastStep() account for skips. (1.8.0) — [release notes](https://github.com/nilbuild/driver.js/releases/tag/1.8.0)
- Each `driver()` call now keeps its own config, steps, and state. (1.7.0) — [release notes](https://github.com/nilbuild/driver.js/releases/tag/1.7.0)
- The onDestroyed hook now receives the final state. (1.5.0) — [release notes](https://github.com/nilbuild/driver.js/releases/tag/1.5.0)

### Fixes and other changes

- Hints and popovers now work with the dialog element. (1.10.1) — [release notes](https://github.com/nilbuild/driver.js/releases/tag/1.10.1)
- Clicking a popover no longer throws when the event target is a text node. (1.10.1) — [release notes](https://github.com/nilbuild/driver.js/releases/tag/1.10.1)
- The close button only darkens for keyboard focus, so it no longer opens dark after a tour is started with a mouse click. (1.10.0) — [release notes](https://github.com/nilbuild/driver.js/releases/tag/1.10.0)
- Calling `destroy()` on an inactive instance is now a no-op instead of tearing down another instance's tour. (1.9.0) — [release notes](https://github.com/nilbuild/driver.js/releases/tag/1.9.0)
- The driver-level setting now applies to tour steps; a step's own setting still replaces it. (1.9.0) — [release notes](https://github.com/nilbuild/driver.js/releases/tag/1.9.0)
- The highlighted element's `aria-controls`, `aria-expanded` and `aria-haspopup` are restored when the highlight moves on or the tour ends, instead of being removed. (1.9.0) — [release notes](https://github.com/nilbuild/driver.js/releases/tag/1.9.0)
- Fixes a small white square appearing between steps without an element. (1.9.0) — [release notes](https://github.com/nilbuild/driver.js/releases/tag/1.9.0)
- The current popover is hidden while waiting for the next step's element, preventing a stale step from staying on screen. (1.9.0) — [release notes](https://github.com/nilbuild/driver.js/releases/tag/1.9.0)
- Icon fonts inside a step description are no longer overridden. (1.7.0) — [release notes](https://github.com/nilbuild/driver.js/releases/tag/1.7.0)
- The popover no longer jumps when images in its content load after render. (1.7.0) — [release notes](https://github.com/nilbuild/driver.js/releases/tag/1.7.0)
- Arrow positioning has been fixed. (1.6.0) — [release notes](https://github.com/nilbuild/driver.js/releases/tag/1.6.0)
- The close button on a single-element `highlight()` popover now closes it by default, respecting `allowClose` and any custom `onCloseClick`. (1.6.0) — [release notes](https://github.com/nilbuild/driver.js/releases/tag/1.6.0)
- Positioned highlighted elements and their children, such as dropdown menus, no longer get clipped. (1.6.0) — [release notes](https://github.com/nilbuild/driver.js/releases/tag/1.6.0)
- Fixes a document event listener leak that left handlers attached after the tour was destroyed. (1.6.0) — [release notes](https://github.com/nilbuild/driver.js/releases/tag/1.6.0)
- Fixes a `removeChild` DOMException when re-rendering a popover whose wrapper was already detached from the DOM. (1.6.0) — [release notes](https://github.com/nilbuild/driver.js/releases/tag/1.6.0)
- The onNextClick callback now fires when overlay nextStep is used. (1.5.0) — [release notes](https://github.com/nilbuild/driver.js/releases/tag/1.5.0)
- Pressing arrow-left at step 1 now keeps the tour open. (1.5.0) — [release notes](https://github.com/nilbuild/driver.js/releases/tag/1.5.0)
