# Login Card

> Centered sign-in: email, password, one social fallback.

A shadcn/ui block from the [@blockforge](https://blockforge.terravidhal.me) registry, listed on [shadcn.exchange](https://shadcn.exchange/r/blockforge/login-card).

- Page, with a live preview: https://shadcn.exchange/r/blockforge/login-card
- Screenshot: https://abzjhwgwpdpz7ua5.public.blob.vercel-storage.com/shots/blockforge/login-card-light-fbdb456db97480b3.png
- Registry item: https://blockforge.terravidhal.me/r/login-card.json
- Categories: login
- Listed: 2026-10-13, source last changed 2026-10-13

## Install

```bash
npx shadcn@latest add https://blockforge.terravidhal.me/r/login-card.json
```

Run it in a project that has shadcn/ui set up. It adds the files below and installs what they depend on.

## Dependencies

- Registry items: `button`

## Files

### `registry/blocks/login-card.tsx`

```tsx
import Link from "next/link";

import { Button } from "@/components/ui/button";

function BrandMark({ className }: { className?: string }) {
  return (
    <svg
      viewBox="0 0 24 24"
      fill="none"
      stroke="currentColor"
      strokeWidth={2}
      strokeLinecap="round"
      strokeLinejoin="round"
      aria-hidden
      className={className}
    >
      <path d="M10 22V7a1 1 0 0 0-1-1H4a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-5a1 1 0 0 0-1-1H2" />
      <rect x="14.5" y="2.5" width="7" height="7" rx="1" transform="rotate(-8 18 6)" />
    </svg>
  );
}

export default function LoginCard() {
  return (
    <section className="flex min-h-[70vh] items-center justify-center bg-muted/30 px-6 py-16">
      <div className="w-full max-w-sm rounded-xl border border-border/60 bg-background p-8 shadow-sm">
        <div className="flex flex-col items-center text-center">
          <span className="flex items-center gap-2 text-lg font-bold tracking-tight">
            <BrandMark className="size-6" />
            Blockforge
          </span>
          <h1 className="mt-4 text-xl font-semibold tracking-tight">
            Welcome back
          </h1>
          <p className="mt-1 text-sm text-muted-foreground">
            Sign in to your Blockforge workspace.
          </p>
        </div>

        <form className="mt-8 space-y-4">
          <div className="space-y-2">
            <label htmlFor="signin-email" className="text-sm font-medium">
              Email
            </label>
            <input
              id="signin-email"
              type="email"
              autoComplete="email"
              placeholder="you@company.com"
              className="h-9 w-full rounded-lg border border-input bg-background px-3 text-sm outline-none placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50"
            />
          </div>
          <div className="space-y-2">
            <div className="flex items-center justify-between">
              <label htmlFor="signin-password" className="text-sm font-medium">
                Password
              </label>
              <Link
                href="#"
                className="text-xs text-muted-foreground underline-offset-4 hover:underline"
              >
                Forgot it?
              </Link>
            </div>
            <input
              id="signin-password"
              type="password"
              autoComplete="current-password"
              className="h-9 w-full rounded-lg border border-input bg-background px-3 text-sm outline-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50"
            />
          </div>
          <Button type="submit" className="w-full">
            Sign in
          </Button>
        </form>

        <div className="my-6 flex items-center gap-3">
          <span className="h-px flex-1 bg-border" />
          <span className="text-xs text-muted-foreground">or</span>
          <span className="h-px flex-1 bg-border" />
        </div>

        <Button variant="outline" className="w-full">
          Continue with GitHub
        </Button>

        <p className="mt-6 text-center text-sm text-muted-foreground">
          New here?{" "}
          <Link
            href="#"
            className="font-medium text-foreground underline-offset-4 hover:underline"
          >
            Create an account
          </Link>
        </p>
      </div>
    </section>
  );
}
```
