Home / Blocks / Application / Signup Forms
7 blocks in this section

Shadcn Signup and Multi-Step Onboarding Forms

Start with a simple shadcn/ui signup page or a multi-step onboarding form with progress, social authentication, animation, or illustration.

How it works

Three steps to working code

Install a block and the files land in your repository. Nothing calls back to us.

  1. terminal

    $ npx shadcn@latest add @shadcnstore/signup-page-1

    ✓ Checking registry

    ✓ Installing dependencies

    01

    Run one command

    Every preview above prints its own. The CLI writes the block and the components it needs into your project.

    Installation docs
  2. your project 3 files added

    components/

    ├─ ui/

    ├─ button.tsx

    └─ navigation-menu.tsx

    └─ signup-page-1.tsx

    02

    Get real files

    React, TypeScript and Tailwind v4, with no framework imports. Next.js, Vite, Remix and Astro all work.

  3. signup-page-1.tsx

    <Menu.Trigger

    - asChild

    + render={<button />}

    />

    03

    Edit it as your own

    Built on Base UI, not Radix, so keyboard and focus behaviour come from the primitive.

Blocks that hold state already carry the use client directive the Next.js App Router needs.

Guide

Signup forms and the onboarding that follows#

A signup form has one job, and almost every version of it fails the same way: by asking for things the account does not need yet. These layouts cover the short form, the multi-step wizard for products that genuinely need more, and the onboarding that should carry the rest.

The signup layouts in this collection#

  • Signup Page 1: a card form with social options and the terms and privacy links under the button. Free.
  • Signup Page 2: the multi-step form with progress tracking, for a flow with two or three genuine stages.
  • Signup Page 3: the simple form with social authentication given the prominent position.
  • Signup Page 4: a labelled card with a confirm-password field and social options above the fields.
  • Signup Page 5: a two-column layout with an illustration, for products where the sign-in screen carries brand.
  • Signup Page 6: a split-screen signup with the card beside a product panel.
  • Signup Page 7: the strict wizard. Each step blocks until it validates, and a review step lets somebody check everything before submitting.

One step or several#

Use one screen whenever the account can be created from an email and a password. Every extra field measurably costs completions, and anything you can ask after the account exists should be asked then, when the person has something to lose by leaving.

A multi-step form is right when the stages are genuinely different questions, such as an account, then an organisation, then an invite list. Signup Page 7 is the version to reach for, because it blocks per step rather than collecting everything and failing at the end. Being told on the final screen about an error three screens back is the worst outcome a wizard can produce.

Password rules people can follow#

Requirements are shown before the field is filled rather than as an error after submission, and the strength indicator updates as somebody types. Telling a person the rules only once they have broken them is the most common failure in this form, and it is entirely avoidable.

The confirm-password field is optional in these layouts. It is worth including when there is no email confirmation step, and worth dropping when there is, since a reveal toggle solves the same problem with less typing.

Social signup without the wall of buttons#

Where social options are offered, one method reads as the default rather than presenting six equal choices. A row of identical provider buttons is a decision handed to somebody who did not want to make one. The buttons call whatever handler you pass, so no identity provider is baked into the markup.

What these forms leave to your server#

They validate, disable the submit while a request is in flight, render the error and the success path, and nothing else. No account is created, no password is hashed, no token is issued. That boundary is what keeps the same screens usable over your own backend, a managed auth provider or a framework starter kit.

The rest of the account flow#

Signup is one screen of four. The verification pages handle the email confirmation or two-factor step immediately after, the login form is where everybody returns, and password recovery catches the ones who cannot. All four share a layout language, so an account flow does not change design halfway through, and they land inside the app shell once somebody is in.

FAQ

Signup Forms questions, answered

What people ask before choosing a block from this collection.

Signup Page 2 tracks progress across steps, and Signup Page 7 is the stricter wizard: each step blocks until it validates, and a review step lets the user check everything before submitting. Blocking per step is what stops someone reaching the end and being told about an error three screens back.
As little as gets the account created. Everything else belongs in onboarding, after the person has something to lose by leaving. The multi-step layouts exist for products that genuinely need more, not as a way to ask more.
Requirements are shown before the field is filled rather than as an error after submission, and the indicator updates as the user types. Telling someone the rules only once they have broken them is the most common failure in this form.
Signup Page 1, the responsive signup page, is free. The multi-step, social, animated, two-column and wizard variants are Pro. See the pricing page for licence terms.

Documentation

The components behind these blocks

How to install, customise and combine the shadcn/ui components this collection is built from.

Free & Premium Templates

Launch Faster with Complete Templates

Love these blocks? Get our free dashboard and landing page templates with 30+ pre-built pages and all the components you need. Premium templates with advanced features launching soon at $69.

Free Templates Now
30+ Pages Included
Premium Coming Soon