Skip to content

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.

1 blocks63 lineslucide-reactAdded 8 Aug 2026

What's included

  • app/login-page.tsx
  • 1 blocks it is built from, installed with it
  • Needs lucide-react

Works with

  • React
  • Next.js
  • Tailwind CSS
  • TypeScript

npx hoverlab add login-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

Acme Inc

Welcome back

Sign in to pick up where you left off.

or continue with email
Forgot?

New here? Create an account

TermsPrivacySupport

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

Built from

All blocks
  1. Email & Social Login CardCentred sign-in card with social providers, a password reveal toggle and the autoComplete values password managers actually need.

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

Shipped in these templates

Want the whole project rather than this one screen? A template ships every route, the theme tokens and the layout.

Source

app/login-page.tsx
/**
 * A full sign-in screen.
 *
 * Almost nothing beyond the card, and that is the point: an auth page has
 * exactly one job, and every additional element on it is a way to fail at
 * that job. No nav, no marketing, no footer links competing with the form.
 *
 * What is here beyond the card is the small print that stops support
 * tickets — a way back to the marketing site, and the legal links that have
 * to be reachable from somewhere.
 *
 * The gradient wash is `-z-10` behind everything and `pointer-events-none`,
 * so it can never intercept a click meant for the form.
 */

import * as React from 'react'
import { AuthLoginCard } from '@/components/auth-login-card'

export default function LoginPage() {
  return (
    <main className="relative flex min-h-screen flex-col items-center justify-center overflow-hidden bg-background px-4 text-foreground">
      {/* Decoration only — never in front of the form. */}
      <div aria-hidden className="pointer-events-none absolute inset-0 -z-10">
        <div className="absolute -top-40 left-1/3 h-96 w-96 rounded-full bg-primary/15 blur-3xl" />
        <div className="absolute bottom-0 right-1/3 h-96 w-96 rounded-full bg-emerald-500/10 blur-3xl" />
      </div>

      <a
        href="/"
        className="mb-2 flex items-center gap-2 text-sm font-semibold tracking-tight"
      >
        <span
          aria-hidden
          className="flex h-8 w-8 items-center justify-center rounded-xl bg-primary text-primary-foreground"
        >
          A
        </span>
        Acme Inc
      </a>

      <AuthLoginCard />

      <p className="mt-6 text-center text-xs text-muted-foreground">
        <a href="/terms" className="hover:text-foreground">
          Terms
        </a>
        <span aria-hidden className="mx-2">
          ·
        </span>
        <a href="/privacy" className="hover:text-foreground">
          Privacy
        </a>
        <span aria-hidden className="mx-2">
          ·
        </span>
        <a href="/support" className="hover:text-foreground">
          Support
        </a>
      </p>
    </main>
  )
}

How to use it

  1. 1. Copy each of the 1 blocks above into components/ — each block page has its own copy button.
  2. 2. Drop this file at app/login-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
Open the full page for this page

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>.

Auth Screens2 blocks36 lines