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.
Single-column sign-in screen centered in the viewport: a stack of social provider buttons above a divider, then email and password fields (with a show/hide toggle on the password), a forgot-password link, a remember-me checkbox, and a submit button, all inside one bordered card.
Free block
This block is free. No license or account is required: install it with the CLI and use it in unlimited projects.
Radix flavor
npx shadcn add "https://ui.beste.co/r/auth1"Base UI flavor
npx shadcn add "https://ui.beste.co/r-base/auth1"This installs the block to components/beste/block/auth1.tsx and the button, input, field, and checkbox shadcn/ui primitives it's built on.
The installed file exports auth1Demo alongside the block: the exact props behind the preview above. Spread it to get a working sign-in screen in one line.
import { Auth1, auth1Demo } from "@/components/beste/block/auth1";
export default function SignInPage() {
return <Auth1 {...auth1Demo} />;
}Then replace the demo with your own props. Written out, a trimmed setup looks like this:
import { Auth1 } from "@/components/beste/block/auth1";
export default function SignInPage() {
return (
<Auth1
heading="Welcome back"
description="Sign in to your account to continue"
forgotPasswordLink={{ label: "Forgot password?", href: "/forgot-password" }}
signupPrompt={{ text: "Don't have an account?", linkLabel: "Sign up", href: "/sign-up" }}
labels={{
email: "Email",
emailPlaceholder: "you@example.com",
password: "Password",
passwordPlaceholder: "Enter your password",
rememberMe: "Remember me",
submit: "Sign in",
}}
/>
);
}| Prop | Type | Default | Description |
|---|---|---|---|
heading | string | – | Screen title above the card |
description | string | – | Subtext below the heading |
socialProviders | SocialProvider[] | [] | Buttons rendered above the divider |
forgotPasswordLink | { label: string; href: string } | – | Link shown at the right of the password field label |
signupPrompt | { text: string; linkLabel: string; href: string } | – | Line below the card, hidden entirely when not set |
labels | object | {} | Field/button copy, see below |
className | string | – | Extra classes for the outer <section> |
type SocialProvider = { label: string; icon: React.ReactNode; href?: string };
type Auth1Labels = {
divider?: string;
email?: string;
emailPlaceholder?: string;
password?: string;
passwordPlaceholder?: string;
rememberMe?: string;
submit?: string;
legal?: string;
passwordToggle?: string;
};<form> only calls e.preventDefault() on submit; there is no onSubmit prop and no wired network call, so the integrator has to add their own submit handler before this authenticates anything.useState, a type="button" icon button that swaps Eye/EyeOff and toggles the input's type between password and text.labels.rememberMe is set, the divider only if labels.divider is set, and the submit button only if labels.submit is set.labels.legal is injected as raw HTML via dangerouslySetInnerHTML, so it can contain an inline <a> (the demo links "Terms of Service" and "Privacy Policy" this way) rather than a separate link-array prop.asChild links (next/link), not real OAuth triggers; each is just a styled anchor to provider.href.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.
auth13
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.
auth9
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.
auth8
Full-height re-authentication screen showing the signed-in user's avatar, name, and email with a single password field, a forgot-password link, and a use-a-different-account option. Perfect for session unlock and returning-user prompts.
auth21
Full-height passwordless sign-in screen with a fingerprint icon, a continue-with-passkey button, and a password fallback below a divider. Perfect for WebAuthn and biometric authentication flows.
auth14
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.
auth6
Full-height passwordless sign-in screen with a single email field, a send-magic-link button, a helper note, and social login providers below a divider. Perfect for passwordless and email-link authentication flows.