circle_stepper 1.3.0%2B2

SDKflutter
Platformandroidioswindowslinuxmacosweb

Best circle stepper for flutter

CircleStepper A customizable, animated circular stepper widget for Flutter, designed to visualize progress across multiple steps. With customizable colors, titles, descriptions, and progress directions, CircleStepper adds a visually appealing and interactive element to your Flutter applications.

Web

<img src=https://github.com/user-attachments/assets/6035c264-7e7e-435c-8af3-2352d960f336 width="500">

Android

<img src=https://github.com/user-attachments/assets/002c571b-50b6-4a94-8daf-90ee662f8c88 height="500">

Ios

<img src=https://github.com/user-attachments/assets/d9f80b0b-60f1-40aa-a622-bd53b778d245 height="500">

Features

  • Animated Circular Progress: Smooth animations between steps, indicating progress visually.
  • Customizable Appearance: Easily configure colors, titles, descriptions, and fonts for each step.
  • Direction Control: Choose between clockwise or counter-clockwise progress directions.
  • Multiple Steps: Define the number of steps and track progress dynamically.
  • Responsiveness: Designed to adapt to different screen sizes.

Getting started

Installation Add circle_stepper to your project's pubspec.yaml dependencies:

dependencies:
  circle_stepper: ^1.3.0+2

Then, run:

flutter pub get

Usage

Include short and useful examples for package users. Add longer examples to /example folder.

Here is a simple example of how to use the CircleStepper widget:

    CircleStepper(
        fillDirection: FillDirection.clockwise,
        step: step,
        totalSteps: totalSteps,
        betweenStepText: 'of',
        stepTitles: const {
          1: 'Step 1',
          2: 'Step 2',
          3: 'Step 3',
          4: 'Step 4',
        },
        stepDescriptions: const {
          1: 'Description 1',
          2: 'Description 2',
          3: 'Description 3',
          4: 'Description 4',
        },
        progressColor: Colors.greenAccent,
        backgroundColor: Colors.grey.withAlpha(50),
        fontFamily: 'Poppins',
    ),

Parameters:

ParameterTypeDescription
widthdouble?Width of the circular stepper. If null, defaults to a calculated height value.
heightdouble?Height of the circular stepper. If null, defaults to a calculated width value.
stepintThe current step to display, must be between 1 and totalSteps.
totalStepsintTotal number of steps to be shown in the stepper.
betweenStepTextStringText to display between the current step and the total steps.
stepTitlesMap<int, String>A map of step titles corresponding to each step number.
stepDescriptionsMap<int, String>A map of step descriptions corresponding to each step number.
progressColorColorColor for the progress fill in the circular stepper.
backgroundColorColorBackground color for the circular progress bar.
textStyleStepperTextStyle?Custom text style for the stepper text (e.g., "1 of 4").
textStyleTitleTextStyle?Custom text style for the step titles.
textStyleDescriptionsTextStyle?Custom text style for the step descriptions.
colorTextStepperColorColor of the stepper text. Defaults to Colors.black.
colorTitleColorColor of the step titles. Defaults to Colors.black.
colorDescriptionsColorColor of the step descriptions. Defaults to Colors.grey.
fillDirectionFillDirectionDirection in which the circular progress fills (clockwise or counterclockwise).
strokeWidthdouble?Width of the progress circle stroke. Default is 6.
fontFamilyString?set font default 'Poppins'.

Advanced Usage

CircleStepper(
  step: 3,
  totalSteps: 5,
  betweenStepText: 'of',
  stepTitles: const {
    1: 'Intro',
    2: 'Basics',
    3: 'Intermediate',
    4: 'Advanced',
    5: 'Complete',
  },
  stepDescriptions: const {
    1: 'Introduction to the topic.',
    2: 'Learning the basic concepts.',
    3: 'Understanding intermediate topics.',
    4: 'Mastering advanced techniques.',
    5: 'Completion of the course.',
  },
  progressColor: Colors.greenAccent,
  backgroundColor: Colors.grey.withAlpha(50),
  colorTextStepper: Colors.blue,         // Custom text color
  colorTitle: Colors.black,              // Custom title color
  colorDescriptions: Colors.deepPurple,  // Custom description color
  textStyleStepper: const TextStyle(     // Custom text style for stepper text
    fontSize: 16,
    fontWeight: FontWeight.bold,
    fontFamily: 'Poppins',
  ),
  textStyleTitle: const TextStyle(       // Custom text style for title
    fontSize: 20,
    fontWeight: FontWeight.w600,
    fontFamily: 'Poppins',
  ),
  textStyleDescriptions: const TextStyle(// Custom text style for description
    fontSize: 16,
    fontStyle: FontStyle.italic,
    fontFamily: 'Poppins',
  ),
)

Additional information

  • For issues, feedback, or contributions, check out our GitHub repository.
  • You can submit issues or feature requests via the issue tracker.
  • Contributions are welcome! Fork the repository and create a pull request.