GlowTour.js
Get started

Solid

Solid product tour & onboarding library

@glowhop/solid-tour is the Solid adapter of GlowTour.js, an open-source product tour library for building onboarding tours, feature walkthroughs and guided tours in Solid.

Solid 1.8+ components with a Context-scoped tour instance, verified for real server rendering and hydration in a SolidStart app.

Install

npm i @glowhop/solid-tour @glowhop/styles-tour

25.1 KiB gzipped in total: 0.3 KiB of adapter over the shared 23.5 KiB engine, plus 1.3 KiB of theme CSS you can replace with your own.

@glowhop/solid-tour on npm · @glowhop/styles-tour on npm

Quick start

A component-scoped integration using the Solid lifecycle API. See the full guide for additional setup and customization.

import { Show } from "solid-js";
import { render } from "solid-js/web";
import "@glowhop/styles-tour/default.css";
import { GlowTourDefault, useGlowTour } from "@glowhop/solid-tour";

function TourApp() {
  const { tour, create, start, cancel, status, currentStepIndex, totalSteps } = useGlowTour();

  const workflow = create("product-tour")
    .step({
      id: "features",
      target: '[data-tour="features"]',
      title: "Explore features",
      content: "Learn about all the capabilities.",
    })
    .step({
      id: "pricing",
      target: '[data-tour="pricing"]',
      title: "Check pricing",
      content: "See plans that fit your needs.",
    })
    .build();

  return (
    <>
      <main>
        <section data-tour="features">
          <h2>Features</h2>
          <p>We offer guided tours, SSR support, and full keyboard navigation.</p>
        </section>
        <section data-tour="pricing">
          <h2>Pricing</h2>
          <p>Open source and free.</p>
        </section>
        <Show
          when={status() === "active"}
          fallback={<button onClick={() => void start(workflow)}>Start tour</button>}
        >
          <p>
            Step {currentStepIndex() + 1} of {totalSteps()} <button onClick={() => void cancel()}>Stop</button>
          </p>
        </Show>
      </main>
      <GlowTourDefault tour={tour} />
    </>
  );
}

render(() => <TourApp />, document.getElementById("app")!);

How to build a Solid onboarding tour

  1. Install the adapter and the default theme with npm i @glowhop/solid-tour @glowhop/styles-tour, then import "@glowhop/styles-tour/default.css" once, in your app entry or the component that renders the tour.

  2. Call useGlowTour() inside a Solid component. It returns the tour instance plus create, start, cancel and the current status as accessors.

  3. Describe the onboarding tour with the builder: create("product-tour").step({ id, target, title, content }).build(), one step per element you want to highlight.

  4. Render <GlowTourDefault tour={tour} /> once and call start(workflow) from an event handler. In SolidStart, start it after the targets have mounted in the browser.

Why use GlowTour.js for Solid product tours?

Solid-native components

Use Solid components and a Context-scoped tour instance without adding a wrapper around another framework.

SolidStart verified

Use the adapter in server-rendered applications with real render, hydration, and end-to-end coverage.

Fine-grained control

Choose the ready-made GlowTourDefault UI or compose lower-level primitives with Solid's reactivity.

Solid product tour FAQ

How do I create a product tour in Solid?

Install @glowhop/solid-tour and @glowhop/styles-tour, call useGlowTour() inside a Solid component, build a workflow with create(), render GlowTourDefault with the returned tour, then call start() from an event handler.

Does GlowTour.js work with SolidStart?

Yes. The Solid adapter is verified with server rendering and hydration in a SolidStart application. Start the workflow after the target elements have mounted in the browser.

Can I customize the Solid tour UI?

Yes. You can replace the default CSS theme or compose the Solid adapter's lower-level components for complete control over presentation.

How big is the Solid product tour library?

25.1 KiB gzipped in total: 0.3 KiB for @glowhop/solid-tour, 23.5 KiB for the shared core engine, and 1.3 KiB for the default theme CSS, which you can replace with your own. The core has no runtime dependencies.

Is @glowhop/solid-tour free for commercial use?

Yes. Every GlowTour.js package is MIT-licensed: free for commercial and closed-source products, with no paid tier and no attribution requirement.

Need the complete API and framework-specific setup? Read the Solid integration guide.