A multi-step wizard component for Streamlit — typed fields, validation, animated progress, and structured return values
streamlit-stepper is a fully interactive multi-step wizard for Streamlit. Define steps with typed form fields, get built-in validation, animated progress connectors, an auto-generated review step, and the final collected values back in Python.
- Horizontal & vertical orientations — switchable at runtime via the
orientationparameter - Click-to-jump — return to any completed step to edit values
- Field types — text input, textarea, select dropdown with options
- Required validation — blocks the Next button and shows inline error hints
- Auto-generated review step — any step with empty
fieldsauto-renders a summary of prior entries - Completion screen — displayed after the final submit
- Structured return value — all field values returned to Python as a flat dictionary
- Dot-strip navigation — bottom dot indicator shows overall progress
pip install streamlit-stepperimport streamlit as st
from streamlit_stepper import stepper
result = stepper(steps=[
{"title": "Your Info", "fields": [
{"id": "name", "label": "Name", "type": "text", "required": True},
{"id": "email", "label": "Email", "type": "text", "required": True},
]},
{"title": "Plan", "fields": [
{"id": "plan", "label": "Plan", "type": "select", "options": ["Free", "Pro", "Enterprise"]},
]},
{"title": "Review", "fields": []},
])
st.write(result)- React + TypeScript — frontend component
- Python / Streamlit — backend integration
- PyPI — distributed as
streamlit-stepper
PRs welcome. Open an issue first for major changes.
MIT
If streamlit-stepper simplifies your onboarding flows, consider supporting development:
👉 Donate via PayPal — @noodlebake