Back to Component Explorer
Split Sign Up
signupDark stats panel on left, sign up form on right.
#signup#split#stats#layout
Live Interactive Preview
AurenzaUI
Build stunning UIs with zero effort
Copy, paste, and customize. No dependencies, no lock-in, just clean code you own completely.
10K+
Developers
50+
Components
100%
Free
Component Source Code
Select language in the dropdownSplitSignUp.tsx
1'use client';2import React, { useState } from 'react';3import { Mail, Lock, User, ArrowRight, Eye, EyeOff } from 'lucide-react';4import { FaGoogle, FaGithub } from 'react-icons/fa6';56export default function SplitSignUp() {7 const [showPass, setShowPass] = useState(false);8 const [loading, setLoading] = useState(false);9 const submit = (e: React.FormEvent) => { e.preventDefault(); setLoading(true); setTimeout(() => setLoading(false), 1500); };10 const stats = [{ num: '10K+', label: 'Developers' }, { num: '50+', label: 'Components' }, { num: '100%', label: 'Free' }];11 return (12 <div className="w-full max-w-3xl overflow-hidden rounded-2xl border border-zinc-200 dark:border-zinc-800 shadow-xl grid grid-cols-1 md:grid-cols-2">13 {/* Left */}14 <div className="hidden md:flex flex-col justify-between bg-zinc-950 p-10 text-white">15 <div>16 <div className="text-xl font-black mb-8">Aurenza<span className="text-blue-400">UI</span></div>17 <h3 className="text-2xl font-extrabold leading-tight mb-3">Build stunning UIs with zero effort</h3>18 <p className="text-sm text-zinc-400 leading-relaxed">Copy, paste, and customize. No dependencies, no lock-in, just clean code you own completely.</p>19 </div>20 <div className="grid grid-cols-3 gap-4 border-t border-zinc-800 pt-6">21 {stats.map((s) => (22 <div key={s.label}>23 <div className="text-xl font-extrabold text-blue-400">{s.num}</div>24 <div className="text-xs text-zinc-500 mt-0.5">{s.label}</div>25 </div>26 ))}27 </div>28 </div>2930 {/* Right */}31 <div className="flex flex-col justify-center bg-white dark:bg-zinc-900 p-8">32 <div className="mb-5">33 <h2 className="text-xl font-bold text-zinc-900 dark:text-zinc-100">Create account</h2>34 <p className="text-xs text-zinc-500 mt-1">Join thousands of developers for free</p>35 </div>36 <div className="grid grid-cols-2 gap-2 mb-4">37 <button className="flex items-center justify-center gap-2 rounded-lg border border-zinc-200 dark:border-zinc-800 bg-zinc-50 dark:bg-zinc-800 py-2.5 text-xs font-semibold text-zinc-700 dark:text-zinc-300 hover:bg-zinc-100 dark:hover:bg-zinc-700 transition">38 <FaGoogle className="h-3.5 w-3.5 text-rose-500" /> Google39 </button>40 <button className="flex items-center justify-center gap-2 rounded-lg border border-zinc-200 dark:border-zinc-800 bg-zinc-50 dark:bg-zinc-800 py-2.5 text-xs font-semibold text-zinc-700 dark:text-zinc-300 hover:bg-zinc-100 dark:hover:bg-zinc-700 transition">41 <FaGithub className="h-3.5 w-3.5" /> GitHub42 </button>43 </div>44 <div className="relative mb-4">45 <div className="absolute inset-0 flex items-center"><div className="w-full border-t border-zinc-200 dark:border-zinc-800" /></div>46 <span className="relative mx-auto block w-fit bg-white dark:bg-zinc-900 px-3 text-[10px] uppercase tracking-wider text-zinc-400">or</span>47 </div>48 <form onSubmit={submit} className="space-y-3">49 <div className="relative">50 <User className="absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-zinc-400" />51 <input type="text" required placeholder="Full name" className="w-full rounded-lg border border-zinc-200 dark:border-zinc-800 bg-zinc-50 dark:bg-zinc-800 py-2.5 pl-9 pr-3 text-sm text-zinc-900 dark:text-zinc-100 placeholder:text-zinc-400 outline-none focus:border-blue-500 transition" />52 </div>53 <div className="relative">54 <Mail className="absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-zinc-400" />55 <input type="email" required placeholder="Email address" className="w-full rounded-lg border border-zinc-200 dark:border-zinc-800 bg-zinc-50 dark:bg-zinc-800 py-2.5 pl-9 pr-3 text-sm text-zinc-900 dark:text-zinc-100 placeholder:text-zinc-400 outline-none focus:border-blue-500 transition" />56 </div>57 <div className="relative">58 <Lock className="absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-zinc-400" />59 <input type={showPass ? 'text' : 'password'} required placeholder="Password" className="w-full rounded-lg border border-zinc-200 dark:border-zinc-800 bg-zinc-50 dark:bg-zinc-800 py-2.5 pl-9 pr-10 text-sm text-zinc-900 dark:text-zinc-100 placeholder:text-zinc-400 outline-none focus:border-blue-500 transition" />60 <button type="button" onClick={() => setShowPass(!showPass)} className="absolute right-3 top-1/2 -translate-y-1/2 text-zinc-400 hover:text-zinc-600 dark:hover:text-zinc-200">61 {showPass ? <EyeOff className="h-4 w-4" /> : <Eye className="h-4 w-4" />}62 </button>63 </div>64 <button type="submit" disabled={loading} className="flex w-full items-center justify-center gap-2 rounded-lg bg-blue-600 hover:bg-blue-700 py-2.5 text-sm font-semibold text-white transition disabled:opacity-60">65 {loading ? 'Creating...' : <><span>Create Free Account</span><ArrowRight className="h-4 w-4" /></>}66 </button>67 </form>68 <p className="mt-4 text-xs text-zinc-500">Already have an account? <a href="#" className="text-blue-600 dark:text-blue-400 font-semibold hover:underline">Sign in</a></p>69 </div>70 </div>71 );72}73`,74 jsxSourceCode: `'use client';75import React, { useState } from 'react';76import { Mail, Lock, User, ArrowRight, Eye, EyeOff } from 'lucide-react';77import { FaGoogle, FaGithub } from 'react-icons/fa6';7879export default function SplitSignUp() {80 const [showPass, setShowPass] = useState(false);81 const [loading, setLoading] = useState(false);82 const submit = (e) => { e.preventDefault(); setLoading(true); setTimeout(() => setLoading(false), 1500); };83 const stats = [{ num: '10K+', label: 'Developers' }, { num: '50+', label: 'Components' }, { num: '100%', label: 'Free' }];84 return (85 <div className="w-full max-w-3xl overflow-hidden rounded-2xl border border-zinc-200 dark:border-zinc-800 shadow-xl grid grid-cols-1 md:grid-cols-2">86 {/* Left */}87 <div className="hidden md:flex flex-col justify-between bg-zinc-950 p-10 text-white">88 <div>89 <div className="text-xl font-black mb-8">Aurenza<span className="text-blue-400">UI</span></div>90 <h3 className="text-2xl font-extrabold leading-tight mb-3">Build stunning UIs with zero effort</h3>91 <p className="text-sm text-zinc-400 leading-relaxed">Copy, paste, and customize. No dependencies, no lock-in, just clean code you own completely.</p>92 </div>93 <div className="grid grid-cols-3 gap-4 border-t border-zinc-800 pt-6">94 {stats.map((s) => (95 <div key={s.label}>96 <div className="text-xl font-extrabold text-blue-400">{s.num}</div>97 <div className="text-xs text-zinc-500 mt-0.5">{s.label}</div>98 </div>99 ))}100 </div>101 </div>102103 {/* Right */}104 <div className="flex flex-col justify-center bg-white dark:bg-zinc-900 p-8">105 <div className="mb-5">106 <h2 className="text-xl font-bold text-zinc-900 dark:text-zinc-100">Create account</h2>107 <p className="text-xs text-zinc-500 mt-1">Join thousands of developers for free</p>108 </div>109 <div className="grid grid-cols-2 gap-2 mb-4">110 <button className="flex items-center justify-center gap-2 rounded-lg border border-zinc-200 dark:border-zinc-800 bg-zinc-50 dark:bg-zinc-800 py-2.5 text-xs font-semibold text-zinc-700 dark:text-zinc-300 hover:bg-zinc-100 dark:hover:bg-zinc-700 transition">111 <FaGoogle className="h-3.5 w-3.5 text-rose-500" /> Google112 </button>113 <button className="flex items-center justify-center gap-2 rounded-lg border border-zinc-200 dark:border-zinc-800 bg-zinc-50 dark:bg-zinc-800 py-2.5 text-xs font-semibold text-zinc-700 dark:text-zinc-300 hover:bg-zinc-100 dark:hover:bg-zinc-700 transition">114 <FaGithub className="h-3.5 w-3.5" /> GitHub115 </button>116 </div>117 <div className="relative mb-4">118 <div className="absolute inset-0 flex items-center"><div className="w-full border-t border-zinc-200 dark:border-zinc-800" /></div>119 <span className="relative mx-auto block w-fit bg-white dark:bg-zinc-900 px-3 text-[10px] uppercase tracking-wider text-zinc-400">or</span>120 </div>121 <form onSubmit={submit} className="space-y-3">122 <div className="relative">123 <User className="absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-zinc-400" />124 <input type="text" required placeholder="Full name" className="w-full rounded-lg border border-zinc-200 dark:border-zinc-800 bg-zinc-50 dark:bg-zinc-800 py-2.5 pl-9 pr-3 text-sm text-zinc-900 dark:text-zinc-100 placeholder:text-zinc-400 outline-none focus:border-blue-500 transition" />125 </div>126 <div className="relative">127 <Mail className="absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-zinc-400" />128 <input type="email" required placeholder="Email address" className="w-full rounded-lg border border-zinc-200 dark:border-zinc-800 bg-zinc-50 dark:bg-zinc-800 py-2.5 pl-9 pr-3 text-sm text-zinc-900 dark:text-zinc-100 placeholder:text-zinc-400 outline-none focus:border-blue-500 transition" />129 </div>130 <div className="relative">131 <Lock className="absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-zinc-400" />132 <input type={showPass ? 'text' : 'password'} required placeholder="Password" className="w-full rounded-lg border border-zinc-200 dark:border-zinc-800 bg-zinc-50 dark:bg-zinc-800 py-2.5 pl-9 pr-10 text-sm text-zinc-900 dark:text-zinc-100 placeholder:text-zinc-400 outline-none focus:border-blue-500 transition" />133 <button type="button" onClick={() => setShowPass(!showPass)} className="absolute right-3 top-1/2 -translate-y-1/2 text-zinc-400 hover:text-zinc-600 dark:hover:text-zinc-200">134 {showPass ? <EyeOff className="h-4 w-4" /> : <Eye className="h-4 w-4" />}135 </button>136 </div>137 <button type="submit" disabled={loading} className="flex w-full items-center justify-center gap-2 rounded-lg bg-blue-600 hover:bg-blue-700 py-2.5 text-sm font-semibold text-white transition disabled:opacity-60">138 {loading ? 'Creating...' : <><span>Create Free Account</span><ArrowRight className="h-4 w-4" /></>}139 </button>140 </form>141 <p className="mt-4 text-xs text-zinc-500">Already have an account? <a href="#" className="text-blue-600 dark:text-blue-400 font-semibold hover:underline">Sign in</a></p>142 </div>143 </div>144 );145}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/signup/SplitSignUp.tsx and paste the copied code from the source viewer above.
Step 4: Usage Example
ExamplePage.tsx
1import SplitSignUp from '@/components/signup/SplitSignUp';23export default function ExamplePage() {4 return (5 <main className="p-8 flex items-center justify-center min-h-screen">6 <SplitSignUp />7 </main>8 );9}