Split-Screen Sign Up

Two-column registration screen pairing a sign-up form (social providers, name, email, password with show/hide, terms checkbox) with a full-bleed image showcase and customer testimonial. Includes a left/right image position toggle.

FREE

Auth2: Split-Screen Sign Up

Two-column registration screen: a form column (social providers, dynamic name/email/password fields with a show/hide toggle on the password, a terms checkbox) paired with a full-bleed image column that carries a testimonial quote and author over a dark overlay. The image column can sit on either side via mediaPosition and is hidden below the lg breakpoint.

Free block

This block is free. No license or account is required: install it with the CLI and use it in unlimited projects.

Installation

Radix flavor

bash
npx shadcn add "https://ui.beste.co/r/auth2"

Base UI flavor

bash
npx shadcn add "https://ui.beste.co/r-base/auth2"

This installs the block to components/beste/block/auth2.tsx and the button, input, field, checkbox, and avatar shadcn/ui primitives it's built on.

Quick start

The installed file exports auth2Demo alongside the block: the exact props behind the preview above. Spread it to get a working sign-up screen in one line.

tsx
import { Auth2, auth2Demo } from "@/components/beste/block/auth2";

export default function SignUpPage() {
  return <Auth2 {...auth2Demo} />;
}

Then replace the demo with your own props. Written out, a trimmed setup looks like this:

tsx
import { Auth2 } from "@/components/beste/block/auth2";

export default function SignUpPage() {
  return (
    <Auth2
      heading="Create your account"
      description="Start your 14-day free trial. No credit card required."
      fields={[
        { label: "Full name", placeholder: "Jane Cooper", type: "text" },
        { label: "Email", placeholder: "you@example.com", type: "email" },
        { label: "Password", placeholder: "Create a password", type: "password" },
      ]}
      signinPrompt={{ text: "Already have an account?", linkLabel: "Sign in", href: "/sign-in" }}
      labels={{ submit: "Create account" }}
      showcase={{
        image: { src: "https://images.unsplash.com/photo-1779243829348-85bf26cff23b?w=1200&h=1600&fit=crop", alt: "Team collaborating" },
        quote: "Onboarding took a single afternoon.",
        author: { name: "Maria Santos", title: "Head of Operations" },
      }}
      mediaPosition="right"
    />
  );
}

Props

PropTypeDefaultDescription
headingstringForm column title
descriptionstringSubtext below the heading
socialProvidersSocialProvider[][]Buttons rendered above the divider
fieldsAuthField[][]Text inputs rendered in order, each with its own label/placeholder/type
signinPrompt{ text: string; linkLabel: string; href: string }Line below the form, hidden entirely when not set
labelsobject{}Divider, terms, submit, and toggle copy, see below
showcaseobjectImage, quote, and author for the right/left column; column omitted entirely when not set
mediaPosition"left" | "right""right"Which side the showcase column sits on at lg and above
classNamestringExtra classes for the outer <section>
ts
type SocialProvider = { label: string; icon: React.ReactNode; href?: string };
type AuthField = { label: string; placeholder: string; type?: string };

type Auth2Labels = {
  divider?: string;
  terms?: string;
  submit?: string;
  passwordToggle?: string;
};

type Auth2Showcase = {
  image: { src: string; alt: string };
  quote?: string;
  author?: {
    name: string;
    title: string;
    avatar?: { src: string; alt: string };
  };
};

Behavior notes

Wiring the form up

This block ships the form markup only; state, validation, and submit are yours to add. Our guide wires the shadcn Field primitives to React Hook Form, TanStack Form, and Formisch on one field system.

More Auth blocks

View all Auth
PRO

auth9

Split-Screen Sign In

Two-column sign-in screen pairing a full sign-in form (social providers, email, password with show/hide, remember me) with a brand panel that lists product highlights. Includes a left/right panel position toggle.

PRO

auth32

Editorial Split Sign In

Two-column editorial sign-in pairing an oversized typographic brand panel with a clean email and password form. Stacks the panel above the form on mobile. Perfect for brands that want a minimal, editorial first impression.

FREE

auth13

Centered Sign Up Card

Full-height centered registration card with social providers, name, email, and password fields (with show/hide), a terms checkbox, and a sign-in link. Perfect for SaaS sign-up pages that don't need a split layout.

FREE

auth1

Centered Sign In Card

Full-height centered sign-in screen with social login providers, email and password fields, a show/hide password toggle, remember-me checkbox, and forgot-password link. Perfect for SaaS apps, dashboards, and member portals.

PRO

auth14

Enterprise SSO Sign In

Full-height single sign-on screen with a work-email field, a continue-with-SSO button, and Google and Microsoft providers below a divider. Perfect for B2B and enterprise apps that authenticate via identity providers.

PRO

auth17

Signed Out Confirmation

Full-height signed-out screen with a centered icon, a heading and message, a sign-back-in button, and a return-home link. Perfect for logout confirmations and expired-session pages.