Pattern Lock Unlock

Full-height pattern unlock screen with a tappable 3x3 dot grid that draws connecting lines as dots are selected, plus clear and unlock controls. Perfect for app lock screens and quick re-authentication.

FREE

Auth38: Pattern Lock Unlock

Full-height pattern-unlock screen: a heading and description above a tappable 3x3 dot grid that draws an SVG line connecting dots as they're selected, then an unlock button (enabled once enough dots are picked) and a clear button, with an optional forgot-pattern link underneath.

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/auth38"

Base UI flavor

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

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

Quick start

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

tsx
import { Auth38, auth38Demo } from "@/components/beste/block/auth38";

export default function UnlockPage() {
  return <Auth38 {...auth38Demo} />;
}

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

tsx
import { Auth38 } from "@/components/beste/block/auth38";

export default function UnlockPage() {
  return (
    <Auth38
      heading="Draw your pattern"
      description="Connect at least 4 dots to unlock your account."
      minLength={4}
      labels={{ clear: "Clear" }}
      unlockButton={{ label: "Unlock", href: "/dashboard" }}
      forgotPrompt={{ text: "Forgot your pattern?", linkLabel: "Reset it", href: "/reset-pattern" }}
    />
  );
}

Props

PropTypeDefaultDescription
headingstringScreen title
descriptionstringSubtext below the heading
minLengthnumber4Minimum number of connected dots required to enable the unlock button
labels{ clear?: string }{}Clear button label
unlockButton{ label: string; href: string }Primary button, hidden entirely when not set
forgotPrompt{ text: string; linkLabel: string; href: string }Line below the buttons, hidden entirely when not set
classNamestringExtra classes for the outer <section>

Behavior notes

More Auth blocks

View all Auth
FREE

auth30

PIN Keypad Unlock

Full-height numeric keypad lock screen with PIN dots, a biometric shortcut, and a backspace key. Perfect for mobile app locks and quick re-authentication.

PRO

auth23

Account Locked

Full-height lockout screen shown after too many failed attempts, with a live mm:ss countdown, a retry button that unlocks when the timer ends, and a reset-password link. Perfect for rate-limited sign-in protection.

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

auth8

Welcome Back Unlock

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.

PRO

auth47

Recovery Phrase Entry

Full-height account recovery screen with a numbered grid of word inputs and paste-to-fill support, plus a restore button that unlocks once every word is entered. Perfect for seed phrase and recovery-phrase restore flows.

FREE

auth5

Set New Password

Full-height reset-password screen with new and confirm password fields (each with a show/hide toggle) and a live requirements checklist that ticks off rules as the user types. Perfect for the final step of a password reset or invite flow.