Sadja Progress Stepper (Flutter)
Solved real UX gaps during an Ionic-to-Flutter migration.
A highly customizable Flutter stepper widget published to pub.dev to solve UX gaps encountered during an Ionic-to-Flutter migration.
The Challenge
Off-the-shelf Flutter steppers couldn't support dynamic step insertion, non-linear navigation, or granular visual theming - blocking a critical app migration until a custom solution was built.
Key Decisions & Tradeoffs
- Full visual control: enabled custom icons (images instead of numbers), per-state color overrides (active/disabled/filled), and connector line styling.
- Navigation flexibility: supported both linear and free-movement modes, with runtime toggling.
- Zero external dependencies: built entirely in Dart, meeting the project's data-sovereignty and compliance requirements.
Outcome
Published to pub.dev and integrated into the migration project. Later superseded when requirements reverted to a simpler linear-only flow, but it unblocked the team during a critical phase.