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.
Full-height reset-password screen: a centered icon badge, new-password and confirm-password fields (each with its own show/hide toggle), a live checklist that ticks each requirement off as the user types, and a submit button.
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/auth5"Base UI flavor
npx shadcn add "https://ui.beste.co/r-base/auth5"This installs the block to components/beste/block/auth5.tsx and the button, input, and field shadcn/ui primitives it's built on.
The installed file exports auth5Demo alongside the block: the exact props behind the preview above. Spread it to get a working reset screen in one line.
import { Auth5, auth5Demo } from "@/components/beste/block/auth5";
export default function ResetPasswordPage() {
return <Auth5 {...auth5Demo} />;
}Then replace the demo with your own props. Written out, a trimmed setup looks like this:
import { Lock } from "lucide-react";
import { Auth5 } from "@/components/beste/block/auth5";
export default function ResetPasswordPage() {
return (
<Auth5
icon={<Lock className="size-6" />}
heading="Set a new password"
description="Your new password must be different from previously used passwords."
requirements={[
{ label: "At least 8 characters", regex: ".{8,}" },
{ label: "One uppercase letter", regex: "[A-Z]" },
{ label: "One number", regex: "[0-9]" },
]}
labels={{ newPassword: "New password", confirmPassword: "Confirm password", submit: "Reset password" }}
/>
);
}| Prop | Type | Default | Description |
|---|---|---|---|
icon | React.ReactNode | – | Icon shown inside the circular badge above the heading |
heading | string | – | Screen title |
description | string | – | Subtext below the heading |
requirements | PasswordRequirement[] | [] | Rules checked live against the new-password value |
labels | object | {} | Field, submit, and toggle copy, see below |
className | string | – | Extra classes for the outer <section> |
type PasswordRequirement = { label: string; regex: string };
type Auth5Labels = {
newPassword?: string;
newPasswordPlaceholder?: string;
confirmPassword?: string;
confirmPasswordPlaceholder?: string;
submit?: string;
passwordToggle?: string;
};useState), which is what makes the live requirements checklist possible: each requirement.regex string is compiled with new RegExp(...) and tested against the current password value on every render.showPassword and showConfirm), so toggling one does not affect the other.<form> only calls e.preventDefault() on submit; there is no onSubmit prop, so the integrator must add the actual reset call and any mismatch validation themselves.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.
auth40
Full-height change-password screen with current, new, and confirm password fields (show/hide toggles), a forgot-password link, and a cancel option. Perfect for account security settings.
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.
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.
auth4
Full-height password recovery screen with a centered icon, single email field built on the shadcn Field primitives, a send-reset-link button, and a back-to-sign-in link. Perfect for the first step of any password reset flow.
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.
auth18
Full-height security notification screen listing the device, location, and time of a new sign-in, with confirm-it-was-me and secure-my-account actions. Perfect for suspicious-login alerts and account safety prompts.