# Login 2

> login

A shadcn/ui block from the [@cnippet-blocks](https://blocks.cnippet.dev/?utm_source=shadcn.exchange) registry, listed on [shadcn.exchange](https://shadcn.exchange/r/cnippet-blocks/login-2).

- Page, with a live preview: https://shadcn.exchange/r/cnippet-blocks/login-2
- Screenshot: https://shadcn.exchange/shot/cnippet-blocks/login-2/light.png
- Registry item: https://blocks.cnippet.dev/r/login-2.json
- Categories: login
- Listed: 2026-11-01, source last changed 2026-11-01

## Install

```bash
npx shadcn@latest add https://shadcn.exchange/r/cnippet-blocks/login-2.json
```

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

## Dependencies

- npm packages: `lucide-react`
- Registry items: `@cnippet/avatar`, `@cnippet/badge`, `@cnippet/button`, `@cnippet/checkbox`, `@cnippet/input`, `@cnippet/label`

## Files

### `registry/default/sections/login-2.tsx`

```tsx
"use client";

import { Flame, MessageSquare, Search, Star, ThumbsUp } from "lucide-react";
import * as React from "react";
import { Avatar, AvatarFallback } from "@/components/ui/avatar";
import { Badge } from "@/components/ui/badge";
import { Button } from "@/components/ui/button";
import { Checkbox } from "@/components/ui/checkbox";
import { Input } from "@/components/ui/input";
import { Label } from "@/components/ui/label";

export function Login2() {
  const [acceptTerms, setAcceptTerms] = React.useState(false);

  return (
    <section className="flex min-h-screen w-full items-center justify-center bg-[#f8f9fa] px-4 py-12">
      <div className="w-full max-w-5xl overflow-hidden rounded-3xl bg-white shadow-xl">
        <div className="grid grid-cols-1 lg:grid-cols-2">
          {/* Left - Form */}
          <div className="p-8 md:p-12">
            <div className="max-w-sm">
              {/* Header */}
              <h1 className="mb-2 font-bold text-3xl text-gray-900 dark:text-gray-100">
                Sign up
              </h1>
              <p className="mb-8 text-gray-600 text-sm dark:text-gray-400">
                Already have an account?{" "}
                <a
                  className="font-medium text-gray-900 underline dark:text-gray-100"
                  href="#"
                >
                  Sign in
                </a>
              </p>

              {/* Form */}
              <form className="space-y-5">
                <div className="grid grid-cols-2 gap-4">
                  <div>
                    <Label className="mb-2 block font-semibold text-gray-600 text-xs uppercase tracking-wide dark:text-gray-400">
                      NAME
                    </Label>
                    <Input
                      className="h-11 rounded-lg border-gray-200 dark:border-neutral-700"
                      placeholder="Enter Your Name"
                      type="text"
                    />
                  </div>
                  <div>
                    <Label className="mb-2 block font-semibold text-gray-600 text-xs uppercase tracking-wide dark:text-gray-400">
                      USERNAME
                    </Label>
                    <Input
                      className="h-11 rounded-lg border-gray-200 dark:border-neutral-700"
                      placeholder="@username"
                      type="text"
                    />
                  </div>
                </div>

                <div>
                  <Label className="mb-2 block font-semibold text-gray-600 text-xs uppercase tracking-wide dark:text-gray-400">
                    EMAIL
                  </Label>
                  <Input
                    className="h-11 rounded-lg border-gray-200 dark:border-neutral-700"
                    placeholder="Enter your email"
                    type="email"
                  />
                </div>

                <div>
                  <Label className="mb-2 block font-semibold text-gray-600 text-xs uppercase tracking-wide dark:text-gray-400">
                    PASSWORD
                  </Label>
                  <Input
                    className="h-11 rounded-lg border-gray-200 dark:border-neutral-700"
                    placeholder="Password"
                    type="password"
                  />
                </div>

                <div className="flex items-center gap-2 pt-4">
                  <Checkbox
                    checked={acceptTerms}
                    id="terms"
                    onCheckedChange={(checked) =>
                      setAcceptTerms(checked as boolean)
                    }
                  />
                  <Label
                    className="text-gray-600 text-sm dark:text-gray-400"
                    htmlFor="terms"
                  >
                    I accept the{" "}
                    <a className="underline" href="#">
                      term and conditions
                    </a>
                  </Label>
                </div>

                <Button
                  className="mt-2 h-12 w-full rounded-xl bg-neutral-900 font-medium text-white hover:bg-neutral-800"
                  type="submit"
                >
                  Register
                </Button>
              </form>
            </div>
          </div>

          {/* Right - App Preview */}
          <div className="relative hidden overflow-hidden bg-[#f1f5f0] p-8 lg:block">
            {/* Orange decorative shape */}
            <div className="absolute -top-10 -right-10 h-32 w-48 rotate-[-20deg] transform rounded-full bg-[#ff6b35]" />

            {/* Browser mockup */}
            <div className="relative mx-4 mt-8 overflow-hidden rounded-2xl bg-white shadow-lg">
              {/* Browser header */}
              <div className="flex items-center justify-between border-neutral-100 border-b px-4 py-3">
                <div className="flex gap-1.5">
                  <div className="h-3 w-3 rounded-full bg-neutral-300" />
                  <div className="h-3 w-3 rounded-full bg-neutral-300" />
                  <div className="h-3 w-3 rounded-full bg-neutral-300" />
                </div>
                <div className="mx-4 flex-1">
                  <div className="rounded-full bg-neutral-100 px-4 py-1.5 text-center text-neutral-400 text-xs">
                    jambo.com
                  </div>
                </div>
              </div>

              {/* App content */}
              <div className="p-6">
                <h2 className="mb-6 font-bold text-2xl text-gray-900 dark:text-gray-100">
                  Jambo
                </h2>

                {/* Feedback card */}
                <div className="mb-4 rounded-xl bg-neutral-50 p-4">
                  <h3 className="mb-1 flex items-center gap-2 font-semibold text-gray-900 dark:text-gray-100">
                    Send us feedback <span>💐</span>
                  </h3>
                  <p className="text-gray-600 text-sm dark:text-gray-400">
                    Lorem ipsum aliquam erat volutpat – cras dapibus orci eu
                    eros tempus efficitur.
                  </p>
                </div>

                {/* Tabs */}
                <div className="mb-4 flex items-center gap-2">
                  <Badge className="gap-1.5 rounded-full border border-gray-200 bg-white px-3 py-1.5 text-gray-700 dark:border-neutral-700 dark:text-gray-300">
                    <span className="h-2 w-2 rounded-full bg-green-500" />
                    New
                  </Badge>
                  <Badge
                    className="gap-1.5 rounded-full px-3 py-1.5 text-gray-600 dark:text-gray-400"
                    variant="outline"
                  >
                    <Star className="h-3 w-3" />
                    Featured
                  </Badge>
                  <Badge
                    className="gap-1.5 rounded-full px-3 py-1.5 text-gray-600 dark:text-gray-400"
                    variant="outline"
                  >
                    <Flame className="h-3 w-3" />
                    Trending
                  </Badge>
                  <div className="ml-auto flex items-center gap-1 text-neutral-400 text-sm">
                    <Search className="h-4 w-4" />
                    Search...
                  </div>
                </div>

                {/* List items */}
                <div className="space-y-4">
                  {/* Item 1 */}
                  <div className="border-neutral-100 border-t pt-4">
                    <Badge className="mb-2 bg-green-100 text-green-700 text-xs">
                      <span className="mr-1 h-1.5 w-1.5 rounded-full bg-green-500" />
                      Priority
                    </Badge>
                    <h4 className="mb-1 font-semibold text-gray-900 dark:text-gray-100">
                      New Component And Variants
                    </h4>
                    <p className="mb-3 line-clamp-2 text-gray-600 text-sm dark:text-gray-400">
                      Lorem ipsum aliquam vel justo fringillas enigma
                      pellentesquel Nunc non semper tellus vitae mi eros
                      velimperdiet mi. Aliqua...
                    </p>
                    <div className="flex items-center justify-between">
                      <div className="flex items-center gap-2">
                        <Avatar className="h-6 w-6">
                          <AvatarFallback className="bg-amber-100 text-xs">
                            AS
                          </AvatarFallback>
                        </Avatar>
                        <span className="font-medium text-sm">Ahmet S.</span>
                        <span className="text-neutral-400 text-xs">
                          2 days ago
                        </span>
                      </div>
                      <div className="flex items-center gap-3 text-neutral-400 text-xs">
                        <span className="flex items-center gap-1">
                          <MessageSquare className="h-3.5 w-3.5" /> 64
                        </span>
                        <span className="flex items-center gap-1">
                          <ThumbsUp className="h-3.5 w-3.5" /> Q1
                        </span>
                      </div>
                    </div>
                  </div>

                  {/* Item 2 */}
                  <div className="border-neutral-100 border-t pt-4">
                    <Badge className="mb-2 bg-green-100 text-green-700 text-xs">
                      <span className="mr-1 h-1.5 w-1.5 rounded-full bg-green-500" />
                      Next
                    </Badge>
                    <h4 className="mb-1 font-semibold text-gray-900 dark:text-gray-100">
                      New Component And Variants
                    </h4>
                    <p className="line-clamp-2 text-gray-600 text-sm dark:text-gray-400">
                      Lorem ipsum aliquam vel justo fringillas enigma
                      pellentesquel Nunc non semper tellus vitae mi eros
                      velimperdiet mi. Aliqua...
                    </p>
                  </div>
                </div>
              </div>
            </div>
          </div>
        </div>
      </div>
    </section>
  );
}

export default Login2;
```
