Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

guideloop

Package Overview
Dependencies
Maintainers
0
Versions
17
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

guideloop

Smart and flexible guided tour library for React applications

  • 1.1.6
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
59
decreased by-94.99%
Maintainers
0
Weekly downloads
 
Created
Source

GuideLoop

GuideLoop Banner

A modern, flexible, and powerful guided tour library for React applications. GuideLoop helps you create engaging product tours, feature introductions, and onboarding experiences with minimal effort.

npm version License: MIT

✨ Features

  • 🎨 Multiple pre-built themes (Tailwind, Material-UI, Ant Design)
  • 🎯 Smart positioning with automatic repositioning
  • 🔄 Smooth transitions between steps
  • ⌨️ Full keyboard navigation support
  • 📱 Responsive and mobile-friendly
  • 🎛️ Highly customizable
  • 🌗 Dark mode support
  • 🎭 Custom rendering options
  • 🔍 Scroll handling & element visibility detection
  • 🎬 Custom animations
  • ♿ ARIA-compliant accessibility

📦 Installation

npm install guideloop
# or
yarn add guideloop
# or
pnpm add guideloop

🚀 Quick Start

import { GuideLoop } from 'guideloop';
import { useState } from 'react';

function App() {
  const [isGuideOpen, setIsGuideOpen] = useState(false);

  const steps = [
    {
      target: '#welcome-button',
      title: 'Welcome to Our App!',
      content: 'Start your journey here.',
      placement: 'bottom'
    },
    {
      target: '#feature-section',
      title: 'Key Features',
      content: 'Discover what you can do.',
      placement: 'right'
    }
  ];

  return (
    <>
      <button onClick={() => setIsGuideOpen(true)}>
        Start Tour
      </button>

      <GuideLoop 
        steps={steps}
        isOpen={isGuideOpen}
        onClose={() => setIsGuideOpen(false)}
        theme="tailwind"
      />
    </>
  );
}

🎨 Themes

GuideLoop comes with several built-in themes:

// Tailwind Theme (Default)
<GuideLoop theme="tailwind" />

// Material Theme
<GuideLoop theme="material" />

// Ant Design Theme
<GuideLoop theme="antd" />

// Custom Theme
<GuideLoop
  theme="custom"
  customTheme={{
    tooltip: {
      background: '#2D3748',
      textColor: '#FFFFFF',
      borderRadius: '12px',
    },
    overlay: {
      color: 'rgba(0, 0, 0, 0.75)'
    }
  }}
/>

🛠️ API Reference

GuideLoop Props

PropTypeDefaultDescription
stepsStep[]RequiredArray of step configurations
isOpenbooleanRequiredControls guide visibility
onClose() => voidRequiredHandler for closing the guide
theme'tailwind' | 'material' | 'antd' | 'custom''tailwind'Visual theme
customThemeCustomThemeundefinedCustom theme configuration
initialStepnumber0Starting step index
overlaybooleantrueShow/hide overlay
keyboardbooleantrueEnable keyboard navigation
scrollSmoothbooleantrueEnable smooth scrolling
spotlightPaddingnumber8Padding around highlighted elements

Step Configuration

interface Step {
  target: string;                // CSS selector for target element
  title: string;                 // Step title
  content: string | ReactNode;   // Step content
  placement?: Placement;         // Tooltip placement
  spotlightPadding?: number;    // Custom padding for this step
  beforeStep?: () => Promise<void> | void;  // Hook before showing step
  afterStep?: () => Promise<void> | void;   // Hook after showing step
  buttons?: {                   // Custom button configuration
    next?: ReactNode;
    prev?: ReactNode;
    close?: ReactNode;
  };
}

🎮 Advanced Usage

Custom Animations

<GuideLoop
  animations={{
    tooltip: {
      enter: 'fadeIn',
      exit: 'fadeOut'
    },
    spotlight: {
      enter: 'zoomIn',
      exit: 'zoomOut'
    }
  }}
/>

Event Hooks

<GuideLoop
  onStepChange={(step) => {
    analytics.track('tour_step_viewed', { stepIndex: step });
  }}
  onComplete={() => {
    analytics.track('tour_completed');
  }}
  onSkip={() => {
    analytics.track('tour_skipped');
  }}
/>

Conditional Steps

const steps = [
  {
    target: '#step1',
    title: 'Step 1',
    condition: () => userRole === 'admin'
  },
  {
    target: '#step2',
    title: 'Step 2',
    condition: () => featureFlags.newFeature
  }
];

📚 Examples

Check out our Storybook for live examples and code snippets.

🤝 Contributing

We welcome contributions! Please see our Contributing Guide for details.

📄 License

MIT © [Ozan Kesici]

Keywords

FAQs

Package last updated on 06 Nov 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc