Pub Version (including pre-releases) GitHub issues GitHub closed issues GitHub last commit GitHub code size in bytes

Recent Changes

Here's a list of some important changes in version: 1.0.0. For a complete list of changes see changelog here.

  • Update to Flutter 3.0
  • Fix android 2 embedding issue
  • Fix lint warnings -- Thank you TheMeanCanEHdian
  • Add line padding -- Thank you Mateusz
  • Update README -- Thank you TimothyNgoi


A growing collection of stepper and page indicator widgets.


The stepper widgets help you to show or collect information from users using organized steps. The page indicator widgets allow you to visually notify users about their current position as they scroll through a group of pages.

Table of Contents

General Guidelines

  • Simply import package:im_stepper/stepper.dart.

  • Important: The direction argument controls whether the stepper is displayed horizontally or vertically. A horizontal IconStepper can be wrapped within a Column with no issues. However, if wrapped within a row, it must also be wrapped within the built-in Expanded widget. The same applies to the vertical IconStepper.

  • Validation: To enable validation before the next step is reached, set the steppingEnabled property to an appropriate value in a StatefulWidget.

  • Controlling Steppers: All steppers are controlled using the activeStep property. You can control a stepper by:-

    • using the built-in next and previous buttons. Note: DotStepper does not have built-in next and previous buttons.

    • tapping individual steps.

    • using external buttons or events.

      • See examples here.
  • To customize the color, border, etc., wrap a stepper widget inside a Container and specify it's decoration argument.


Simple to use icon stepper widget, wherein each icon defines a step. Hence, the total number of icons represents the total number of available steps. See Example.



Simple to use image stepper widget, wherein each image defines a step. Hence, the total number of images represents the total number of steps. See Example.



A simple to use number stepper widget, wherein each number defines a step. Hence, the total count of numbers represents the total number of steps. See Example.



A family of fully customizable, beautiful page indicator widgets with awesome built-in animations. Each dot in a DotStepper represents a step. Supports resizing the dots, managing spacing between dots, enabling lineConnectors, customizing with decorations, etc. See Example.


Shapes Demo
Circle Circle
Square Square
Rectangle Rect
Squircle Squircle
Stadium Stadium
Pipe Pipe
Pipe2 Pipe2


Effect Demo
Blink Blink
Jump Jump
Magnify Magnify
Shift Shift
Shrink Shrink
Slide Slide
Thump Thump
Worm Worm


Here's a collection of articles, examples, posts, etc., about im_stepper. If you find another one please let me know.

  • Medium Article with IconStepper Example: Beautiful Page Indicators and Steppers with the im_stepper package. Note: A new way of controlling the steppers has been introduced in version 0.1.2+8. The article will be updated shorty. For now, please see examples.

  • Interested in reading a book or watching a video on effectively using the im_stepper package in your Flutter Apps? Vote here!


  • Please file an issue here.

  • For more information please send me an email or connect with me.

Connect with me

GitHub Twitter LinkedIn Medium Instagram Facebook

Please Support