style: full system ui homogenization v1.2.3
This commit is contained in:
@@ -68,7 +68,7 @@ const IdentityCheckOverlay = memo(({ show, users, onAuthenticated }: IdentityChe
|
||||
<div className="w-16 h-16 bg-primary/10 text-primary rounded-2xl flex items-center justify-center mx-auto mb-4 border border-primary/20">
|
||||
<User size={32} />
|
||||
</div>
|
||||
<h2 className="text-2xl font-black text-white uppercase tracking-tight">Identity Check</h2>
|
||||
<h2 className="text-2xl font-black text-white">Identity Check</h2>
|
||||
<p className="text-slate-500 text-sm">Select operator profile to continue</p>
|
||||
</div>
|
||||
|
||||
@@ -86,8 +86,8 @@ const IdentityCheckOverlay = memo(({ show, users, onAuthenticated }: IdentityChe
|
||||
{user.role === 'admin' ? <Shield size={14} /> : <User size={14} />}
|
||||
</div>
|
||||
<div>
|
||||
<p className="text-white font-black text-sm tracking-widest">{user.username}</p>
|
||||
<p className="text-[10px] text-slate-500 font-bold mt-1 tracking-widest">{user.role}</p>
|
||||
<p className="text-white font-black text-sm">{user.username}</p>
|
||||
<p className="text-xs text-slate-500 font-medium mt-1">{user.role}</p>
|
||||
</div>
|
||||
</div>
|
||||
<ChevronRight size={16} className="text-slate-600 group-hover:text-primary transition-colors" />
|
||||
@@ -96,7 +96,7 @@ const IdentityCheckOverlay = memo(({ show, users, onAuthenticated }: IdentityChe
|
||||
<div className="pt-2">
|
||||
<button
|
||||
onClick={() => setIsEnterprise(true)}
|
||||
className="w-full flex items-center justify-center gap-2 py-4 rounded-2xl border border-dashed border-slate-700 text-slate-500 hover:text-primary hover:border-primary/40 transition-all font-bold text-xs uppercase tracking-widest"
|
||||
className="w-full flex items-center justify-center gap-2 py-4 rounded-2xl border border-dashed border-slate-700 text-slate-500 hover:text-primary hover:border-primary/40 transition-all font-bold text-xs"
|
||||
>
|
||||
<Shield size={14} />
|
||||
Enterprise Login
|
||||
@@ -106,17 +106,17 @@ const IdentityCheckOverlay = memo(({ show, users, onAuthenticated }: IdentityChe
|
||||
) : isEnterprise ? (
|
||||
<div className="space-y-4 animate-in slide-in-from-right-4 duration-300">
|
||||
<div className="flex justify-between items-center px-1">
|
||||
<p className="text-[10px] font-black text-slate-500 uppercase tracking-widest">Enterprise Account</p>
|
||||
<p className="text-xs font-black text-slate-500">Enterprise Account</p>
|
||||
<button
|
||||
onClick={() => setIsEnterprise(false)}
|
||||
className="text-[10px] font-black text-primary uppercase tracking-widest hover:underline"
|
||||
className="text-xs font-black text-primary hover:underline"
|
||||
>
|
||||
Back to profiles
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<div className="space-y-2">
|
||||
<label className="text-[10px] font-black text-slate-500 uppercase tracking-widest px-1">Username</label>
|
||||
<label className="text-xs font-black text-slate-500 px-1">Username</label>
|
||||
<div className="relative">
|
||||
<User className="absolute left-4 top-1/2 -translate-y-1/2 text-slate-500" size={16} />
|
||||
<input
|
||||
@@ -130,7 +130,7 @@ const IdentityCheckOverlay = memo(({ show, users, onAuthenticated }: IdentityChe
|
||||
</div>
|
||||
|
||||
<div className="space-y-2">
|
||||
<label className="text-[10px] font-black text-slate-500 uppercase tracking-widest px-1">Password</label>
|
||||
<label className="text-xs font-black text-slate-500 px-1">Password</label>
|
||||
<div className="relative">
|
||||
<Lock className="absolute left-4 top-1/2 -translate-y-1/2 text-slate-500" size={16} />
|
||||
<input
|
||||
@@ -145,7 +145,7 @@ const IdentityCheckOverlay = memo(({ show, users, onAuthenticated }: IdentityChe
|
||||
|
||||
<button
|
||||
onClick={handleLogin}
|
||||
className="w-full bg-primary text-white font-black uppercase tracking-widest py-4 rounded-2xl shadow-xl shadow-primary/20 active:scale-95 transition-all"
|
||||
className="w-full bg-primary text-white font-black py-4 rounded-2xl shadow-xl shadow-primary/20 active:scale-95 transition-all"
|
||||
>
|
||||
Sign In
|
||||
</button>
|
||||
@@ -160,13 +160,13 @@ const IdentityCheckOverlay = memo(({ show, users, onAuthenticated }: IdentityChe
|
||||
<X size={16} className="text-slate-400" />
|
||||
</button>
|
||||
<div>
|
||||
<p className="text-xs font-bold text-slate-500 uppercase tracking-widest">Logging in as</p>
|
||||
<p className="text-white font-black tracking-tight">{selectedUserForLogin.username}</p>
|
||||
<p className="text-xs font-bold text-slate-500">Logging in as</p>
|
||||
<p className="text-white font-black">{selectedUserForLogin.username}</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className="space-y-2">
|
||||
<label className="text-[10px] font-black text-slate-500 uppercase tracking-widest px-1">Password</label>
|
||||
<label className="text-xs font-black text-slate-500 px-1">Password</label>
|
||||
<div className="relative">
|
||||
<Lock className="absolute left-4 top-1/2 -translate-y-1/2 text-slate-500" size={16} />
|
||||
<input
|
||||
@@ -182,7 +182,7 @@ const IdentityCheckOverlay = memo(({ show, users, onAuthenticated }: IdentityChe
|
||||
|
||||
<button
|
||||
onClick={handleLogin}
|
||||
className="w-full bg-primary text-white font-black uppercase tracking-widest py-4 rounded-2xl shadow-xl shadow-primary/20 active:scale-95 transition-all"
|
||||
className="w-full bg-primary text-white font-black py-4 rounded-2xl shadow-xl shadow-primary/20 active:scale-95 transition-all"
|
||||
>
|
||||
Verify Identity
|
||||
</button>
|
||||
|
||||
@@ -262,7 +262,7 @@ export default function Scanner({ onScanSuccess, onOCRMatch, paused }: ScannerPr
|
||||
<p className="text-sm font-bold text-center text-primary">Tap the correct text on the label</p>
|
||||
<button
|
||||
onClick={() => { setIsSelecting(false); setCapturedImage(null); }}
|
||||
className="w-full py-4 bg-slate-800 text-white rounded-2xl font-black text-xs uppercase tracking-widest"
|
||||
className="w-full py-4 bg-slate-800 text-white rounded-2xl font-bold text-xs"
|
||||
>
|
||||
Cancel & Rescan
|
||||
</button>
|
||||
@@ -318,7 +318,7 @@ export default function Scanner({ onScanSuccess, onOCRMatch, paused }: ScannerPr
|
||||
className="bg-slate-900/90 backdrop-blur-md border border-slate-700 text-white w-14 h-14 rounded-full flex flex-col items-center justify-center shadow-2xl active:scale-95 transition-transform"
|
||||
>
|
||||
<span className="text-xs font-black">{zoom.toFixed(1)}x</span>
|
||||
<span className="text-[8px] uppercase text-primary font-bold">Zoom</span>
|
||||
<span className="text-xs text-primary font-bold">Zoom</span>
|
||||
</button>
|
||||
)}
|
||||
|
||||
@@ -327,7 +327,7 @@ export default function Scanner({ onScanSuccess, onOCRMatch, paused }: ScannerPr
|
||||
onClick={handleOCR}
|
||||
disabled={ocrProcessing}
|
||||
className={cn(
|
||||
"w-full py-4 rounded-2xl font-black text-xs uppercase tracking-[0.2em] flex items-center justify-center gap-3 shadow-2xl transition-all active:scale-95 border border-white/10",
|
||||
"w-full py-4 rounded-2xl font-bold text-sm flex items-center justify-center gap-3 shadow-2xl transition-all active:scale-95 border border-white/10",
|
||||
ocrProcessing ? "bg-slate-800 text-slate-500" : "bg-primary text-white"
|
||||
)}
|
||||
>
|
||||
@@ -336,7 +336,7 @@ export default function Scanner({ onScanSuccess, onOCRMatch, paused }: ScannerPr
|
||||
</button>
|
||||
) : (
|
||||
<div className="bg-black/40 backdrop-blur-sm py-2 px-6 rounded-full border border-white/5">
|
||||
<p className="text-[10px] text-center text-slate-300 uppercase tracking-widest font-black">
|
||||
<p className="text-xs text-center text-slate-300 font-bold">
|
||||
Center barcode for auto-scan
|
||||
</p>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user