StealThis .dev

Onboarding — Contextual hint tooltips / beacons

A self-contained onboarding layer that scatters pulsing beacon dots over a realistic product workspace — search, new-task, notifications, invite, and home. Tapping a beacon opens a positioned popover with a step counter, a short tip, and a Got it action that dismisses just that beacon, while a live aria-live counter tracks how many hints have been seen. A segmented switcher toggles beacon style between pulsing dots and static question-mark badges and flips open behaviour between click and hover, and a Reset hints button restores every beacon.

Otwórz w Lab
html css vanilla-js
Targety: JS HTML

Kod

Contextual hint tooltips / beacons

A first-run onboarding layer painted over a faithful mock of the Northwind workspace — sidebar nav, universal search bar, notifications, an invite-team CTA, and a Q3 launch board. Five glowing beacon dots are anchored to the controls most worth explaining. Each beacon positions itself against its anchor, so the popover it opens flips above or below depending on available room and clamps its arrow to stay centred on the dot.

Click (or hover) a beacon to open a contextual popover with a Hint N / 5 step pill, a title, a one-line tip, a Skip all link, and a Got it button. Dismissing a hint hides only that beacon and bumps the aria-live counter in the controls bar; Skip all clears every remaining beacon at once, and Reset hints brings them all back. The popover closes on Escape — returning focus to its beacon — or on an outside click, and a small toast confirms each action.

Two variant switchers drive the demo live. The style toggle swaps the animated pulsing dot for a quieter static question-mark badge, and the open-on toggle flips the interaction between click and hover (hover keeps the popover alive while the pointer is over it). The whole layout collapses to a single column with a horizontal sidebar down to 360px, and respects prefers-reduced-motion by stilling the pulse.

Illustrative onboarding UI only — fictional workspace, names, and data.