Back to Component Explorer
Cyberpunk Terminal Node Sign Up
signupFuturistic terminal node registration interface with scanning lines and neural uplink animations.
#signup#cyberpunk#terminal#scifi
Live Interactive Preview
NODE_REGISTRY // v4.8
STATUS: ONLINEComponent Source Code
Select language in the dropdownCyberSignUp.tsx
1'use client';23import React, { useState } from 'react';4import { Cpu, ArrowRight, CheckCircle2 } from 'lucide-react';56export default function CyberSignUp() {7 const [handle, setHandle] = useState('');8 const [netId, setNetId] = useState('');9 const [cipher, setCipher] = useState('');10 const [registered, setRegistered] = useState(false);1112 const handleRegister = (e: React.FormEvent) => {13 e.preventDefault();14 setRegistered(true);15 };1617 return (18 <div className="relative w-full max-w-md overflow-hidden rounded-2xl border-2 border-cyan-500/50 bg-slate-950 p-6 sm:p-8 font-mono text-cyan-400 shadow-[0_0_40px_rgba(6,182,212,0.2)] select-none">19 <div20 className="absolute inset-0 opacity-15 pointer-events-none"21 style={{22 backgroundImage: 'linear-gradient(to right, #06b6d4 1px, transparent 1px), linear-gradient(to bottom, #06b6d4 1px, transparent 1px)',23 backgroundSize: '20px 20px'24 }}25 />2627 <div className="relative z-10 flex items-center justify-between border-b border-cyan-500/30 pb-4 mb-6">28 <div className="flex items-center gap-2">29 <Cpu className="h-5 w-5 text-cyan-400 animate-pulse" />30 <span className="font-bold text-xs tracking-widest text-cyan-300">NODE_REGISTRY // v4.8</span>31 </div>32 <span className="text-[10px] text-emerald-400 bg-emerald-950/60 border border-emerald-500/40 px-2 py-0.5 rounded">33 STATUS: ONLINE34 </span>35 </div>3637 {registered ? (38 <div className="relative z-10 rounded-xl border border-cyan-500/40 bg-cyan-950/30 p-6 text-center space-y-3">39 <CheckCircle2 className="mx-auto h-10 w-10 text-cyan-400 drop-shadow-[0_0_10px_#22d3ee]" />40 <h3 className="font-bold text-base text-white tracking-wider">NEURAL_ID PROVISIONED</h3>41 <p className="text-xs text-cyan-300/80">Entity [{handle || 'CYBER_USER'}] authenticated on Aurenza Grid.</p>42 <button43 onClick={() => setRegistered(false)}44 className="mt-3 text-xs text-pink-400 hover:text-pink-300 underline cursor-pointer"45 >46 Authenticate another node47 </button>48 </div>49 ) : (50 <form onSubmit={handleRegister} className="relative z-10 space-y-4">51 <div>52 <label className="block text-[11px] font-bold tracking-wider text-cyan-300 mb-1">53 > OPERATOR_HANDLE54 </label>55 <input56 type="text"57 required58 value={handle}59 onChange={(e) => setHandle(e.target.value)}60 placeholder="neo_protocol"61 className="w-full rounded-lg border border-cyan-500/40 bg-slate-900/80 px-3.5 py-2 text-xs text-cyan-100 placeholder:text-cyan-800 outline-none focus:border-cyan-400 focus:shadow-[0_0_15px_rgba(6,182,212,0.4)] transition"62 />63 </div>6465 <div>66 <label className="block text-[11px] font-bold tracking-wider text-cyan-300 mb-1">67 > NEURAL_MAIL68 </label>69 <input70 type="email"71 required72 value={netId}73 onChange={(e) => setNetId(e.target.value)}74 placeholder="operator@matrix.net"75 className="w-full rounded-lg border border-cyan-500/40 bg-slate-900/80 px-3.5 py-2 text-xs text-cyan-100 placeholder:text-cyan-800 outline-none focus:border-cyan-400 focus:shadow-[0_0_15px_rgba(6,182,212,0.4)] transition"76 />77 </div>7879 <div>80 <label className="block text-[11px] font-bold tracking-wider text-cyan-300 mb-1">81 > ACCESS_CIPHER (PASSWORD)82 </label>83 <input84 type="password"85 required86 value={cipher}87 onChange={(e) => setCipher(e.target.value)}88 placeholder="••••••••••••"89 className="w-full rounded-lg border border-cyan-500/40 bg-slate-900/80 px-3.5 py-2 text-xs text-cyan-100 placeholder:text-cyan-800 outline-none focus:border-cyan-400 focus:shadow-[0_0_15px_rgba(6,182,212,0.4)] transition"90 />91 </div>9293 <button94 type="submit"95 className="w-full rounded-lg bg-gradient-to-r from-cyan-500 to-blue-600 py-2.5 text-xs font-black tracking-widest text-slate-950 uppercase shadow-[0_0_20px_rgba(6,182,212,0.5)] hover:from-cyan-400 hover:to-blue-500 transition flex items-center justify-center gap-2 cursor-pointer"96 >97 INITIALIZE UPLINK <ArrowRight className="h-4 w-4" />98 </button>99 </form>100 )}101 </div>102 );103}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/CyberSignUp.tsx and paste the copied code from the source viewer above.
Step 4: Usage Example
ExamplePage.tsx
1import CyberpunkTerminalNodeSignUp from '@/components/signup/CyberSignUp';23export default function ExamplePage() {4 return (5 <main className="p-8 flex items-center justify-center min-h-screen">6 <CyberpunkTerminalNodeSignUp />7 </main>8 );9}