@glowhop/vue-tour

Vue 3 product tour and onboarding tour components for GlowTour.js. Accessible, SSR-safe with Nuxt, MIT licensed.
1,473 34
Install
npm install @glowhop/vue-tour
Latest Version:1.5.1
Vue:3
License:MIT
Last Updated:Oct 18, 2026
Links: GitHub  ·  npm
Maintainer: armand-dusart

@glowhop/vue-tour

ESM-only Vue 3 adapter with provide/inject refs for native reactive state. Content is Vue slot content. See the Core guide for workflow options and actions.

Compatibility: Vue 3.3+ (^3.3.0). SSR: the root renders through @vue/server-renderer and browser work starts on mount; hydration is verified at package level and in a production Nuxt app. Full contract: compatibility.

<script setup lang="ts">
import "@glowhop/styles-tour/default.css";
import { GlowTourDefault, createGlowTour } from "@glowhop/vue-tour";
const tour = createGlowTour();
const workflow = tour.create("intro").step({ id: "welcome", target: "#welcome", title: "Welcome", content: "Hello." }).build();
function start() { void tour.start(workflow); }
</script>
<template><button id="welcome">Welcome</button><button type="button" @click="start">Start tour</button><GlowTourDefault :tour="tour" /></template>
<script setup lang="ts">
import { GlowTourRoot, GlowTourOverlay, GlowTourPopover, GlowTourHeader, GlowTourContent, GlowTourFooter, GlowTourAdvanceTrigger, createGlowTour } from "@glowhop/vue-tour";
const tour = createGlowTour(); const workflow = tour.create("custom").step({ id: "welcome", target: "#welcome", title: "Welcome", content: "Hello." }).build(); const start = () => void tour.start(workflow);
</script>
<template><button id="welcome" type="button" @click="start">Start</button><GlowTourRoot :tour="tour"><GlowTourOverlay /><GlowTourPopover><GlowTourHeader /><GlowTourContent /><GlowTourFooter><GlowTourAdvanceTrigger /></GlowTourFooter></GlowTourPopover></GlowTourRoot></template>

Use GlowTourRoot, GlowTourOverlay, GlowTourPointer, GlowTourPopover, GlowTourHeader, GlowTourContent, GlowTourFooter, and named triggers for composition. useGlowTour() runs a tour from a component and returns its state as refs; useGlowTourContext() reads that state inside GlowTourRoot. Static/dynamic targets, placement, interaction, scroll, callbacks, actions/events, cancellation, and cleanup follow Core.

Related Packages

@doitrix/product-journey

Production-grade guided product journey engine for Vue 3 — headless core, access...

1,305
v-tour-guide

A comprehensive Vue 3 tour guide library with TypeScript support for Vue and Nux...

35,937 19
@tour-kit/vue

Headless Vue 3 binding for the Tour Kit engine — product tours with no React ins...

309 68
nuxt-driver-vue

Nuxt module for driver-vue: product tours, highlights and hints with your own Vu...

369 4

Version History

Version Released Vue License
1.5.1 ^3.3.0 MIT
1.5.0 ^3.3.0 MIT
1.4.0 ^3.3.0 MIT
1.3.1 ^3.3.0 MIT
1.3.0 ^3.3.0 MIT