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.
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.
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.
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
npx shadcn add "https://ui.beste.co/r/auth10?email=YOUR_EMAIL&license_key=YOUR_KEY"Base UI flavor
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.
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.
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:
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" }}
/>
);
}| Prop | Type | Default | Description |
|---|---|---|---|
heading | string | – | Screen title |
description | string | – | Subtext below the heading |
labels | Auth10Labels | {} | 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 |
className | string | – | Extra classes for the outer <section> |
type Auth10Labels = {
scanPrompt?: string;
scanning?: string;
success?: string;
scanButton?: string;
};startScan, which is guarded by if (status !== "idle") return, so it's a no-op once a scan is already in progress or finished.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.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.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.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.
auth27
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.
auth46
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.
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.
auth24
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.
auth17
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.