UNPKG

react-wizard-onboarding

Version:

Pretty fancy onboarding wizard for your website, made in React.

106 lines (75 loc) 4.35 kB
# React Wizard Onboarding Pretty fancy onboarding wizard for your website, made in React. ![React Wizard Onboarding](readme-header-img.png) Live **demo** at [https://chrisuser.github.io/react-wizard-onboarding](https://chrisuser.github.io/react-wizard-onboarding/). # Installation Install via npm ```sh npm install --save react-wizard-onboarding ``` or yarn ```sh yarn add react-wizard-onboarding ``` # Usage 1. Wrap your app inside the `<TutorialProvider>` context. ### Example ```typescript const config = createTutorialConfig({ sticky: true, darkMode: true, displayDots: true, hideArrowOnSticky: true }) const Setup: React.FC = () => { return ( <TutorialProvider config={config}> <App /> </TutorialProvider> ) } ReactDOM.createRoot(document.getElementById('root')!).render(<Setup />) ``` 2. Register all the elements of a page to include them into the onboarding carousel. ### Example ```typescript const { registerTutorialComponent, startTutorial } = useTutorial() ... return ( <div className="main-container"> <header ref={registerTutorialComponent({ position: 1, id: 'header', tutorialKey: 'main_tutorial', text: 'This is the header element...' })} > ... ) ``` 3. Call the startTutorial method from useTutorial hook anywhere in the page (eg. with an onClick or a useEffect). ### Example ```html <button onClick={() => startTutorial()}> Start </button> ``` # Hooks - `registerTutorialComponent: (componentData: TutorialComponentData)` Registers a tutorial component to be highlighted during the onboarding steps. - `startTutorial: (tutorialKey?: string)` Starts the tutorial onboarding process. You can also specify which tutorial to start. If not specified, all the previously registered components will be highlighted during the onboarding process. # Props ### `TutorialComponentData` connect a component to the onboarding process | Name | Optional | Type | Description | | ----------- | -------- | -------- | ---------------------------------------------------- | | id | | `string` | Component key or identifier | | position | | `number` | Component chapter position in the onboarding wizard | | tutorialKey | | `string` | Identifier of the onboarding tutorial chapters group | | text | ✔️ | `string` | Onboarding chapter text | | iamge | ✔️ | `string` | Onboarding chapter image | ### `TutorialConfiguration` configure the onboarding wizard UI | Name | Optional | Type | Description | | ----------- | -------- | --------------------------------------------------------------- | -------------------------------------------------------------------------------- | | title | ✔️ | `string` | Onboarding process title | | sticky | ✔️ | `boolean` | Determines if the wizard should stick to the registered components at each step. | | darkMode | ✔️ | `boolean` | Enables dark theme mode. | | displayDots | ✔️ | `boolean` | Determines if page dots should be displayed in default mode (non-sticky only). | | labels | ✔️ | `{ next?: string; complete?: string; close?: string }` | Custom labels for the wizard buttons. | | icons | ✔️ | `{ next?: ReactNode; complete?: ReactNode; close?: ReactNode }` | Custom icons for the wizard buttons. | # License react-wizard-onboarding is MIT licensed.