Bootstrap 5 Stepper
Tags: bootstrap, javascript, webdev, html
Published: 2021-07-13 14:04:58

## What is Bootstrap Stepper?

Stepper is a component that displays content as a process with defined by user milestones. This is a great solution for a variety of registration forms, where you don't want to scare the user with lots of fields and questions.

______

## Installation

#### Manual installation (zip package)

To take advantage of  our Bootstrap images component and use them in your project, you first need to install the [MDB 5 Free package](https://mdbootstrap.com/docs/standard/getting-started/installation/#section-manual-installation)

_______

#### MDB CLI

Watch our [**Quick Start Tutorial**](https://mdbootstrap.com/docs/standard/getting-started/quick-start/) to discover and use the full potential of MDB 5 and MDB CLI

_______

#### NPM

###### Prerequisites

Before starting the project make sure to install [Node LTS (12.x.x recommended)](https://nodejs.org/en/).

###### Installation

To install MDB UI KIT in your project easily type the following command in the terminal:
```terminal
npm i mdb-ui-kit 
```

###### Importing JS modules

You can import the entire library or just individual modules:
```terminal
import * as mdb from 'mdb-ui-kit'; // lib
import { Input } from 'mdb-ui-kit'; // module 
```

###### Importing CSS file

To import MDB stylesheet please use the following syntax:
```terminal
@import '~mdb-ui-kit/css/mdb.min.css'; 
```

###### Importing SCSS modules

You can also import individual SCSS modules. To do it properly, we recommend to copy them from the node_modules/mdb-ui-kit/src/scss location directly to your project and import in the same way as CSS files.

###### Webpack integration

You can significantly speed up the process of creating a new project based on Webpack using our [Starter](https://github.com/mdbootstrap/mdb-webpack-starter).

__________

#### CDN

Installation via CDN is one of the easiest methods of integrating MDB UI KIT with your project. Just copy the latest compiled JS script tag and CSS link tag from [cdnjs](https://cdnjs.com/libraries/mdb-ui-kit) to the application.

Don't forget to add also Font Awesome and Roboto font if you need. Here's an example code:

###### CSS

```css
<!-- Font Awesome -->
<link
  href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.1/css/all.min.css"
  rel="stylesheet"
/>
<!-- Google Fonts -->
<link
  href="https://fonts.googleapis.com/css?family=Roboto:300,400,500,700&display=swap"
  rel="stylesheet"
/>
<!-- MDB -->
<link
  href="https://cdnjs.cloudflare.com/ajax/libs/mdb-ui-kit/3.3.0/mdb.min.css"
  rel="stylesheet"
/>
```


###### JS

```javascript
<!-- MDB -->
<script
  type="text/javascript"
  src="https://cdnjs.cloudflare.com/ajax/libs/mdb-ui-kit/3.3.0/mdb.min.js"
></script>
```


______
## Customization

##### Basic example

You can automatically initialize the stepper component using `data-mdb-stepper="stepper"`.

###### HTML
```html
<ul class="stepper" data-mdb-stepper="stepper">
  <li class="stepper-step stepper-active">
    <div class="stepper-head">
      <span class="stepper-head-icon"> 1 </span>
      <span class="stepper-head-text"> step1 </span>
    </div>
    <div class="stepper-content py-3">
      <span>
        Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor
        incididunt ut labore et dolore magna aliqua</span
      >
    </div>
  </li>
  <li class="stepper-step">
    <div class="stepper-head">
      <span class="stepper-head-icon"> 2 </span>
      <span class="stepper-head-text"> step2 </span>
    </div>
    <div class="stepper-content py-3">
      Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip
      ex ea commodo consequat
    </div>
  </li>
  <li class="stepper-step">
    <div class="stepper-head">
      <span class="stepper-head-icon"> 3 </span>
      <span class="stepper-head-text"> step3 </span>
    </div>
    <div class="stepper-content py-3">
      Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu
      fugiat nulla pariatur
    </div>
  </li>
</ul>
```

________

##### Change steps using external elements

To go to the next or previous step, you can use the `nextStep` and `previousStep` methods. You can also choose a specific step using the `changeStep` method by entering the step index.

###### HTML

```html
<div class="mb-3">
  <button id="prev-step" class="btn btn-primary">prev</button>
  <button id="step-1" class="btn btn-primary">step1</button>
  <button id="step-2" class="btn btn-primary">step2</button>
  <button id="step-3" class="btn btn-primary">step3</button>
  <button id="next-step" class="btn btn-primary">next</button>
</div>
<div>
  <ul class="stepper" id="stepper-buttons">
    <li class="stepper-step stepper-active">
      <div class="stepper-head">
        <span class="stepper-head-icon"> 1 </span>
        <span class="stepper-head-text"> step1 </span>
      </div>
      <div class="stepper-content py-3">
        Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor
        incididunt ut labore et dolore magna aliqua
      </div>
    </li>
    <li class="stepper-step">
      <div class="stepper-head">
        <span class="stepper-head-icon"> 2 </span>
        <span class="stepper-head-text"> step2 </span>
      </div>
      <div class="stepper-content py-3">
        Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip
        ex ea commodo consequat
      </div>
    </li>
    <li class="stepper-step">
      <div class="stepper-head">
        <span class="stepper-head-icon"> 3 </span>
        <span class="stepper-head-text"> step3 </span>
      </div>
      <div class="stepper-content py-3">
        Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu
        fugiat nulla pariatur
      </div>
    </li>
  </ul>
</div>
```

###### JS
```javascript
const stepper = new mdb.Stepper(document.getElementById('stepper-buttons'));

document.getElementById('next-step').addEventListener('click', () => {
  stepper.nextStep();
});

document.getElementById('prev-step').addEventListener('click', () => {
  stepper.previousStep();
});

document.getElementById('step-1').addEventListener('click', () => {
  stepper.changeStep(0);
});

document.getElementById('step-2').addEventListener('click', () => {
  stepper.changeStep(1);
});

document.getElementById('step-3').addEventListener('click', () => {
  stepper.changeStep(2);
});
```









#### You can see more customization examples on the [📄 Stepper documentation page](https://mdbootstrap.com/docs/standard/components/stepper/)

______

## Crucial Resources

Here are the resources that we have prepared to help you work with this component:

1. Read [📄 Stepper documentation page](https://mdbootstrap.com/docs/standard/components/stepper/) <-- start here
2. In to get the most out of your project, you should also get acquainted with other Components options related to Stepper. See the section below to find the list of them.
3. You can use predesigned Components in [📥 Starter Bootstrap 5 templates](https://mdbootstrap.com/freebies/)
4. Templates are a part of [📦 Free UI Kit for Bootstrap 5](https://mdbootstrap.com/docs/standard/)
5. After finishing the project you can publish it with CLI in order to receive [💽 Free hosting (beta)](https://mdbootstrap.com/docs/standard/cli/)

-----

## Related Content and Styles options & features
- [Accordion](https://mdbootstrap.com/docs/standard/components/accordion/)
- [Alerts ](https://mdbootstrap.com/docs/standard/components/alerts/)
- [Buttons](https://mdbootstrap.com/docs/standard/components/buttons/)
- [Badges](https://mdbootstrap.com/docs/standard/components/badges/)
- [Cards](https://mdbootstrap.com/docs/standard/components/cards/)
- [Button Group](https://mdbootstrap.com/docs/standard/components/button-group/)
- [Carousel](https://mdbootstrap.com/docs/standard/components/carousel/)
- [Chips](https://mdbootstrap.com/docs/standard/components/chips/)
- [Collapse](https://mdbootstrap.com/docs/standard/components/collapse/)
- [Dropdowns](https://mdbootstrap.com/docs/standard/components/dropdowns/)
- [Lightbox](https://mdbootstrap.com/docs/standard/components/lightbox/)
- [Modal](https://mdbootstrap.com/docs/standard/components/modal/)
- [List Group](https://mdbootstrap.com/docs/standard/components/list-group/)
- [Popconfirm](https://mdbootstrap.com/docs/standard/components/popconfirm/)
- [Popovers](https://mdbootstrap.com/docs/standard/components/popovers/)
- [Progress](https://mdbootstrap.com/docs/standard/components/progress/)
- [Rating](https://mdbootstrap.com/docs/standard/components/rating/)
- [Spinners](https://mdbootstrap.com/docs/standard/components/spinners/)
- [Toasts](https://mdbootstrap.com/docs/standard/components/toasts/)
- [Tooltips](https://mdbootstrap.com/docs/standard/components/tooltips/)


-----

## Learn Bootstrap 5 in 1.5H

{% youtube c9B4TPnak1A %}

-----

## Additional resources

Learn web development with our **learning roadmap**:
**[:mortar_board: Start Learning](https://mdbootstrap.com/docs/standard/getting-started/)**

Join our mailing list & receive **exclusive resources** for developers
**[:gift: Get gifts](https://mdbootstrap.com/newsletter/)**

Join our private FB group for **inspiration & community experience**
**[👨‍👩‍👧‍👦 Ask to join](https://www.facebook.com/groups/682245759188413)**

**Support creation of open-source packages** with a STAR on GitHub
[![GitHub Stars](https://img.shields.io/github/stars/mdbootstrap/mdb-ui-kit?label=Star%20now&style=social)](https://github.com/mdbootstrap/mdb-ui-kit/)