@@ -6,6 +6,7 @@ import { useAuth } from '@/contexts';
66import { Button , Input , Card , CardHeader , CardContent , CardTitle } from '@/components/ui' ;
77import { Alert } from '@/components/ui/Alert' ;
88import Link from 'next/link' ;
9+ import Image from 'next/image' ;
910
1011export default function SignUp ( ) {
1112 const [ email , setEmail ] = useState ( '' ) ;
@@ -23,7 +24,6 @@ export default function SignUp() {
2324 setIsLoading ( true ) ;
2425 setSuccess ( false ) ;
2526
26- // Validation
2727 if ( password !== confirmPassword ) {
2828 setLocalError ( 'Passwords do not match' ) ;
2929 setIsLoading ( false ) ;
@@ -50,73 +50,120 @@ export default function SignUp() {
5050 } ;
5151
5252 return (
53- < div className = "min-h-screen flex items-center justify-center bg-gradient-to-br from-blue-50 to-indigo-100 p-4" >
54- < Card className = "w-full max-w-md" >
55- < CardHeader >
56- < CardTitle > Sign Up</ CardTitle >
57- </ CardHeader >
53+ < div className = "min-h-screen bg-[#0b1016] flex items-center justify-center px-4" >
54+ < div className = "w-full max-w-md" >
55+ < Card className = "bg-[#111827]/90 border border-[#1f2937] text-slate-100 shadow-xl backdrop-blur" >
56+ < CardHeader className = "pb-3" >
57+ < CardTitle className = "text-lg font-semibold tracking-tight text-slate-100 text-center" >
58+ Create your FlowBuildr account
59+ </ CardTitle >
60+ < p className = "text-xs text-slate-400 tracking-wide uppercase text-center" >
61+ Takeoffs powered by FlowBuildr
62+ </ p >
63+ </ CardHeader >
5864
59- < CardContent >
60- { localError && < Alert variant = "error" message = { localError } /> }
61- { success && (
62- < Alert variant = "success" message = "Account created successfully! Redirecting..." />
63- ) }
65+ < CardContent className = "pt-2" >
66+ { localError && (
67+ < div className = "mb-4" >
68+ < Alert variant = "error" message = { localError } />
69+ </ div >
70+ ) }
6471
65- < form onSubmit = { handleSignUp } className = "space-y-4" >
66- < Input
67- id = "email"
68- type = "email"
69- label = "Email"
70- value = { email }
71- onChange = { ( e ) => setEmail ( e . target . value ) }
72- 73- required
74- />
72+ { success && (
73+ < div className = "mb-4" >
74+ < Alert
75+ variant = "success"
76+ message = "Account created successfully! Redirecting..."
77+ />
78+ </ div >
79+ ) }
7580
76- < Input
77- id = "password"
78- type = "password"
79- label = "Password"
80- value = { password }
81- onChange = { ( e ) => setPassword ( e . target . value ) }
82- placeholder = "••••••••"
83- required
84- />
81+ < form onSubmit = { handleSignUp } className = "space-y-4 text-white" >
82+ { /* Email */ }
83+ < div className = "space-y-1" >
84+ < label
85+ htmlFor = "email"
86+ className = "block text-sm font-medium text-slate-100"
87+ >
88+ Email
89+ </ label >
90+ < Input
91+ id = "email"
92+ type = "email"
93+ value = { email }
94+ onChange = { ( e ) => setEmail ( e . target . value ) }
95+ 96+ required
97+ />
98+ </ div >
8599
86- < Input
87- id = "confirmPassword"
88- type = "password"
89- label = "Confirm Password"
90- value = { confirmPassword }
91- onChange = { ( e ) => setConfirmPassword ( e . target . value ) }
92- placeholder = "••••••••"
93- required
94- />
100+ { /* Password */ }
101+ < div className = "space-y-1" >
102+ < label
103+ htmlFor = "password"
104+ className = "block text-sm font-medium text-slate-100"
105+ >
106+ Password
107+ </ label >
108+ < Input
109+ id = "password"
110+ type = "password"
111+ value = { password }
112+ onChange = { ( e ) => setPassword ( e . target . value ) }
113+ placeholder = "••••••••"
114+ required
115+ />
116+ </ div >
95117
96- < Button
97- type = "submit"
98- variant = "primary"
99- className = "w-full"
100- isLoading = { isLoading }
101- >
102- Sign Up
103- </ Button >
104- </ form >
118+ { /* Confirm Password */ }
119+ < div className = "space-y-1" >
120+ < label
121+ htmlFor = "confirmPassword"
122+ className = "block text-sm font-medium text-slate-100"
123+ >
124+ Confirm Password
125+ </ label >
126+ < Input
127+ id = "confirmPassword"
128+ type = "password"
129+ value = { confirmPassword }
130+ onChange = { ( e ) => setConfirmPassword ( e . target . value ) }
131+ placeholder = "••••••••"
132+ required
133+ />
134+ </ div >
105135
106- < p className = "mt-6 text-center text-gray-600" >
107- Already have an account?{ ' ' }
108- < Link href = "/auth/signin" className = "text-indigo-600 hover:text-indigo-800 font-medium" >
109- Sign In
110- </ Link >
111- </ p >
136+ < Button
137+ type = "submit"
138+ variant = "primary"
139+ className = "w-full !bg-[#297fd7] !hover:bg-[#2f8af0] !border-0"
140+ isLoading = { isLoading }
141+ >
142+ Sign Up
143+ </ Button >
144+ </ form >
112145
113- < p className = "mt-2 text-center" >
114- < Link href = "/" className = "text-sm text-gray-500 hover:text-gray-700" >
115- ← Back to home
116- </ Link >
117- </ p >
118- </ CardContent >
119- </ Card >
146+ < p className = "mt-6 text-center text-sm text-slate-400" >
147+ Already have an account?{ ' ' }
148+ < Link
149+ href = "/auth/signin"
150+ className = "text-[#4fa2ff] hover:text-[#76b7ff] font-medium"
151+ >
152+ Sign In
153+ </ Link >
154+ </ p >
155+
156+ < p className = "mt-3 text-center" >
157+ < Link
158+ href = "/"
159+ className = "text-xs text-slate-500 hover:text-slate-300"
160+ >
161+ ← Back to home
162+ </ Link >
163+ </ p >
164+ </ CardContent >
165+ </ Card >
166+ </ div >
120167 </ div >
121168 ) ;
122169}
0 commit comments