Editorial Split Sign In

Welcome back

Sign in to keep building.

The workspace your team already loves — pick up right where you left off.

Don't have an account? Sign up

About this block

Editorial Split Sign InPRO

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.

Auth32: Editorial Split Sign In

A full-height two-column sign-in screen that pairs a left editorial panel (uppercase eyebrow, oversized heading, and description on a bg-muted background) with a right-hand email and password form built from Field primitives, a forgot-password link beside the password label, a submit button, and a signup prompt below, collapsing to a single stacked column below the lg breakpoint.

Upgrade to Pro

Pro blocks install through the shadcn CLI with your license key and ship their full source. Docs and live previews stay open to everyone, so you can read every block's details first.

Upgrade Now

Installation

Swap YOUR_EMAIL and YOUR_KEY for the email and license key on your account. Find your license key on your account page.

Radix flavor

bash
npx shadcn add "https://ui.beste.co/r/auth32?email=YOUR_EMAIL&license_key=YOUR_KEY"

Base UI flavor

bash
npx shadcn add "https://ui.beste.co/r-base/auth32?email=YOUR_EMAIL&license_key=YOUR_KEY"

This installs the block to components/beste/block/auth32.tsx, plus the button, input, and field shadcn/ui primitives it uses for the submit button, the email and password inputs, and the field labels and descriptions.

Quick start

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

tsx
import { Auth32, auth32Demo } from "@/components/beste/block/auth32";

export default function SignInPage() {
  return <Auth32 {...auth32Demo} />;
}

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

tsx
import { Auth32 } from "@/components/beste/block/auth32";

export default function SignInPage() {
  return (
    <Auth32
      eyebrow="Welcome back"
      heading="Sign in to keep building."
      description="Pick up right where you left off."
      labels={{
        email: "Email",
        emailPlaceholder: "you@example.com",
        password: "Password",
        passwordPlaceholder: "Enter your password",
        submit: "Continue",
      }}
      forgotPasswordLink={{ label: "Forgot password?", href: "/reset" }}
      signupPrompt={{ text: "Don't have an account?", linkLabel: "Sign up", href: "/signup" }}
    />
  );
}

Props

PropTypeDefaultDescription
eyebrowstringUppercase tracked label above the heading; hidden when omitted
headingstringOversized editorial heading in the left panel; hidden when omitted
descriptionstringSupporting paragraph under the heading; hidden when omitted
labelsLabels{}Field labels and placeholders; each field renders only if its label is set
forgotPasswordLink{ label: string; href: string }Link shown beside the password label; hidden when omitted
signupPrompt{ text: string; linkLabel: string; href: string }Prompt text plus link below the form; hidden when omitted
classNamestringExtra classes merged onto the outer <section>
ts
type Labels = {
  email?: string;
  emailPlaceholder?: string;
  password?: string;
  passwordPlaceholder?: string;
  submit?: string;
};

Behavior notes

  • The form is presentational only: onSubmit calls e.preventDefault() and nothing else, so the inputs are uncontrolled and no email or password value is captured or lifted out. Wiring real authentication is left to the integrator.
  • Each of the three form rows is conditionally rendered by its label: the email field renders only when labels.email is set, the password field only when labels.password is set, and the submit button only when labels.submit is set. An empty or omitted labels object therefore renders an empty form.
  • Field ids are derived from a single useId() call suffixed with -email and -password, keeping the htmlFor/id pairs unique and stable across instances.
  • The forgot-password link only appears inside the password field, so it is hidden whenever the password field itself is not rendered, regardless of whether forgotPasswordLink is provided.
  • Links use next/link; the block assumes a Next.js app and href values are passed straight through with no validation.
  • Layout is a lg:grid-cols-2 grid at min-h-screen: below lg the editorial panel stacks above the form, and above lg the two columns sit side by side with the panel on the left.

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.

FREE

auth2

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.

PRO

auth49

Split Sign In With Quote

A hairline sign-in panel with a lowercase wordmark, email and password fields, an inline forgot link, a remember toggle, and an SSO fallback, set beside a full-height photo carrying a gradient customer quote.

PRO

auth54

Quiet Sign In

A full-height sign-in split: wordmark, a serif greeting that settles in word by word, email and password fields with a full-width sliding-marker pill and a switch-to-booking line on the left, and a photograph that zooms out on load, then drifts slower than the page, with a serif reassurance over its foot on the right.

PRO

auth50

Split Sign Up With Proof

A hairline sign-up panel carrying a lowercase wordmark, name, work email, and password fields with an SSO fallback and terms note, beside a soft column of checked benefits over an image tile that floats a live customer quote card.

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.