Last updated: June 2017

Steppers are used to select a number within a range. They allow the user to increase and decrease the selection incrementally rather than having to select from a list. They are typically used for setup and configuration forms, and places where users are incrementing a number.


The centre cell uses 16 padding above and below the text. The width of the centre cell is variable based on the content it contains and context it appears in. Stepper controls shouldn’t move as the value increments. The controllers use 16 padding on either side of the icon and the height is dictated by the center cell. The data chunk value is $epsilon and the label is $eta. In cases where the stepper appears in isolation, outwith the context of other form elements, the data chunk value can be increased to $gamma and the label to $zeta. If it’s clear from the context what property the stepper controls, then the data chunk can appear without a label. The controllers can use either a 17, 24 or 30 icon depending on the situation.


The component uses a minus controller on the left, a plus controller on the right and a centre cell which contains a centred data chunk value. The value part of the data chunk must always be a numerical value. Tapping the left or right controller increments or decrements the value as appropriate. The component uses internal border colored borders, with link colored icons. The label should always specify the units of the value. For example ‘5 people’, not ‘5 number’.

Standard stepper

Standard stepper - no label

Large stepper

Value range

In situations where a maximum and/or minimum value cap are required, the relevant controller element should change to a disabled button state once the cap is reached - the background becomes Grey lighten 5, and the icon should be displayed in border.

Ideally in this situation the stepper component should be accompanied by helper copy which indicates the range the user can expect.