This version of the documentation is outdated. Check the latest version here!

Stepper

The stepper control lets the user adjust a value by increasing and decreasing it in small steps. Steppers are used in situations where a user needs to adjust a value by a small amount.

Basic Usage

Simple stepper
<Stepper label="Label" />
Min, max, step values
<Stepper label="Label" min={-20} max={20} step={2} />

Value binding

Controlled component

Stepper can be used as controlled component by providing the value and the onChange props.

Controlled component
const App = () => {
    const [value, setValue] = useState(15);
    return <Stepper value={value} onChange={(ev) => setValue(ev.target.value)} />;
}

Uncontrolled component

Uncontrolled component
<Stepper label="Uncontrolled stepper" defaultValue={12} />

Options

Name Type Default value Description
color String undefined A predefined color to style the component.
Supported values are:
  • primary
  • secondary
  • success
  • danger
  • warning
  • info
  • dark
  • light
description String undefined A description that shows up under the label of the component.
disabled Boolean false Initial disabled state of the component. This will take no effect in inline display mode.
label String undefined Sets the label of component.
inputPosition String center Specify the input field position. It can be "start", "end" or "center".
defaultValue Number undefined Defines the initial value of the stepper, when using it as an uncontrolled component.
max Number 100 Specify the maximum value that can be selected.
min Number 0 Specify the minimum value that can be selected.
onChange Function undefined An event handler that is called every time the stepper changes value. The event is passed as the first parameter and it's target value property is set to the new value.
step Number 1 Specify the step between values.
rtl Boolean false Right to left display.
theme String undefined

Sets the visual appearance of the component.

If it is 'auto' or undefined, the theme will automatically be chosen based on the platform. If custom themes are also present, they will take precedence over the built in themes, e.g. if there's an iOS based custom theme, it will be chosen on the iOS platform instead of the default iOS theme.

Supplied themes:
  • 'ios' - iOS theme
  • 'material' - Material theme
  • 'windows' - Windows theme
It's possible to modify theme colors or create custom themes.
Make sure that the theme you set is included in the downloaded package.
themeVariant String undefined

Controls which variant of the theme will be used (light or dark).

Possible values:
  • 'light' - Use the light variant of the theme.
  • 'dark' - Use the dark variant of the theme.
  • 'auto' or undefined - Detect the preferred system theme on devices where this is supported.

To use the option with custom themes, make sure to create two custom themes, where the dark version has the same name as the light one, suffixed with '-dark', e.g.: 'my-theme' and 'my-theme-dark'.

value Number 0 Specify the value of the stepper.

Customizing the appearance

While the provided pre-built themes are enough in many use cases, most of the times on top of adapting to a specific platform, you'd also like to match a brand or color scheme. Mobiscroll provides various ways to achieve this:

Override the Sass Color Variables

A convenient way to customize the colors of the Mobiscroll components is to override the Sass color variables.

Let's say your branding uses a nice red accent color, and you'd like that color to appear on the Mobiscroll components as well, while still using platform specific themes (e.g. ios on iOS devices, material on Android devices, and mobiscroll on desktop). You can override the accent color for every theme:

$mbsc-ios-accent: #e61d2a;
$mbsc-material-accent: #e61d2a;
$mbsc-mobiscroll-accent: #e61d2a;

@import "~@mobiscroll/React/dist/css/mobiscroll.react.scss"
It's important that you override the variables BEFORE the scss file import, otherwise it won't make any difference.
Here's a complete guide on how to set up Mobiscroll with SASS support

You can also customize the colors on many levels:

  1. Theme specific variables (ex. $mbsc-material-background, $mbsc-ios-dark-text) are applied to all components in a theme. Complete list of variables here.
  2. Component specific global variables (ex. $mbsc-card-background-light, $mbsc-listview-text-dark) are applied to all themes for a specific component.
  3. Component and theme specific variables (ex. $mbsc-ios-dark-form-background, $mbsc-material-input-text) are applied to a specific theme and a specific component.