A lightweight, dependency-free JavaScript library for guiding user focus across the page.
26,752
stars
625
commits
TypeScript
primary language
Jul 18, 2026
updated

Powerful, highly customizable library for Product Tours and Feature Introductions
No external dependencies, light-weight, supports all major browsers and highly customizable
For demos and documentation, visit driverjs.com
No, it's more than a tour library. Tours are just one of the many use-cases. Driver.js can be used wherever you need some sort of overlay for the page; some common usecases could be: highlighting a page component when user is interacting with it to keep them focused, providing contextual help e.g. popover with dimmed background when user is filling a form, using it as a focus shifter to bring user's attention to some component on page, using it to simulate those "Turn off the Lights" widgets that you might have seen on video players online, usage as a simple modal, and of-course product tours etc.
Driver.js is written in Vanilla TypeScript, has zero dependencies and is highly customizable. It has several options allowing you to change how it behaves and also provides you the hooks to manipulate the elements as they are highlighted, about to be highlighted, or deselected.
Also, comparing the size of Driver.js with other libraries, it's the most light-weight, it is just ~5kb gzipped while others are 12kb+.
The library lives in src/. To try your changes against a set of live examples, run the playground — an Astro app in playground/ that imports the library straight from source, so edits hot-reload instantly:
pnpm install
pnpm run playground:install
pnpm dev
Each example lives in its own file under playground/src/examples/ and shows up as a page in the sidebar. To add one, drop an entry into the relevant group (highlight.ts, popover.ts, tour.ts, api.ts).
Other useful scripts:
pnpm build
pnpm test
Feel free to submit pull requests, create issues or spread the word.
MIT © Kamran Ahmed
(top 30 of 47)
TypeScript
60.1%
MDX
23.9%
Astro
13.2%
CSS
1.9%
A lightweight, dependency-free JavaScript library for guiding user focus across the page.
26,752
stars
625
commits
TypeScript
primary language
Jul 18, 2026
updated

Powerful, highly customizable library for Product Tours and Feature Introductions
No external dependencies, light-weight, supports all major browsers and highly customizable
For demos and documentation, visit driverjs.com
No, it's more than a tour library. Tours are just one of the many use-cases. Driver.js can be used wherever you need some sort of overlay for the page; some common usecases could be: highlighting a page component when user is interacting with it to keep them focused, providing contextual help e.g. popover with dimmed background when user is filling a form, using it as a focus shifter to bring user's attention to some component on page, using it to simulate those "Turn off the Lights" widgets that you might have seen on video players online, usage as a simple modal, and of-course product tours etc.
Driver.js is written in Vanilla TypeScript, has zero dependencies and is highly customizable. It has several options allowing you to change how it behaves and also provides you the hooks to manipulate the elements as they are highlighted, about to be highlighted, or deselected.
Also, comparing the size of Driver.js with other libraries, it's the most light-weight, it is just ~5kb gzipped while others are 12kb+.
The library lives in src/. To try your changes against a set of live examples, run the playground — an Astro app in playground/ that imports the library straight from source, so edits hot-reload instantly:
pnpm install
pnpm run playground:install
pnpm dev
Each example lives in its own file under playground/src/examples/ and shows up as a page in the sidebar. To add one, drop an entry into the relevant group (highlight.ts, popover.ts, tour.ts, api.ts).
Other useful scripts:
pnpm build
pnpm test
Feel free to submit pull requests, create issues or spread the word.
MIT © Kamran Ahmed
(top 30 of 47)
TypeScript
60.1%
MDX
23.9%
Astro
13.2%
CSS
1.9%