Sign Up Form

A ready registration form with name, email, password, confirmation and terms: errors appear only after a field loses focus and clear once it is valid, plus a password strength bar, a show-password toggle and a submit button with loading, success and error states.

Preview

Sign Up Form preview width

Install

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

$ bunx --bun shadcn add @karaui/signup-form
@karaui not found? Add it to components.json
{
  "registries": {
    "@karaui": "https://karaui.kamisama-v0.my.id/r/{name}.json"
  }
}

@karaui is in shadcn's public registry directory, so the latest CLI needs no setup. On an older CLI, merge this into the existing file once and every @karaui/… install resolves.

API Reference

values?
SignUpValues

Controlled values. Omit for uncontrolled.

—
defaultValues?
Partial<SignUpValues>
—
onValuesChange?
((values: SignUpValues) => void)
—
onSubmit?
((values: SignUpValues) => void | Promise<void>)

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?
ReactNode
Create your account
description?
ReactNode
Start building in under a minute.
submitLabel?
string
Create account
footer?
ReactNode
—
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