Skip to main content
Urbicon UI
source

Guidebeta

A bidirectional in-app help system: a non-modal help panel, contextual hints, UI↔guide links, and an opt-in guided tour — all over one headless engine.

Billing

Plan
Pro — $29/mo
Seats
5 of 10 used

01 Setup

Mount one GuideProvider near your app root. It instantiates a GuideController and shares it with every Guide surface via context. Mark any UI element a topic with data-guide="<id>"; tours, hints, markers, and mentions all resolve through that one namespace.

Provider + controller + a topic

Loading...
Loading syntax highlighting...

02 Contextual hints

A GuideHint waits at the right element instead of interrupting. Show it on mount, or drive it from your own route/condition with trigger="manual" and open. It persists "seen" so it appears once, and steps aside while a modal or tour is open.

A waiting hint

Toggle the hint anchored to the Export button.

New: scheduled exports

You can now export on a recurring schedule from here.

03 Guided tour & beacon

The guided tour is the deliberately opt-in, intrusive surface: a spotlight that dims everything but the current step's target, plus an anchored bubble. A GuideBeacon is the gentle entry point — a waiting hotspot that starts the tour on click, the opposite of an auto-start.

Beacon-launched tour

Click the pulsing beacon, or the button, to start a two-step tour.

Dashboard

Loading...
Loading syntax highlighting...

Tours survive client-side navigation: the controller lives in the layout's provider, an unresolved target renders centered over the full scrim, and the bubble re-anchors as soon as the new route's data-guide element appears. The library never navigates itself — the app does, in onStep. Keep Guide mounted in the layout (a route-local renderer unmounts on navigation and ends the tour), and prefer stopTour() only when navigation invalidates the tour (e.g. logout) — it tears down without marking the tour seen.

Cross-route tour (app-driven navigation)

Loading...
Loading syntax highlighting...

04 Analytics

The real value of a tour is its funnel and drop-off signal. A GuideTour carries three optional hooks fired from the engine, so they trigger no matter which surface drives the tour. They are invoked defensively — a throwing handler never corrupts tour state. See GuideStepEvent / GuideEndEvent in the API reference for the payloads.

Wiring tour analytics

Loading...
Loading syntax highlighting...

05 The data-guide namespace

Every guide target is identified by a string id. There are two ways to register one — both feed the same registry, so a tour step, a hint, a marker, and a mention can all point at the same id.

Two ways to mark a target

Loading...
Loading syntax highlighting...

direction makes the bidirectional link a deliberate choice: 'to-ui' makes a GuideMarker inert (UI → guide off), 'to-guide' degrades a GuideMention to plain text (guide → UI off), and 'both' (the default) enables both. In DEV, a target id referenced but not found in the DOM logs a warning instead of failing silently.

06 Accessibility

Keyboard parity

Markers and mentions are real <button>s. A mention highlights its target on focus as well as hover, so the bidirectional link works without a mouse. The tour bubble takes focus on open; / step, Esc skips. An interactive step joins its spotlit target to the bubble in one Tab cycle.

Announcements & focus

The tour announces each step through a polite aria-live region (so the arrow-key path is never silent), and the hint announces itself with role="status". The tour returns focus to wherever it was when the tour ends.

Non-modal by design

The help panel has no focus trap and no backdrop — it coexists with the app (that is what lets a mention highlight a field behind it). Escape only closes it while focus is inside, so a foreground dialog keeps priority. Motion (panel slide, beacon pulse, step fade) honors prefers-reduced-motion.

07 Customization

Every surface supports unstyled, per-slot slotClasses, and named presets. Two tokens tune the tour's spotlight scrim and the additive highlight ring.

Tokens & slot overrides

Loading...
Loading syntax highlighting...

08 API Reference

9 surfaces

Guide (tour renderer)

Mount once inside GuideProvider; renders nothing until a tour starts.

8 props

No matching properties

No matching properties

GuideController

The headless engine. Create one and pass it to the provider for programmatic control.

9 props

No matching properties

No matching properties

GuideTour

The tour definition you pass to startTour — lives in your app, not the library.

6 props 2 required

No matching properties

No matching properties

GuideStep

6 props

No matching properties

No matching properties

GuideStepEvent / GuideEndEvent

The payloads passed to the analytics hooks.

5 props

No matching properties

No matching properties

GuideProvider

Context root — wires every surface to one GuideController.

3 props 1 required

No matching properties

No matching properties

GuidePanel

The callable, non-modal help panel (D1).

11 props

No matching properties

No matching properties

GuideArticle

A structured help article inside the panel.

7 props 2 required

No matching properties

No matching properties

GuideMarker

Direction A — the discreet "ⓘ" trigger that opens the panel at an article.

10 props

No matching properties

No matching properties

GuideMention

Direction B — inline article→UI reference that highlights the element.

8 props 1 required

No matching properties

No matching properties

GuideHint

Contextual, waiting hint anchored to a data-guide element.

14 props 1 required

No matching properties

No matching properties

GuideBeacon

Waiting, pulsing hotspot that starts an opt-in tour.

9 props

No matching properties

No matching properties

09 Installation

Import

Loading...
Loading syntax highlighting...