Sign Up Form

Composed sign-up form that flags a field only once it is left, then clears the moment it is fixed, with a length-weighted strength meter, password reveal and an animated submit lifecycle.

Preview

Create your account

Sign up with taken@example.com to see the failure state.

Already have an account?

Install

Add it with the shadcn CLI, or copy the source manually.

$ bunx --bun shadcn add @beui/signup-form

API Reference

values?
SignUpValues

Controlled values. Omit for uncontrolled.

defaultValues?
any
onValuesChange?
((values: SignUpValues) => void)
onSubmit?
((values: SignUpValues) => any)

Called with valid values only. Return a promise to drive the button state.

validate?
((values: SignUpValues) => Partial<Record<keyof SignUpValues, string>>)

Replace the built-in rules — return a message per invalid field.

status?
"idle" | "loading" | "success" | "error"

Controlled submit state. Omit to let the form track it.

errorMessage?
string

Form-level failure message, shown above the submit button.

title?
any
Create your account
description?
any
Start building in under a minute.
submitLabel?
string
Create account
footer?
any
strengthMeter?
boolean

Show the password strength meter.

true
className?
string
classNames?
SignUpFormClassNames

Keep in mind

Some components on this site are inspired by or recreated from existing work across the web. I'm not here to take credit; just to learn, experiment, and sometimes push things a bit further. If something looks familiar and I forgot to mention you, reach out and I'll fix that right away.

Updated