@@ -29,7 +29,7 @@ export function IconInput({
2929 const [ hide , setHide ] = useState ( ! ! password )
3030 const Icon = icon === 'mail' ? Mail : Lock
3131 return (
32- < View style = { { marginTop : 18 } } >
32+ < View style = { { marginTop : 19 } } >
3333 < Text
3434 style = { {
3535 fontFamily : FONT . label ,
@@ -46,15 +46,19 @@ export function IconInput({
4646 flexDirection : 'row' ,
4747 alignItems : 'center' ,
4848 gap : 11 ,
49- height : 52 ,
49+ height : 55 ,
5050 paddingHorizontal : 16 ,
5151 borderRadius : 15 ,
5252 backgroundColor : '#111e35' ,
5353 borderWidth : 1.5 ,
54- borderColor : focused ? '#8b5cf6' : '#1c2f50' ,
54+ borderColor : focused ? '#00b8d9' : '#1c2f50' ,
55+ shadowColor : focused ? '#00b8d9' : 'transparent' ,
56+ shadowOffset : { width : 0 , height : 0 } ,
57+ shadowOpacity : focused ? 0.25 : 0 ,
58+ shadowRadius : 8 ,
5559 } }
5660 >
57- < Icon size = { 17 } color = { focused ? '#8b5cf6 ' : '#94a3b8' } strokeWidth = { 2 } />
61+ < Icon size = { 17 } color = { focused ? '#00b8d9 ' : '#94a3b8' } strokeWidth = { 2 } />
5862 < TextInput
5963 style = { { flex : 1 , fontFamily : FONT . body , fontSize : 15 , color : '#f1f5f9' } }
6064 placeholderTextColor = "#475569"
@@ -87,13 +91,25 @@ export function GradientButton({
8791 disabled ?: boolean
8892} ) {
8993 return (
90- < Pressable onPress = { onPress } disabled = { disabled || loading } style = { { marginTop : 24 } } >
94+ < Pressable
95+ onPress = { onPress }
96+ disabled = { disabled || loading }
97+ style = { {
98+ marginTop : 26 ,
99+ borderRadius : 16 ,
100+ shadowColor : '#00b8d9' ,
101+ shadowOffset : { width : 0 , height : 10 } ,
102+ shadowOpacity : 0.4 ,
103+ shadowRadius : 20 ,
104+ elevation : 8 ,
105+ } }
106+ >
91107 < LinearGradient
92108 colors = { [ '#00b8d9' , '#8b5cf6' ] }
93109 start = { { x : 0 , y : 0 } }
94110 end = { { x : 1 , y : 1 } }
95111 style = { {
96- height : 54 ,
112+ height : 57 ,
97113 borderRadius : 16 ,
98114 flexDirection : 'row' ,
99115 alignItems : 'center' ,
@@ -139,7 +155,7 @@ export function SecondaryButton({ title, onPress }: { title: string; onPress?: (
139155
140156export function AuthDivider ( ) {
141157 return (
142- < View style = { { flexDirection : 'row' , alignItems : 'center' , gap : 14 , marginVertical : 20 } } >
158+ < View style = { { flexDirection : 'row' , alignItems : 'center' , gap : 14 , marginVertical : 22 } } >
143159 < View style = { { flex : 1 , height : 1 , backgroundColor : '#1c2f50' } } />
144160 < Text style = { { fontFamily : FONT . label , fontSize : 11 , letterSpacing : 1.8 , color : '#475569' } } > OR</ Text >
145161 < View style = { { flex : 1 , height : 1 , backgroundColor : '#1c2f50' } } />
@@ -252,8 +268,10 @@ export function ServerRow() {
252268}
253269
254270export function Footer ( { children } : { children : ReactNode } ) {
271+ // Flow right under the content (28px) instead of pinning to the bottom — kills the
272+ // dead space between "Try demo account" and this footer.
255273 return (
256- < View style = { { marginTop : 'auto' , paddingTop : 18 , paddingBottom : 10 , alignItems : 'center' } } >
274+ < View style = { { marginTop : 28 , paddingBottom : 16 , alignItems : 'center' } } >
257275 { children }
258276 </ View >
259277 )
0 commit comments