suiss/ui · Block
Signup Steps
A one-question-at-a-time signup flow for name, email, and password, with a progress indicator.
Signup Steps is an open-source block from suiss/ui for React, React Native, SwiftUI and Jetpack Compose. The @esuiss/ui CLI copies its source into your project, so you own the code.
A signup flow that asks one question at a time, name, then email, then password, with progress dots above. Each step slides in from the direction of travel, Continue stays disabled until the answer is valid, and the last step becomes Create account. The finish screen greets the user by first name. Use it for onboarding where a long form would feel heavy.
Installation
CLI
Works in any project with a components.json. See Installation for the one-line registry setup. Or use the suiss/ui CLI:
Manual
- Install the dependencies:
-
Copy the source into
components/blocks/signup-steps.tsx:
- Update the import paths to match your project.
Usage
Edit steps; each has a key, title, description, placeholder, input type, autocomplete value and a valid function. Add matching keys to the Values type when you add steps. Replace the final step with a call to your registration API.
Notes
The progress dots are an ordered list with the current step marked, and each input after the first receives focus automatically.

A progress bar tracks the step, and each step slides in with a title, description and a single Input. The email step checks the format and the password step shows a live rule checklist. Back and Continue Buttons sit in a BottomBar, and the last step creates the account and shows a confirmation.
Installation
The CLI also adds what it builds on: Bottom Bar, Button, Icon, Input, Keyboard Scroll View, Screen, Text. On React Native it also adds the animated view components/ui/animated-view.tsx.
Manual
- Install the dependencies:
-
Add the pieces it builds on: Bottom Bar, Button, Icon, Input, Keyboard Scroll View, Screen, Text, and the animated view
components/ui/animated-view.tsxfrom the next step. -
Copy the animated view into
components/ui/animated-view.tsx:
- Copy the source into
components/blocks/signup-steps.tsx:
- Update the import paths to match your project.
- Install the dependencies:
-
Add the pieces it builds on: Bottom Bar, Button, Icon, Input, Keyboard Scroll View, Screen, Text, and the animated view
components/ui/animated-view.tsxfrom the next step. -
Copy the animated view into
components/ui/animated-view.tsx:
- Copy the source into
components/blocks/signup-steps.tsx:
- Update the import paths to match your project.
- Install the dependencies:
-
Add the pieces it builds on: Bottom Bar, Button, Icon, Input, Keyboard Scroll View, Screen, Text, and the animated view
components/ui/animated-view.tsxfrom the next step. -
Copy the animated view into
components/ui/animated-view.tsx:
- Copy the source into
components/blocks/signup-steps.tsx:
- Update the import paths to match your project.
-
Target iOS 17 or later.
-
Add the Swift package to your app:
- Copy the theme files every view uses:
- Copy the source and every file it uses:
- Add the files to your app target.
- Set
minSdkto 24 or higher and add the dependencies:
- Copy the theme files every view uses:
- Copy the source and every file it uses:
- Update the
com.esuiss.uipackage names to match your project.
Usage
Edit the STEPS copy and RULES to fit your product. onSubmit receives the name, email and password when the last step is completed.
