OnboardingSteps and properties
The onboarding system is built around step types.
Each step type represents a specific kind of user interaction (reading, selecting, typing, confirming).
All steps share a common base API, then add their own specific properties.
Common properties (all steps)
Every step supports the following properties:
| Property | Description | Default | Required |
|---|---|---|---|
type | Defines which UI component is used. Example: | — | Yes |
property | Key used to store the step result in | — | Yes |
title | Main text displayed at the top of the screen | — | No |
description | Secondary text displayed under the title | — | No |
continue_button_title | Overrides the default "Continue" button text | "Continue" | No |
progress_bar_enabled | Shows or hides the progress bar. Some step types require this to be false | true | No |
back_button_enabled | Controls whether the user can go back to the previous step | true | No |
background | Background color of the step | — | No |
display_condition | Controls whether the step is shown, based on previous answers. This is covered in detail in the "Conditional steps" section | — | No |
Step types
Below are all built-in step types and their specific properties.
Welcome step
Used for:
- App introduction
- Value proposition
- First impression screens
| Property | Description | Required |
|---|---|---|
type | Must be | Yes |
progress_bar_enabled | Must be | Yes |
options | Array of slides (title, description, image, etc.) | No |
variant | Controls visual layout | No |
direct_continue | If true, skips the continue button and advances automatically | No |
Intermediate step
Used for:
- Informational screens
- Explanations
- Transitions between questions
| Property | Description | Required |
|---|---|---|
type | Must be | Yes |
image | Image to display on the step | No |
video | Video to display on the step | No |
image_position | Position of the image | No |
image_width | Width of the image | No |
TextInput step
Used for:
- Names
- Free-form input
- Custom values
| Property | Description | Required |
|---|---|---|
type | Must be | Yes |
placeholder | Placeholder text for the input field | Yes |
Stored data format: string
Example: userData.name → "Alex"
Select step
Used for:
- Single or multiple choice questions
| Property | Description | Required |
|---|---|---|
type | Must be | Yes |
options | Array of selectable options | Yes |
multi_select | Enable multiple selection | No |
icon_size | Size of icons in options | No |
icon_position | Position of icons in options | No |
padding_vertical | Vertical padding for options | No |
reset | Allow resetting selection | No |
select_all | Show "select all" option | No |
Stored data format: string[]
Example: userData.features → ["tracking", "analytics"]
Statement step
Used for:
- Yes / No confirmations
- Commitments
- Opinion-based questions
| Property | Description | Required |
|---|---|---|
type | Must be | Yes |
image | Image to display on the statement step | Yes |
Stored data format: "yes" | "no"
Rating step
Used for:
- Testimonials
- Social proof
- Perceived value reinforcement
| Property | Description | Required |
|---|---|---|
type | Must be | Yes |
progress_bar_enabled | Must be | Yes |
options | Array of rating items | No |
Loading step
Used for:
- Simulated processing
- Personalization moments
- Transitions before completion
| Property | Description | Required |
|---|---|---|
type | Must be | Yes |
progress_bar_enabled | Must be | Yes |
options | Array of loading messages | No |
loading_duration | Duration of the loading step | No |
testimonials | Testimonials to display during loading | No |
Custom step
Used for:
- Fully custom UI
- Advanced logic
- Special layouts
| Property | Description | Required |
|---|---|---|
type | Must be | Yes |
component | Custom React component to render | Yes |
Custom steps are covered in detail in the "Custom steps" section.
