Product and scope
Define the user, core job, v1 boundary, and success criteria.
Product and scope
Product thesis
Nuxt Tour is for Nuxt and Vue developers who need a reliable guided product tour without coordinating selectors, routes, overlays, focus, and cleanup in application code.
The core workflow has four concepts:
defineTour() describes the journey
target IDs locate application elements
<TourHost /> renders the active tour
useNuxtTour() controls a discovered Nuxt journey
useTour() controls a plain Vue definitionThe package wins when this workflow feels normal to a Vue developer and remains reliable in a real Nuxt application.
Accepted v1 jobs
Version 1 must support:
- targetless centered steps;
- semantic targets that can mount late;
- a linear tour with conditional steps;
- navigation to the destination step's Nuxt route;
- asynchronous preparation with guaranteed cleanup;
- one active tour per application;
- a good default card and a full-card slot;
- modal, target-only, and non-modal interaction;
- keyboard operation, focus restoration, and reduced motion;
- typed events and stable error codes; and
- generated tour, step, and semantic target ID types from
app/tours/.
Explicit non-goals
Version 1 does not include persistence, automatic start rules, analytics providers, hints, checklists, surveys, experiments, a visual editor, graph navigation, multiple concurrent tours, iframe targets, multiple spotlight holes, arbitrary DOM-event advancement, or a public framework-neutral core.
Applications can store completion and call start() themselves. Applications
can send analytics from typed events. These boundaries avoid a second source of
truth for product state.
Product acceptance criteria
A new consumer must be able to complete the quick start from one example. All controller navigation methods must settle only after the destination step is active or the transition has failed cleanly. A failed or cancelled transition must leave no observer, listener, overlay, focus trap, or preparation cleanup behind.
The package installs as one npm package. The Nuxt root export and /vue export
share one runtime contract and one version.