Chisle
코딩 에이전트 플러그인, 20개 실시간 작업에서 기본 모델 52% 활용, 간결한 페르소나와 출력 압축 제공
Svelte 5용 제품 투어, 다중 페이지, 새로고침 유지, 실제 버튼 클릭, 비콘, 접근성, JSON 투어 지원
Spotlight product tours for Svelte 5: multi-page, survive reloads, click-the-real-button steps, beacons, accessible, JSON tours.
개발 도구TypeScript · SvelteGitHub @kryptobaseddev온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
Svelte 5 product tours: spotlight cutout, multi-page steps that survive reloads, click-the-real-button steps, beacons, a11y, JSON tours. Inspired by react-tourlight.
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Product tours for Svelte 5: spotlight, multi-page, accessible, and defined as JSON.
npm i svelte-tourlight
# or
pnpm add svelte-tourlight
npmjs.com/package/svelte-tourlight · peer: svelte@^5 · runtime dependency: @floating-ui/dom
<!-- src/routes/+layout.svelte -->
<script lang="ts">
import { goto } from '$app/navigation';
import { SpotlightProvider, SpotlightTour } from 'svelte-tourlight';
let { children } = $props();
const steps = [
{ id: 'hi', title: 'Welcome', content: 'A centered step.' },
{ id: 'search', target: '[data-tour="search"]', title: 'Search', content: 'Find anything.' },
{
id: 'new',
target: '[data-tour="new"]',
title: 'Create',
content: 'Click it.',
advanceOn: { event: 'click' }
}
];
</script>
<SpotlightProvider theme="auto" persist navigate={(p) => goto(p)}>
<SpotlightTour id="onboarding" {steps} />
{@render children()}
</SpotlightProvider>
Start it from any component with useSpotlight().start('onboarding'). The Getting started guide covers base paths, persistence and the footer snippet.
goto) and survive reloadsadvanceOn)onEvent streamPass theme="light" | "dark" | "auto" or { base, ...tokens }, or set the --tourlight-* variables on .tourlight-root in your own CSS. The overlay is marked with data-tourlight-theme, never data-theme, so daisyUI (and other systems that switch themes on [data-theme]) don't redefine --color-* inside the tour. To use your daisyUI colours, map them: .tourlight-root { --tourlight-primary: var(--color-primary); }.
Our app is SvelteKit with Svelte 5. Using react-tourlight would mean shipping React and ReactDOM (about 45 KB gzipped), running a second framework and hydration system, and bridging routing and themes between them. A native runes port is smaller, fits SvelteKit routing and our design tokens directly, and is ours to extend.
| Export | What it does | Demo |
|---|---|---|
SpotlightProvider | Root component: theme, persistence, navigate, basePath, callbacks | Getting started |
SpotlightTour | Registers a tour's steps | Basic tour |
useSpotlight() | Reactive controller: start(id, { stepIndex }), next, skip, highlight, state | Basic tour |
Step route | Multi-page, route-aware steps | Multi-page |
Step advanceOn / interactive | Real input through the cutout | Interactive |
SpotlightBeacon, SpotlightHighlight | Hint dots and one-off callouts | Beacons |
svelte-tourlight/document | validateTourDocument, compileTourDocument, schema | JSON tours |
theme | Light, dark, auto, custom tokens | Themes |
sheetPosition, mobileBreakpoint | Phone sheet, docked away from low targets | Phone |
Built-in a11y, labels | Keys, focus, announcements, i18n | Accessibility |
Inspired by and ported from react-tourlight (MIT, © react-tourlight contributors), created by Bilal Tahir. See NOTICE.
reducedMotion | Force or follow the OS setting | Reduced motion |
onEvent and callbacks | Analytics | Analytics |
tooltip snippet, svelte-tourlight/core | Custom tooltip or a fully headless UI | Headless |