Skip to content

Reset Password

The end of the forgot-password flow, shipped with the state it reaches more than any other screen: a focused error summary linking to each field, beside a strength meter that is a real <meter>.

2 blocks36 lineslucide-reactAdded 10 Sept 2026

What's included

  • app/reset-password-page.tsx
  • 2 blocks it is built from, installed with it
  • Needs lucide-react

Works with

  • React
  • Next.js
  • Tailwind CSS
  • TypeScript

npx hoverlab add reset-password-page

Or over MCP, from your editor's agent — no account needed.

License

Free to read, copy and install, for personal and non-commercial projects. Shipping it in client work or a paid product needs Pro ($79 once). The source lands in your repo and stops being ours — no attribution, nothing to upgrade.

Was this useful?

Preview

Choose a new password

It needs at least 8 characters. Longer beats complicated.

Create a team account

We use this for the account, and nothing else.

Error: Enter an email address in the format name@example.com.

Error: Enter the company this is for.

A number between 1 and 500. You can change it later.

Error: Seats must be a whole number between 1 and 500.

At least 12 characters. Length is the only requirement.

Error: Use at least 12 characters.

Nothing is checked until you submit — you will not be told your email is wrong while you are still typing it.

The real page, rendered in your current theme — every section below is a live block, not a screenshot.

Built from

All blocks
  1. New Password With Strength MeterSet-a-new-password form with a four-step strength meter, confirm matching and errors announced rather than only coloured.
  2. Form with Error SummaryThe state every form reaches and none of them illustrate: a focused summary at the top linking to each bad field, validation that waits for submit, and somewhere for the failure that belongs to no field.

Only want one section? Open it and copy that block instead — browse Authentication.

Source

app/reset-password-page.tsx
/**
 * Setting a new password, which is the end of the flow `forgot-password-page`
 * starts and the screen that flow is usually missing.
 *
 * Two blocks, and the second one is the point. A reset form on its own is a
 * card with two fields; what makes this a page worth copying is that it
 * ships the error state next to it.
 *
 * Password forms fail more often than any other kind — the two fields
 * disagree, the policy is not met, the link has expired — and they fail
 * for people who are already having a bad day, since nobody resets a
 * password recreationally. <FormErrorSummary> gives those failures a
 * focused summary at the top that links to each field, which is the
 * difference between "something is wrong somewhere below" and a route to
 * the thing that is wrong.
 *
 * The strength meter in <AuthResetPassword> is a native `<meter>` and the
 * errors are announced rather than only coloured, for the same reason: this
 * screen is where a red border and no text strands people.
 */

import * as React from 'react'
import { AuthResetPassword } from '@/components/auth-reset-password'
import { FormErrorSummary } from '@/components/form-error-summary'

export default function ResetPasswordPage() {
  return (
    <main className="min-h-screen bg-background text-foreground">
      <AuthResetPassword />

      {/* The state this screen reaches more often than any other. */}
      <FormErrorSummary />
    </main>
  )
}

How to use it

  1. 1. Copy each of the 2 blocks above into components/ — each block page has its own copy button.
  2. 2. Drop this file at app/reset-password-page.tsx. The imports already point at @/components/…, so they resolve with no edits.
  3. 3. Delete the sections you do not want. Every block takes props, so the copy changes without the layout moving.

For AI

The component, its props, the design tokens it expects and the command that installs it — as one prompt. Paste it into Claude, Cursor, v0 or ChatGPT and what they build around it will match the rest of the catalog instead of inventing its own system.

See the prompt

More Auth Screens

Open the full page for this page

Signup Page

The signup form with the proof under it rather than above it — the person who arrived here has already decided, and scrolling past testimonials is friction applied to the wrong reader.

Auth Screens3 blocks34 lines
Open the full page for this page

Forgot Password

Password reset, plus the magic link beside it — the moment after a password has failed is when somebody is most willing to stop using one.

Auth Screens2 blocks46 lines
Open the full page for this page

Two-Factor Challenge

The second factor with its fallback on the same screen, because a 2FA prompt with no recovery route is a lockout screen wearing a security screen.

Auth Screens2 blocks40 lines
Open the full page for this page

SSO Sign In

A domain field for the employee who signs in daily, and the capability detail below the fold for the IT reviewer who reads it once.

Auth Screens2 blocks31 lines