# shipshapecode/shepherd

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/shipshapecode-shepherd).**

13,741 stars · 655 forks · JavaScript · NOASSERTION

## Links

- GitHub: https://github.com/shipshapecode/shepherd
- Homepage: https://shepherdjs.dev
- awesome-repositories: https://awesome-repositories.com/repository/shipshapecode-shepherd.md

## Topics

`hacktoberfest` `shepherd` `tour`

## Description

Shepherd is a client-side onboarding framework and interactive product tour library used to create step-by-step guided walkthroughs. It functions as a UI guided tour system and DOM element highlighting tool that displays instructional overlays and tooltips to guide users through a web application interface.

The system features a dynamic layout engine for anchoring tooltips to target elements and preventing screen overflow. It supports multi-element highlighting to draw attention to several UI components simultaneously and includes focus trapping to restrict keyboard navigation to active tour modals.

The framework provides capabilities for tour orchestration, including conditional step triggering based on application state and the persistence of user progress and completion states within the browser. It also includes customizable interaction controls for step buttons and keyboard navigation support.

## Tags

### Part of an Awesome List

- [Onboarding and Walkthroughs](https://awesome-repositories.com/f/awesome-lists/devtools/onboarding-and-walkthroughs.md) — Offers a comprehensive framework for building interactive, step-by-step guided tours and user onboarding flows. ([source](https://github.com/shipshapecode/shepherd/blob/main/CHANGELOG.md))
- [Interactive Walkthroughs](https://awesome-repositories.com/f/awesome-lists/devtools/onboarding-and-walkthroughs/interactive-walkthroughs.md) — Provides an interactive system for building step-by-step guided walkthroughs of application workflows.

### Software Engineering & Architecture

- [Tour State Management](https://awesome-repositories.com/f/software-engineering-architecture/state-machine-logic/tour-state-management.md) — Coordinates tour progress and instance methods across the application using shared state management.

### User Interface & Experience

- [Guided Tour Components](https://awesome-repositories.com/f/user-interface-experience/component-utilities/guided-tour-components.md) — Provides interactive overlays and tooltips that guide users through a UI via a series of steps.
- [Element Highlighting Utilities](https://awesome-repositories.com/f/user-interface-experience/element-highlighting-utilities.md) — Provides visual utilities to isolate and emphasize specific DOM elements during interactive tours.
- [Element Positioning](https://awesome-repositories.com/f/user-interface-experience/element-positioning.md) — Updates the coordinate location of tooltips relative to target elements to avoid screen overflow. ([source](https://github.com/shipshapecode/shepherd/blob/main/CHANGELOG.md))
- [Floating Element Positioning](https://awesome-repositories.com/f/user-interface-experience/floating-element-positioning.md) — Calculates coordinate offsets for tooltips relative to target elements to prevent screen overflow.
- [Onboarding Frameworks](https://awesome-repositories.com/f/user-interface-experience/onboarding-frameworks.md) — Provides a lightweight framework for managing instructional onboarding sequences for new users.
- [Product Tour Libraries](https://awesome-repositories.com/f/user-interface-experience/product-tour-libraries.md) — Provides a comprehensive library for building interactive product tours that highlight specific UI features.
- [Focus Traps](https://awesome-repositories.com/f/user-interface-experience/focus-traps.md) — Constrains keyboard navigation to the active tour modal to prevent interaction with background page elements.
- [Multi-Element Highlighting](https://awesome-repositories.com/f/user-interface-experience/interface-element-highlighting-systems/multi-element-highlighting.md) — Provides the ability to highlight several distinct UI components simultaneously to guide user attention during a single instructional step. ([source](https://github.com/shipshapecode/shepherd/blob/main/CHANGELOG.md))
- [Keyboard Navigation](https://awesome-repositories.com/f/user-interface-experience/keyboard-navigation.md) — Enables advancing or dismissing tour steps via keyboard shortcuts for improved accessibility. ([source](https://github.com/shipshapecode/shepherd/blob/main/CHANGELOG.md))
- [Onboarding Progress Tracking](https://awesome-repositories.com/f/user-interface-experience/onboarding-progress-tracking.md) — Saves a user's tour completion state locally to prevent repetitive walkthroughs across sessions.
- [Conditional Step Execution](https://awesome-repositories.com/f/user-interface-experience/progress-steps/tour-step-orchestrators/conditional-step-execution.md) — Allows tour steps to be executed only when specific logic or application state requirements are met.
- [Conditional Step Triggers](https://awesome-repositories.com/f/user-interface-experience/progress-steps/tour-step-orchestrators/conditional-step-triggers.md) — Allows tour steps to be displayed only when specific function-based triggers are met. ([source](https://github.com/shipshapecode/shepherd/blob/main/CHANGELOG.md))
