Back to Component Explorer
Dark Sign In
signinDark zinc-950 sign in card with high-contrast blue accents.
#signin#dark#zinc#minimal
Live Interactive Preview
Secure Login
Sign in to
your account
Enter your credentials to access the platform.
New here? Create account
Component Source Code
Select language in the dropdownDarkSignIn.tsx
1'use client';2import React, { useState } from 'react';3import { Mail, Lock, ArrowRight } from 'lucide-react';45export default function DarkSignIn() {6 const [loading, setLoading] = useState(false);7 const submit = (e: React.FormEvent) => { e.preventDefault(); setLoading(true); setTimeout(() => setLoading(false), 1500); };8 return (9 <div className="w-full max-w-sm rounded-2xl bg-zinc-950 border border-zinc-800 p-8 shadow-2xl">10 <div className="mb-7">11 <div className="inline-flex items-center gap-1.5 rounded-full border border-zinc-700 px-3 py-1 text-[10px] font-bold uppercase tracking-widest text-zinc-400 mb-4">Secure Login</div>12 <h2 className="text-2xl font-extrabold text-white leading-tight">Sign in to<br />your account</h2>13 <p className="mt-2 text-xs text-zinc-500">Enter your credentials to access the platform.</p>14 </div>15 <form onSubmit={submit} className="space-y-4">16 <div>17 <label className="block text-xs font-semibold text-zinc-400 mb-1.5">Email address</label>18 <div className="relative">19 <Mail className="absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-zinc-500" />20 <input type="email" required placeholder="you@company.com" className="w-full rounded-lg border border-zinc-800 bg-zinc-900 py-2.5 pl-9 pr-3 text-sm text-zinc-100 placeholder:text-zinc-600 outline-none focus:border-blue-500 transition" />21 </div>22 </div>23 <div>24 <label className="block text-xs font-semibold text-zinc-400 mb-1.5">Password</label>25 <div className="relative">26 <Lock className="absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-zinc-500" />27 <input type="password" required placeholder="••••••••" className="w-full rounded-lg border border-zinc-800 bg-zinc-900 py-2.5 pl-9 pr-3 text-sm text-zinc-100 placeholder:text-zinc-600 outline-none focus:border-blue-500 transition" />28 </div>29 </div>30 <div className="flex items-center justify-between text-xs">31 <label className="flex items-center gap-2 text-zinc-500 cursor-pointer">32 <input type="checkbox" className="rounded border-zinc-700 bg-zinc-900 text-blue-600" />33 Remember me34 </label>35 <a href="#" className="text-blue-400 hover:underline">Forgot password?</a>36 </div>37 <button type="submit" disabled={loading} className="flex w-full items-center justify-center gap-2 rounded-lg bg-blue-600 hover:bg-blue-500 py-2.5 text-sm font-semibold text-white transition disabled:opacity-60">38 {loading ? 'Signing in...' : <><span>Continue</span><ArrowRight className="h-4 w-4" /></>}39 </button>40 </form>41 <p className="mt-6 text-center text-xs text-zinc-600">New here? <a href="#" className="text-blue-400 font-semibold hover:underline">Create account</a></p>42 </div>43 );44}Installation & Integration Guide
Step 1: Tailwind CSS v4 Setup
Tailwind DocsIf you do not have Tailwind installed yet, run this installation command:
Terminal
npm install tailwindcss @tailwindcss/postcss postcss
Then add the Tailwind directive to your main stylesheet (globals.css):
@import "tailwindcss";
Step 2: Install Icon Dependencies
npm install lucide-react react-icons
Step 3: Add Component File
Create a new file in your project at src/components/signin/DarkSignIn.tsx and paste the copied code from the source viewer above.
Step 4: Usage Example
ExamplePage.tsx
1import DarkSignIn from '@/components/signin/DarkSignIn';23export default function ExamplePage() {4 return (5 <main className="p-8 flex items-center justify-center min-h-screen">6 <DarkSignIn />7 </main>8 );9}