Face ID Sign In

Sign in with Face ID

Look at your device to verify it's you.

Position your face in the frame

Use password instead

About this block

Face ID Sign InPRO

Full-height biometric sign-in with an animated face-scan viewfinder that runs through idle, scanning, and recognized states, plus a continue action and a password fallback. Perfect for Face ID and biometric authentication.

Auth10: Face ID Sign In

Full-height biometric sign-in screen built around an animated face-scan viewfinder: bracketed corners and a face icon cycle through idle, scanning, and recognized states when the scan button is clicked, ending in a continue action. A password fallback link sits below regardless of scan status.

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/auth10?email=YOUR_EMAIL&license_key=YOUR_KEY"

Base UI flavor

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

This installs the block to components/beste/block/auth10.tsx and the button shadcn/ui primitive it's built on.

Quick start

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

tsx
import { Auth10, auth10Demo } from "@/components/beste/block/auth10";

export default function FaceIdPage() {
  return <Auth10 {...auth10Demo} />;
}

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

tsx
import { Auth10 } from "@/components/beste/block/auth10";

export default function FaceIdPage() {
  return (
    <Auth10
      heading="Sign in with Face ID"
      description="Look at your device to verify it's you."
      labels={{
        scanPrompt: "Position your face in the frame",
        scanning: "Scanning…",
        success: "Face recognized",
        scanButton: "Scan my face",
      }}
      continueButton={{ label: "Continue", href: "/dashboard" }}
      fallbackLink={{ label: "Use password instead", href: "/sign-in" }}
    />
  );
}

Props

PropTypeDefaultDescription
headingstringScreen title
descriptionstringSubtext below the heading
labelsAuth10Labels{}Status copy and scan button label, see below
continueButton{ label: string; href: string }Shown only once scanning succeeds
fallbackLink{ label: string; href: string }Always-visible link below the frame
classNamestringExtra classes for the outer <section>
ts
type Auth10Labels = {
  scanPrompt?: string;
  scanning?: string;
  success?: string;
  scanButton?: string;
};

Behavior notes

  • Clicking the scan button runs startScan, which is guarded by if (status !== "idle") return, so it's a no-op once a scan is already in progress or finished.
  • The scan is a purely client-side simulation: startScan sets status to "scanning" and a setTimeout(..., 1800) flips it to "success" after 1.8 seconds. There is no camera access or real biometric API involved.
  • The frame's corner brackets and center icon change together with status: neutral border-border and a muted ScanFace icon at idle, border-primary with an animate-pulse icon plus an animate-ping ring at scanning, and border-emerald-500 with a CircleCheck icon at success.
  • The action area below the frame swaps between three mutually exclusive states based on status: the scan button (idle), a disabled button with a spinning Loader2 icon (scanning), and the continueButton link (success). Only one renders at a time.
  • fallbackLink renders independently of status and stays visible through every state.

More Auth blocks

View all Auth
PRO

auth21

Passkey Sign In

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.

PRO

auth27

Sign-In Error

Full-height authentication error screen with a warning icon, an explanation, an optional error code, and try-again, back, and contact-support actions. Perfect for failed sign-in and OAuth callback errors.

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

auth24

Complete Your Profile

Full-height profile setup step with an avatar uploader, a display name field, and a bio textarea, plus a skip option. Perfect for the post-sign-up onboarding step where users personalize their account.

PRO

auth46

Confirm It's You

Full-height step-up authentication screen that re-asks for the password before a sensitive action, showing the signed-in account and a cancel option. Perfect for protecting billing, security, and destructive actions.

PRO

auth45

Human Verification

Full-height CAPTCHA-style check with an animated I'm-not-a-robot control that runs through verifying and verified states and unlocks the continue button. Perfect for bot protection before sign-in.