1
+ import 'package:flutter/material.dart' ;
2
+ import 'package:login_page_day_23/animation/FadeAnimation.dart' ;
3
+
4
+ class LoginPage extends StatelessWidget {
5
+ @override
6
+ Widget build (BuildContext context) {
7
+ return Scaffold (
8
+ resizeToAvoidBottomInset: false ,
9
+ backgroundColor: Colors .white,
10
+ appBar: AppBar (
11
+ elevation: 0 ,
12
+ brightness: Brightness .light,
13
+ backgroundColor: Colors .white,
14
+ leading: IconButton (
15
+ onPressed: () {
16
+ Navigator .pop (context);
17
+ },
18
+ icon: Icon (Icons .arrow_back_ios, size: 20 , color: Colors .black,),
19
+ ),
20
+ ),
21
+ body: Container (
22
+ height: MediaQuery .of (context).size.height,
23
+ width: double .infinity,
24
+ child: Column (
25
+ mainAxisAlignment: MainAxisAlignment .spaceBetween,
26
+ children: < Widget > [
27
+ Expanded (
28
+ child: Column (
29
+ mainAxisAlignment: MainAxisAlignment .spaceEvenly,
30
+ children: < Widget > [
31
+ Column (
32
+ children: < Widget > [
33
+ FadeAnimation (1 , Text ("Login" , style: TextStyle (
34
+ fontSize: 30 ,
35
+ fontWeight: FontWeight .bold
36
+ ),)),
37
+ SizedBox (height: 20 ,),
38
+ FadeAnimation (1.2 , Text ("Login to your account" , style: TextStyle (
39
+ fontSize: 15 ,
40
+ color: Colors .grey[700 ]
41
+ ),)),
42
+ ],
43
+ ),
44
+ Padding (
45
+ padding: EdgeInsets .symmetric (horizontal: 40 ),
46
+ child: Column (
47
+ children: < Widget > [
48
+ FadeAnimation (1.2 , makeInput (label: "Email" )),
49
+ FadeAnimation (1.3 , makeInput (label: "Password" , obscureText: true )),
50
+ ],
51
+ ),
52
+ ),
53
+ FadeAnimation (1.4 , Padding (
54
+ padding: EdgeInsets .symmetric (horizontal: 40 ),
55
+ child: Container (
56
+ padding: EdgeInsets .only (top: 3 , left: 3 ),
57
+ decoration: BoxDecoration (
58
+ borderRadius: BorderRadius .circular (50 ),
59
+ border: Border (
60
+ bottom: BorderSide (color: Colors .black),
61
+ top: BorderSide (color: Colors .black),
62
+ left: BorderSide (color: Colors .black),
63
+ right: BorderSide (color: Colors .black),
64
+ )
65
+ ),
66
+ child: MaterialButton (
67
+ minWidth: double .infinity,
68
+ height: 60 ,
69
+ onPressed: () {},
70
+ color: Colors .greenAccent,
71
+ elevation: 0 ,
72
+ shape: RoundedRectangleBorder (
73
+ borderRadius: BorderRadius .circular (50 )
74
+ ),
75
+ child: Text ("Login" , style: TextStyle (
76
+ fontWeight: FontWeight .w600,
77
+ fontSize: 18
78
+ ),),
79
+ ),
80
+ ),
81
+ )),
82
+ FadeAnimation (1.5 , Row (
83
+ mainAxisAlignment: MainAxisAlignment .center,
84
+ children: < Widget > [
85
+ Text ("Don't have an account?" ),
86
+ Text ("Sign up" , style: TextStyle (
87
+ fontWeight: FontWeight .w600, fontSize: 18
88
+ ),),
89
+ ],
90
+ ))
91
+ ],
92
+ ),
93
+ ),
94
+ FadeAnimation (1.2 , Container (
95
+ height: MediaQuery .of (context).size.height / 3 ,
96
+ decoration: BoxDecoration (
97
+ image: DecorationImage (
98
+ image: AssetImage ('assets/background.png' ),
99
+ fit: BoxFit .cover
100
+ )
101
+ ),
102
+ ))
103
+ ],
104
+ ),
105
+ ),
106
+ );
107
+ }
108
+
109
+ Widget makeInput ({label, obscureText = false }) {
110
+ return Column (
111
+ crossAxisAlignment: CrossAxisAlignment .start,
112
+ children: < Widget > [
113
+ Text (label, style: TextStyle (
114
+ fontSize: 15 ,
115
+ fontWeight: FontWeight .w400,
116
+ color: Colors .black87
117
+ ),),
118
+ SizedBox (height: 5 ,),
119
+ TextField (
120
+ obscureText: obscureText,
121
+ decoration: InputDecoration (
122
+ contentPadding: EdgeInsets .symmetric (vertical: 0 , horizontal: 10 ),
123
+ enabledBorder: OutlineInputBorder (
124
+ borderSide: BorderSide (color: Colors .grey[400 ])
125
+ ),
126
+ border: OutlineInputBorder (
127
+ borderSide: BorderSide (color: Colors .grey[400 ])
128
+ ),
129
+ ),
130
+ ),
131
+ SizedBox (height: 30 ,),
132
+ ],
133
+ );
134
+ }
135
+ }
0 commit comments