Skip to content

Steppers

A Stepper is a compact control used to increase or decrease a numeric value by fixed increments. It provides a clear and efficient way for users to adjust quantities or numeric inputs without typing.

Use this component when you want users to quickly modify values (e.g., item quantity, number of guests, unit count).


A stepper with outline styling and border container.


A stepper with circular button controls.


A stepper combining outline container with round button controls.


A compact stepper with minimal styling and vertical divider.


A stepper in disabled state that cannot be interacted with.


PropertyTypeDescription
valueintThe current numeric value displayed in the stepper. Defaults to 0.
minintThe minimum value that can be set. Value cannot go below this number. Defaults to 0.
maxint?The maximum value that can be set. If null, there is no upper limit.
onAddvoid Function()?Callback function when the add button is pressed to increment the value.
onRemovevoid Function()?Callback function when the remove button is pressed to decrement the value.
widgetAddWidget?Custom widget to display as the add button. If null, uses default add icon.
widgetRemoveWidget?Custom widget to display as the remove button. If null, uses default remove icon.
widthdoubleThe width allocated for displaying the numeric value. Defaults to 40.
heightdouble?The height of the stepper component.
spacingdoubleThe spacing between the remove button, value display, and add button. Defaults to 8.
styleTextStyle?Custom text style for the displayed value.
isMinimalboolWhether to use minimal style with a vertical divider instead of value display. Defaults to false.
disabledboolWhether the stepper is disabled and cannot be interacted with. Defaults to false.

Additional properties for the outline variant:

PropertyTypeDescription
borderBoxBorder?Custom border for the container. If null, uses default gray border.
paddingEdgeInsetsGeometry?Padding inside the container. Defaults to EdgeInsets.fromLTRB(8, 5, 8, 5).
borderRadiusBorderRadiusGeometry?Border radius for the container. Defaults to BorderRadius.all(Radius.circular(100)).

Additional properties for the outline round button variant:

PropertyTypeDescription
borderBoxBorder?Custom border for the container. If null, uses default gray border.
paddingEdgeInsetsGeometry?Padding inside the container. Defaults to EdgeInsets.all(8).
borderRadiusBorderRadiusGeometry?Border radius for the container. Defaults to BorderRadius.all(Radius.circular(100)).

Additional properties for the minimal variant:

PropertyTypeDescription
borderBoxBorder?Custom border for the container. If null, uses default gray border.
paddingEdgeInsetsGeometry?Padding inside the container. Defaults to EdgeInsets.symmetric(horizontal: 8).
borderRadiusBorderRadiusGeometry?Border radius for the container. Defaults to BorderRadius.all(Radius.circular(100)).