Skip to content

LockiStrike/react-progress-stepper

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

70 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation



React Progress Stepper

Minimal and beautiful stepper for React.


Stepper gif Stepper dark gif

βš™οΈ Installation

$ npm i react-progress-stepper
$ yarn add react-progress-stepper

πŸš€ Usage

import React from 'react';
import {
  Stepper,
  Step,
  useStepper,
} from "react-progress-stepper";

export default const App = () => {
  const { step, incrementStep, decrementStep } = useStepper(0, 3);

  return (
    <>
      <Stepper step={step}>
        <Step></Step>
        <Step></Step>
        <Step></Step>
      </Stepper>
      <button onClick={decrementStep}>Prev</button>
      <button onClick={incrementStep}>Next</button>
    </>
  )
}

πŸ”Ž Modules

πŸ”Ή Stepper

Property Type Description
step Integer State to track the current step
vertical Boolean Toggle vertical view
dark Boolean Toggle dark mode
numbered Boolean Toggle if each step is numbered or not
theme Object Customize the appearance of the stepper

πŸ”Ή Step

Property Type Description
customContent Function Override step circle content

πŸ”Ή Content

You can customize the content of each step, as the example below:

Stepper with content gif

import React from 'react';
import {
  Stepper,
  Step,
  useStepper,
  StepNumber,
  StepTitle,
  StepStatus,
  StepDescription,
} from "react-progress-stepper";

export default const App = () => {
const { step, incrementStep, decrementStep } = useStepper(0, 3);

return (
    <>
      <Stepper step={step}>
        <Step>
          <StepNumber />
          <StepTitle>Title</StepTitle>
          <StepStatus />
          <StepDescription>Description</StepDescription>
        </Step>
        <Step>
          <StepNumber />
          <StepTitle>Title</StepTitle>
          <StepStatus />
          <StepDescription>Description</StepDescription>
        </Step>
        <Step>
          <StepNumber />
          <StepTitle>Title</StepTitle>
          <StepStatus />
          <StepDescription>Description</StepDescription>
        </Step>
      </Stepper>
    </>
  )
}

StepNumber

Property Type Description
text String Customize text

StepTitle

StepTitle comes with no property, you can pass text as children.

StepStatus

Property Type Description
textProgress String Customize text
textCompleted String Customize text
textPending String Customize text

StepDescription

StepDescription comes with no property, you can pass text as children.

πŸ”Ή useStepper

Hook to handle the state of stepper easily, you could write your own logic to handle the state.

To work properly you need to provide two arguments to useStepper:

  • Number of current step: starts from 0;
  • Number of total steps.

useStepper provides several utilities:

  • step: state to track the current step;
  • incrementStep: function to increment state by one;
  • decrementStep: function to decrement state by one;
  • goToStep: function to set state to a specific step number.

🎨 Theming and Style Overrides

You can customize the appearance of the stepper in two ways:

πŸ”Ή Using the theme object:

{
  light: {
    step: {
      pending: {
        background: "#ededed",
        color: "#a1a3a7",
      },
      progress: {
        background: "#3c3fed",
        color: "#ffffff",
      },
      completed: {
        background: "#23c275",
        color: "#ffffff",
      },
    },
    content: {
      pending: {
        stepNumber: { color: "#a1a3a7" },
        title: { color: "#a1a3a7" },
        status: { background: "#f2f2f2", color: "#a1a3a7" },
        description: { color: "#a1a3a7" },
      },
      progress: {
        stepNumber: { color: "#131b26" },
        title: { color: "#131b26" },
        status: { background: "#e7e9fd", color: "#3c3fed" },
        description: { color: "#131b26" },
      },
      completed: {
        stepNumber: { color: "#131b26" },
        title: { color: "#131b26" },
        status: { background: "#e9faf2", color: "#23c275" },
        description: { color: "#131b26" },
      },
    },
    progressBar: {
      pending: {
        background: "#ededed",
      },
      progress: {
        background: "#e7e9fd",
        fill: "#3c3fed",
      },
      completed: {
        background: "#e9faf2",
        fill: "#23c275",
      },
    },
  },
  dark: {
    step: {
      pending: {
        background: "#1a1a1a",
        color: "#767676",
      },
      progress: {
        background: "#19b6fe",
        color: "#ffffff",
      },
      completed: {
        background: "#23c275",
        color: "#ffffff",
      },
    },
    content: {
      pending: {
        stepNumber: { color: "#767676" },
        title: { color: "#767676" },
        status: { background: "#1a1a1a", color: "#767676" },
        description: { color: "#767676" },
      },
      progress: {
        stepNumber: { color: "#ece4d9" },
        title: { color: "#ece4d9" },
        status: { background: "#08374c", color: "#19b6fe" },
        description: { color: "#ece4d9" },
      },
      completed: {
        stepNumber: { color: "#ece4d9" },
        title: { color: "#ece4d9" },
        status: { background: "#0b3a23", color: "#23c275" },
        description: { color: "#ece4d9" },
      },
    },
    progressBar: {
      pending: {
        background: "#1a1a1a",
      },
      progress: {
        background: "#08374c",
        fill: "#19b6fe",
      },
      completed: {
        background: "#0b3a23",
        fill: "#23c275",
      },
    },
  },
}

πŸ”Ή Overriding the CSS using class names, example:

.step {
  width: 3em;
  height: 3em;
}

.step.progress {
  background: #6ab04c;
}

✏️ License and Credits

React Progress Stepper is released under the MIT license, feel free to use it, share and modify.

πŸ”Ή Credits and special thanks to:

About

react progress stepper

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • JavaScript 98.9%
  • HTML 1.1%