suiss/uim · Block

Signup Steps

A three-step sign-up flow that asks for a name, email and password one screen at a time.

Signup Steps is an open-source mobile screen from suiss/uim for React Native and Expo, with SwiftUI and Jetpack Compose versions built from the same design tokens. The @esuiss/uim CLI copies its source into your project, so you own the code.

iOS
Signup Steps on iOS in light mode

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

$ pnpm dlx @esuiss/uim@latest add signup-steps

The CLI also adds what it builds on: Bottom Bar, Button, Icon, Input, Keyboard Scroll View, Screen, Text.

Manual

  1. Install the dependencies:
npx expo install cn phosphor-react-native react-native-reanimated react-native-svg react-native-worklets
  1. Add the pieces it builds on: Bottom Bar, Button, Icon, Input, Keyboard Scroll View, Screen, Text.

  2. Copy the source into components/blocks/signup-steps.tsx:

uniwind/components/blocks/signup-steps.tsx
import { cn } from "cn"
import { CheckIcon } from "phosphor-react-native"
import * as React from "react"
import { Pressable, type TextInputProps, View } from "react-native"
import {
  FadeInDown,
  Keyframe,
  ReduceMotion,
  ZoomIn,
} from "react-native-reanimated"
import { AnimatedView } from "@/components/ui/animated-view"
import { BottomBar, BottomBarContent } from "@/components/ui/bottom-bar"
import { Button } from "@/components/ui/button"
import { Icon } from "@/components/ui/icon"
import { Input } from "@/components/ui/input"
import { KeyboardScrollView } from "@/components/ui/keyboard-scroll-view"
  1. Update the import paths to match your project.

Usage

import { SignupSteps } from "@/components/blocks/signup-steps"
<SignupSteps />

Edit the STEPS copy and RULES to fit your product. onSubmit receives the name, email and password when the last step is completed.