Now available on npm

Onboarding toursthat ship.

react-tourlight is the modern React tour library. Zero dependencies, WCAG 2.1 AA accessible, under 5 kB gzipped. The one that works with React 19.

GitHub
~5KBgzipped
0dependencies
AAWCAG 2.1
MITlicensed
The Problem

Every tour library
is broken.

React Joyride uses deprecated APIs that are removed in React 19. Shepherd.js requires a paid commercial license. Intro.js is GPL. Driver.js has no React bindings.

Every developer evaluating tour libraries in 2025 hits the same wall: nothing modern, free, and React-native exists.

react-tourlight fills that gap.

Why react-tourlight

Built different.

Beautiful by default

Smooth CSS clip-path spotlight transitions. Light, dark, and custom themes. GPU-accelerated animations that never break in dark mode.

clip-path > mix-blend-mode

Fully accessible

WCAG 2.1 AA compliant out of the box. Focus trap, keyboard navigation, ARIA roles, and screen reader announcements.

Focus trap + ARIA + inert

Under 5 kB

Zero runtime dependencies. Floating UI is optional. The core is smaller than most icon libraries.

~5 kB gzip / 0 deps

MIT licensed

Free for commercial use. No GPL restrictions, no paid tiers, no "enterprise" upsell. Open source forever.

Free forever
Quick Start

One command.

Install the package, wrap your app, define your steps. That's it. You're shipping onboarding in under five minutes.

terminal
$ npm install react-tourlight @floating-ui/react-dom
App.tsx
import { SpotlightProvider, SpotlightTour }
 from 'react-tourlight'
import 'react-tourlight/styles.css'

const steps = [
  { target: '#welcome', title: 'Welcome' },
  { target: '#features', title: 'Features' },
]

function App() {
  return (
    <SpotlightProvider>
      <SpotlightTour
        id="onboarding"
        steps={steps}
      />
      <YourApp />
    </SpotlightProvider>
  )
}
Comparison

See the difference.

Featurereact-tourlightOthers
React 19Fully compatibleBroken / wrappers
Bundle size< 5 kB15–50 kB
Dependencies05–15+
AccessibilityWCAG 2.1 AAPartial at best
Focus trapBuilt-inNot available
Dark modeCSS clip-pathmix-blend-mode (breaks)
LicenseMITGPL / Paid / MIT

Ship onboarding
that converts.

Five minutes to integrate. Beautiful by default. The tour library React has been waiting for.

Read the Docsnpm install react-tourlight