ToroUI

Login

Authentication forms with email, password, and social sign-in options.


Login 01

A centered login card with email and password fields, forgot password link, and sign-up prompt.

Welcome back
Enter your credentials to access your account

Don't have an account? Sign up

import { Button } from "@/components/ui/button"
import {
  Card,
  CardContent,
  CardDescription,
  CardFooter,
  CardHeader,
  CardTitle,
} from "@/components/ui/card"
import { Input } from "@/components/ui/input"
import { Label } from "@/components/ui/label"

export default function Login01() {
  return (
    <div className="flex min-h-[600px] items-center justify-center px-6 py-20">
      <Card className="w-full max-w-sm">
        <CardHeader>
          <CardTitle className="text-xl">Welcome back</CardTitle>
          <CardDescription>
            Enter your credentials to access your account
          </CardDescription>
        </CardHeader>
        <CardContent>
          <form className="flex flex-col gap-4">
            <div className="flex flex-col gap-2">
              <Label htmlFor="email">Email</Label>
              <Input
                id="email"
                type="email"
                placeholder="you@example.com"
              />
            </div>
            <div className="flex flex-col gap-2">
              <div className="flex items-center justify-between">
                <Label htmlFor="password">Password</Label>
                <a
                  href="#"
                  className="text-sm text-muted-foreground underline-offset-4 hover:text-foreground hover:underline"
                >
                  Forgot password?
                </a>
              </div>
              <Input id="password" type="password" placeholder="********" />
            </div>
            <Button type="submit" className="mt-2 w-full">
              Sign In
            </Button>
          </form>
        </CardContent>
        <CardFooter className="justify-center">
          <p className="text-sm text-muted-foreground">
            Don&apos;t have an account?{" "}
            <a
              href="#"
              className="text-foreground underline-offset-4 hover:underline"
            >
              Sign up
            </a>
          </p>
        </CardFooter>
      </Card>
    </div>
  )
}
npx shadcn add https://toro-ui.com/r/login-01.json

Login 02

A split-screen login with a branded panel on the left and the form on the right.

Sign in to your account
Enter your email and password below

Don't have an account? Create an account

import { Button } from "@/components/ui/button"
import {
  Card,
  CardContent,
  CardDescription,
  CardHeader,
  CardTitle,
} from "@/components/ui/card"
import { Input } from "@/components/ui/input"
import { Label } from "@/components/ui/label"

export default function Login02() {
  return (
    <div className="grid min-h-[700px] lg:grid-cols-2">
      <div className="hidden flex-col justify-between bg-foreground p-10 text-background lg:flex">
        <div className="flex items-center gap-2 text-lg font-semibold">
          <svg
            xmlns="http://www.w3.org/2000/svg"
            width="24"
            height="24"
            viewBox="0 0 24 24"
            fill="none"
            stroke="currentColor"
            strokeWidth="2"
            strokeLinecap="round"
            strokeLinejoin="round"
          >
            <path d="M15 6v12a3 3 0 1 0 3-3H6a3 3 0 1 0 3 3V6a3 3 0 1 0-3 3h12a3 3 0 1 0-3-3" />
          </svg>
          Acme Inc.
        </div>
        <blockquote className="max-w-md space-y-4">
          <p className="text-lg leading-relaxed opacity-80">
            &ldquo;This platform has completely transformed how our team
            collaborates. We shipped our last project 3x faster than
            before.&rdquo;
          </p>
          <footer className="text-sm opacity-60">
            Sofia Martinez, CTO at TechCorp
          </footer>
        </blockquote>
      </div>
      <div className="flex items-center justify-center px-6 py-20">
        <Card className="w-full max-w-sm border-0 shadow-none">
          <CardHeader className="px-0">
            <CardTitle className="text-2xl">Sign in to your account</CardTitle>
            <CardDescription>
              Enter your email and password below
            </CardDescription>
          </CardHeader>
          <CardContent className="px-0">
            <form className="flex flex-col gap-4">
              <div className="flex flex-col gap-2">
                <Label htmlFor="login-email">Email</Label>
                <Input
                  id="login-email"
                  type="email"
                  placeholder="you@example.com"
                />
              </div>
              <div className="flex flex-col gap-2">
                <div className="flex items-center justify-between">
                  <Label htmlFor="login-password">Password</Label>
                  <a
                    href="#"
                    className="text-sm text-muted-foreground underline-offset-4 hover:text-foreground hover:underline"
                  >
                    Forgot password?
                  </a>
                </div>
                <Input
                  id="login-password"
                  type="password"
                  placeholder="********"
                />
              </div>
              <Button type="submit" className="mt-2 w-full">
                Sign In
              </Button>
            </form>
            <p className="mt-6 text-center text-sm text-muted-foreground">
              Don&apos;t have an account?{" "}
              <a
                href="#"
                className="text-foreground underline-offset-4 hover:underline"
              >
                Create an account
              </a>
            </p>
          </CardContent>
        </Card>
      </div>
    </div>
  )
}
npx shadcn add https://toro-ui.com/r/login-02.json