@@ -39,17 +39,33 @@ const itemVariants = {
3939
4040const inputClasses = cn (
4141 "w-full px-4 py-3 rounded-xl font-mono text-sm" ,
42- "bg-white/[0.08] border border-white/30" ,
43- "text-white placeholder-gray-300" ,
44- "focus:outline-none focus:border-emerald-500/60 focus:ring-2 focus:ring-emerald-500/30" ,
42+ // Light mode
43+ "bg-gray-50 border-gray-300" ,
44+ // Dark mode - solid dark background for visibility
45+ "dark:bg-gray-800/90 dark:border-gray-600" ,
46+ "border" ,
47+ // Text colors
48+ "text-gray-900 dark:text-white" ,
49+ "placeholder-gray-500 dark:placeholder-gray-400" ,
50+ // Focus states
51+ "focus:outline-none focus:border-emerald-500 focus:ring-2 focus:ring-emerald-500/30" ,
52+ "dark:focus:border-emerald-500/60 dark:focus:ring-emerald-500/20" ,
4553 "transition-all duration-200"
4654) ;
4755
4856const inputErrorClasses = cn (
4957 "w-full px-4 py-3 rounded-xl font-mono text-sm" ,
50- "bg-red-500/15 border border-red-500/50" ,
51- "text-white placeholder-gray-300" ,
52- "focus:outline-none focus:border-red-500/60 focus:ring-2 focus:ring-red-500/30" ,
58+ // Light mode
59+ "bg-red-50 border-red-400" ,
60+ // Dark mode
61+ "dark:bg-red-500/15 dark:border-red-500/50" ,
62+ "border" ,
63+ // Text colors
64+ "text-gray-900 dark:text-white" ,
65+ "placeholder-gray-500 dark:placeholder-gray-400" ,
66+ // Focus states
67+ "focus:outline-none focus:border-red-500 focus:ring-2 focus:ring-red-500/30" ,
68+ "dark:focus:border-red-500/60 dark:focus:ring-red-500/20" ,
5369 "transition-all duration-200"
5470) ;
5571
@@ -89,19 +105,28 @@ export default function LoginPage() {
89105 } ;
90106
91107 return (
92- < div className = "min-h-screen flex items-center justify-center bg-[#050608] relative overflow-hidden" >
93- { /* Background Grid */ }
108+ < div className = "min-h-screen flex items-center justify-center bg-gray-50 dark:bg-gray-950 relative overflow-hidden transition-colors duration-300 " >
109+ { /* Background Grid - Dark mode */ }
94110 < div
95- className = "fixed inset-0 pointer-events-none opacity-30"
111+ className = "fixed inset-0 pointer-events-none opacity-30 hidden dark:block "
96112 style = { {
97113 backgroundImage : `linear-gradient(rgba(255,255,255,0.02) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,0.02) 1px, transparent 1px)` ,
98114 backgroundSize : '24px 24px' ,
99115 maskImage : 'radial-gradient(ellipse at center, black 0%, transparent 70%)' ,
100116 } }
101117 />
118+ { /* Background Grid - Light mode */ }
119+ < div
120+ className = "fixed inset-0 pointer-events-none opacity-50 dark:hidden"
121+ style = { {
122+ backgroundImage : `linear-gradient(rgba(0,0,0,0.02) 1px, transparent 1px), linear-gradient(90deg, rgba(0,0,0,0.02) 1px, transparent 1px)` ,
123+ backgroundSize : '24px 24px' ,
124+ maskImage : 'radial-gradient(ellipse at center, black 0%, transparent 70%)' ,
125+ } }
126+ />
102127
103128 { /* Decorative glow */ }
104- < div className = "absolute top-1/4 left-1/2 -translate-x-1/2 w-[600px] h-[600px] bg-emerald-500/10 rounded-full blur-[120px] pointer-events-none" />
129+ < div className = "absolute top-1/4 left-1/2 -translate-x-1/2 w-[600px] h-[600px] bg-emerald-500/5 dark:bg-emerald-500/ 10 rounded-full blur-[120px] pointer-events-none" />
105130
106131 < motion . div
107132 className = "w-full max-w-md px-6 relative z-10"
@@ -116,7 +141,7 @@ export default function LoginPage() {
116141 MERIDIAN
117142 </ span >
118143 </ h1 >
119- < p className = "text-xs text-gray-500 font-mono uppercase tracking-[0.3em]" >
144+ < p className = "text-xs text-gray-500 dark:text-gray-500 font-mono uppercase tracking-[0.3em]" >
120145 Institutional Portal
121146 </ p >
122147 </ motion . div >
@@ -129,7 +154,7 @@ export default function LoginPage() {
129154 < div >
130155 < label
131156 htmlFor = "email"
132- className = "text-xs font-mono uppercase tracking-wider text-gray-400 block mb-2"
157+ className = "text-xs font-mono uppercase tracking-wider text-gray-600 dark:text-gray- 400 block mb-2"
133158 >
134159 Email Address
135160 </ label >
@@ -158,7 +183,7 @@ export default function LoginPage() {
158183 < div >
159184 < label
160185 htmlFor = "password"
161- className = "text-xs font-mono uppercase tracking-wider text-gray-400 block mb-2"
186+ className = "text-xs font-mono uppercase tracking-wider text-gray-600 dark:text-gray- 400 block mb-2"
162187 >
163188 Password
164189 </ label >
@@ -188,10 +213,10 @@ export default function LoginPage() {
188213 < motion . div
189214 initial = { { opacity : 0 , y : - 10 } }
190215 animate = { { opacity : 1 , y : 0 } }
191- className = "p-4 rounded-xl bg-red-500/10 border border-red-500/30"
216+ className = "p-4 rounded-xl bg-red-50 dark:bg-red- 500/10 border border-red-200 dark: border-red-500/30"
192217 role = "alert"
193218 >
194- < p className = "text-xs font-mono text-red-400" > { error } </ p >
219+ < p className = "text-xs font-mono text-red-600 dark:text-red- 400" > { error } </ p >
195220 </ motion . div >
196221 ) }
197222
@@ -214,12 +239,12 @@ export default function LoginPage() {
214239 </ form >
215240
216241 { /* Register Link */ }
217- < div className = "mt-6 pt-6 border-t border-white/5 " >
218- < p className = "text-xs text-gray-500 text-center font-mono" >
242+ < div className = "mt-6 pt-6 border-t border-gray-200 dark:border-gray-700/50 " >
243+ < p className = "text-xs text-gray-500 dark:text-gray-500 text-center font-mono" >
219244 Don't have an account?{ ' ' }
220245 < a
221246 href = "/portal/register"
222- className = "text-emerald-400 hover:text-emerald-300 transition-colors"
247+ className = "text-emerald-600 dark:text-emerald- 400 hover:text-emerald-500 dark: hover:text-emerald-300 transition-colors"
223248 >
224249 Register
225250 </ a >
@@ -253,7 +278,7 @@ export default function LoginPage() {
253278 < motion . div variants = { itemVariants } className = "mt-6 text-center" >
254279 < a
255280 href = "/"
256- className = "text-xs font-mono text-gray-600 hover:text-gray-400 transition-colors"
281+ className = "text-xs font-mono text-gray-500 dark:text-gray- 600 hover:text-gray-700 dark: hover:text-gray-400 transition-colors"
257282 >
258283 ← Back to Home
259284 </ a >
0 commit comments