Sign-In Screen
A full auth page that deliberately contains almost nothing but the form — no nav, no marketing, nothing competing with the one job.
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>.
app/reset-password-page.tsxnpx hoverlab add reset-password-page
Or over MCP, from your editor's agent — no account needed.
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.
It needs at least 8 characters. Longer beats complicated.
The real page, rendered in your current theme — every section below is a live block, not a screenshot.
Only want one section? Open it and copy that block instead — browse Authentication.
/**
* 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>
)
}
components/ — each block page has its own copy button.app/reset-password-page.tsx. The imports already point at @/components/…, so they resolve with no edits.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.
A full auth page that deliberately contains almost nothing but the form — no nav, no marketing, nothing competing with the one job.
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.
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.
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.
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.