beUI Pro for mobile is live — 50 React Native blocks and screens
Step Form
A focused multi-step form with directional transitions, morphing height, stable validation, keyboard flow, and a concise success state.
Focused step form
animated-step-form.tsxOne clear question at a time with configurable text and choice steps, animated progress, directional navigation, validation, and completion feedback.
"use client";
import { AnimatedStepForm } from "@/components/premium/step-form";
export function AnimatedStepFormPreview() {
return (
<div className="flex min-h-[38rem] w-full items-center justify-center py-4">
<AnimatedStepForm />
</div>
);
}
Source code is locked
Get access to install premium components and view the full source.
Open dashboardInstall
Card stack
step-form-stack.tsxA layered brief form where each question rises from a quiet card stack and exits with directional motion.
"use client";
import { StepFormStack } from "@/components/premium/step-form";
export function StepFormStackPreview() {
return (
<div className="flex min-h-[38rem] w-full items-center justify-center py-4">
<StepFormStack />
</div>
);
}
Source code is locked
Get access to install premium components and view the full source.
Open dashboardInstall
Inline prompt
step-form-inline.tsxA borderless compact brief with vertical prompt swaps, inline choice pills, and a quiet neutral surface.
"use client";
import { StepFormInline } from "@/components/premium/step-form";
export function StepFormInlinePreview() {
return (
<div className="flex min-h-[34rem] w-full items-center justify-center py-4">
<StepFormInline />
</div>
);
}
Source code is locked
Get access to install premium components and view the full source.
Open dashboardInstall
Onboarding form
step-form-onboarding.tsxA multi-field signup flow with numbered or compact segmented progress, grouped profile, workspace, and goal details, and animated section transitions.
Set up your account
Usually takes less than two minutes
- 1Profile
- 2Workspace
- 3Goals
"use client";
import { useState } from "react";
import { Button } from "@/components/motion/button";
import {
StepFormOnboarding,
type StepFormOnboardingProps,
} from "@/components/premium/step-form";
export function StepFormOnboardingPreview() {
const [progressStyle, setProgressStyle] =
useState<NonNullable<StepFormOnboardingProps["progressStyle"]>>("steps");
return (
<div className="flex min-h-[43rem] w-full flex-col items-center justify-center py-4">
<fieldset className="flex gap-2">
<legend className="sr-only">Progress style</legend>
{(["steps", "compact"] as const).map((style) => (
<Button
key={style}
type="button"
variant={progressStyle === style ? "outline" : "ghost"}
aria-pressed={progressStyle === style}
className="h-9 rounded-full px-3 text-xs focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring"
onClick={() => setProgressStyle(style)}
>
{style === "steps" ? "Numbered steps" : "Compact progress"}
</Button>
))}
</fieldset>
<StepFormOnboarding progressStyle={progressStyle} />
</div>
);
}
Source code is locked
Get access to install premium components and view the full source.
Open dashboard