Socket
Book a DemoInstallSign in
Socket

@ritterim/handholdjs

Package Overview
Dependencies
Maintainers
1
Versions
8
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@ritterim/handholdjs

A configurable JavaScript hand held walk-through for user interfaces.

latest
Source
npmnpm
Version
0.1.9
Version published
Maintainers
1
Created
Source

handholdJS

A configurable JavaScript hand held walk-through for user interfaces.

Table of Contents

  • handholdJS

Installation

Install package via NPM.

npm install @ritterim/handholdJS

Adding to project

Import handholdJS into your project and instantiate it to a new variable.

main.js:

import Handhold from '@ritterim/handholdJS';
import '../path/to/node_modules/@ritterim/handholdJS/dist/style.css';

const handhold = new Handhold();

Creating steps

Create either a JSON file or JavaScript object and include the steps in an array:

handhold-config.json:

{
  "steps": [
    {
      "number": "1",
      "title": "Step 1",
      "description": "Lorem ipsum dolor sit amet"
    },
    {
      "number": "2",
      "title": "Step 2",
      "description": "Lorem ipsum dolor sit amet"
    },
    {
      "number": "3",
      "title": "Step 3",
      "description": "Lorem ipsum dolor sit amet"
    }
  ]
}

Customization

Inside your created JSON or JavaScript object, create a config property to include directions for customization:

handhold-config.json:

{
  "config": {
    // Config...
  },
  "steps": [
    // Steps...
  ]
}

You can customize the following Handhold elements:

  • boundingBox - Box that wraps around the highlighted element.
  • modal - Modal element where steps will be displayed.
  • nextButton - Button that moves to the next step.
  • previousButton - Button that moves to the next step.
  • finishBtn - Button that moves to the next step.

Each Handhold element can be customized using the following properties:

  • classList - An array of classes to be applied to the element.
  • style - An object containing CSS properties and values to apply to the element.

Full Example

handhold-config.json:

{
  "config": {
    "boundingBox": {
      "style": {
        "outlineStyle": "solid",
        "outlineColor": "var(--navy)"
      }
    },
    "finishBtn": {
      "classList": ["button", "button--orange", "text--white"]
    },
    "nextButton": {
      "classList": ["button"]
    },
    "previousButton": {
      "classList": ["button"]
    }
  },
  "steps": [
    {
      "number": "1",
      "title": "Step 1",
      "description": "Lorem ipsum dolor sit amet"
    },
    {
      "number": "2",
      "title": "Step 2",
      "description": "Lorem ipsum dolor sit amet"
    },
    {
      "number": "3",
      "title": "Step 3",
      "description": "Lorem ipsum dolor sit amet"
    }
  ]
}

Adding steps

Import the JSON file into your JavaScript and pass it into the .setup() method.

main.js:

import Handhold from '@ritterim/handholdJS';
import '../path/to/node_modules/@ritterim/handholdJS/dist/style.css';
import handholdConfig from '../path/to/handhold-config.json'

const handhold = new Handhold();
handhold.setup(handholdConfig);

Initiate Handhold

Call the .init() method.

main.js:

import Handhold from '@ritterim/handholdJS';
import '../path/to/node_modules/@ritterim/handholdJS/dist/style.css';
import handholdConfig from '../path/to/handhold-config.json'

const handhold = new Handhold();
handhold.setup(handholdConfig);
handhold.init();

Matching steps to DOM elements

Inside your HTML you must include a clickable "start" element and pair the steps to relevant HTML elements.

On the start element, apply the data-handhold-start data attribute.

On related HTML elements add the data-step attribute and give it the value of the corresponding step number you want to display.

index.html:

<!-- On start button: -->
<button type="button" data-start-handhold>
  Start Product Tour
</button>

<!-- On elements: -->
<div class="element" data-step="1">
  <p>Lorem Ipsum</p>
</div>
<div class="element" data-step="2">
  <p>Lorem Ipsum</p>
</div>
<div class="element" data-step="3">
  <p>Lorem Ipsum</p>
</div>

Developer Notes

Project setup

  • Fork repo and clone to local machine
  • Inside the project, run npm install to install all dependencies
  • Start the project by running npm run dev

Dependencies

  • Autoprefixer
  • PostCSS
  • PostCSS CLI
  • Sass
  • Vite
  • Vite Plugin Banner

Keywords

walthrough

FAQs

Package last updated on 28 May 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