This chapter covers the core features and capabilities of Multi-Step Wizard.
# Run the built-in demo wizard
python src/multi_step_wizard.py --demo
# Run interactively from a JSON definition
python src/multi_step_wizard.py --input examples/onboarding_wizard.json --interactive
# Render to HTML
python src/multi_step_wizard.py --input examples/onboarding_wizard.json --render
# Render to an HTML file
python src/multi_step_wizard.py --input examples/onboarding_wizard.json --render --output wizard.htmlFollow this guide to get Multi-Step Wizard up and running in your environment.
| Flag | Description |
|---|---|
--input FILE | Load wizard definition from JSON file |
--render | Render the wizard as HTML to stdout |
--interactive | Run the wizard interactively in the terminal |
--demo | Run a built-in demo wizard |
--output FILE | Write rendered HTML to a file instead of stdout |
{
"id": "user-onboarding",
"title": "Account Setup Wizard",
"showProgressBar": true,
"showStepNumbers": true,
"allowBack": true,
"nextLabel": "Continue",
"backLabel": "Go Back",
"submitLabel": "Complete Setup",
"action": "/api/onboarding",
"method": "POST",
"steps": [
{
"id": "personal",
"title": "Personal Info",
"description": "Tell us about yourself",
"icon": "👤",
"fields": [
{
"name": "full_name",
"type": "text",
"label": "Full Name",
"required": true,
"placeholder": "Jane Smith"
},
{
"name": "email",
"type": "email",
"label": "Email Address",
"required": true,
"help": "We'll send your confirmation here"
}
]
},
{
"id": "company",
"title": "Company Details",
"skipCondition": "personal.role == 'individual'",
"fields": [
{
"name": "company_name",
"type": "text",
"label": "Company Name",
"required": true
}
]
}
]
}| Field | Type | Required | Description |
|---|---|---|---|
id | string | yes | Unique step identifier |
title | string | yes | Step title |
description | string | no | Step description shown below title |
icon | string | no | Emoji icon for the step |
fields | array | yes | Form fields in this step |
skipCondition | string | no | Expression to skip this step |
| Field | Type | Required | Description |
|---|---|---|---|
name | string | yes | Input name attribute |
type | string | yes | text, email, password, number, tel, url, textarea, select, checkbox, radio, date, file |
label | string | yes | Display label |
required | bool | no | Whether the field is required |
placeholder | string | no | Placeholder text |
options | array | no | Options for select/radio fields |
help | string | no | Help text shown below the input |
pattern | string | no | Regex pattern for validation |
minLength | int | no | Minimum character length |
maxLength | int | no | Maximum character length |
Get the full Multi-Step Wizard and unlock everything.
Get the complete guide with every chapter unlocked, including code samples, diagrams, and best practices.
Access all interactive tools with complete data, all workload profiles, and the full scenario library.
Downloadable source code, configuration files, and working examples from every chapter.
Free updates for life. Every new chapter, tool, and improvement included.