Log
<p>import '/flutter_flow/flutter_flow_theme.dart';<br />
import '/flutter_flow/flutter_flow_util.dart';<br />
import '/flutter_flow/flutter_flow_widgets.dart';<br />
import 'package:flutter/material.dart';<br />
import 'package:google_fonts/google_fonts.dart';<br />
import 'package:provider/provider.dart';</p>
<p>import 'login_model.dart';<br />
export 'login_model.dart';</p>
<p>class LoginWidget extends StatefulWidget {<br />
const LoginWidget({Key? key}) : super(key: key);</p>
<p> @override<br />
_LoginWidgetState createState() => _LoginWidgetState();<br />
}</p>
<p>class _LoginWidgetState extends State<LoginWidget> {<br />
late LoginModel _model;</p>
<p> final scaffoldKey = GlobalKey<ScaffoldState>();</p>
<p> @override<br />
void initState() {<br />
super.initState();<br />
_model = createModel(context, () => LoginModel());</p>
<p> _model.textController1 ??= TextEditingController();<br />
_model.textController2 ??= TextEditingController();<br />
}</p>
<p> @override<br />
void dispose() {<br />
_model.dispose();</p>
<p> super.dispose();<br />
}</p>
<p> @override<br />
Widget build(BuildContext context) {<br />
return GestureDetector(<br />
onTap: () => FocusScope.of(context).requestFocus(_model.unfocusNode),<br />
child: Scaffold(<br />
key: scaffoldKey,<br />
backgroundColor: Colors.white,<br />
body: SafeArea(<br />
top: true,<br />
child: SingleChildScrollView(<br />
child: Column(<br />
mainAxisSize: MainAxisSize.max,<br />
mainAxisAlignment: MainAxisAlignment.center,<br />
children: [<br />
Container(<br />
width: double.infinity,<br />
height: 140,<br />
decoration: BoxDecoration(<br />
color: Colors.white,<br />
borderRadius: BorderRadius.only(<br />
bottomLeft: Radius.circular(16),<br />
bottomRight: Radius.circular(16),<br />
topLeft: Radius.circular(0),<br />
topRight: Radius.circular(0),<br />
),<br />
),<br />
alignment: AlignmentDirectional(-1.00, 0.00),<br />
child: Padding(<br />
padding: EdgeInsetsDirectional.fromSTEB(32, 0, 0, 0),<br />
child: Text(<br />
'Home.ai',<br />
style: FlutterFlowTheme.of(context).displaySmall.override(<br />
fontFamily: 'Outfit',<br />
color: Color(0xFF15161E),<br />
fontSize: 36,<br />
fontWeight: FontWeight.w600,<br />
),<br />
),<br />
),<br />
),<br />
Align(<br />
alignment: AlignmentDirectional(0.00, 0.00),<br />
child: Padding(<br />
padding: EdgeInsetsDirectional.fromSTEB(32, 32, 32, 32),<br />
child: Column(<br />
mainAxisSize: MainAxisSize.max,<br />
crossAxisAlignment: CrossAxisAlignment.start,<br />
children: [<br />
Text(<br />
'Welcome Back',<br />
style: FlutterFlowTheme.of(context)<br />
.displaySmall<br />
.override(<br />
fontFamily: 'Outfit',<br />
color: Color(0xFF15161E),<br />
fontSize: 36,<br />
fontWeight: FontWeight.w600,<br />
),<br />
),<br />
Padding(<br />
padding: EdgeInsetsDirectional.fromSTEB(0, 12, 0, 24),<br />
child: Text(<br />
'Let\'s get started by filling out the form below.',<br />
style: FlutterFlowTheme.of(context)<br />
.labelMedium<br />
.override(<br />
fontFamily: 'Outfit',<br />
color: Color(0xFF606A85),<br />
fontSize: 14,<br />
fontWeight: FontWeight.w500,<br />
),<br />
),<br />
),<br />
Padding(<br />
padding: EdgeInsetsDirectional.fromSTEB(0, 0, 0, 16),<br />
child: TextFormField(<br />
controller: _model.textController1,<br />
obscureText: false,<br />
decoration: InputDecoration(<br />
labelText: 'Email',<br />
hintStyle: FlutterFlowTheme.of(context)<br />
.bodyLarge<br />
.override(<br />
fontFamily: 'Plus Jakarta Sans',<br />
color: Color(0xFF15161E),<br />
fontSize: 16,<br />
fontWeight: FontWeight.normal,<br />
),<br />
enabledBorder: OutlineInputBorder(<br />
borderSide: BorderSide(<br />
color: Color(0xFFE5E7EB),<br />
width: 2,<br />
),<br />
borderRadius: BorderRadius.circular(12),<br />
),<br />
focusedBorder: OutlineInputBorder(<br />
borderSide: BorderSide(<br />
color: Color(0x00000000),<br />
width: 2,<br />
),<br />
borderRadius: BorderRadius.circular(12),<br />
),<br />
errorBorder: OutlineInputBorder(<br />
borderSide: BorderSide(<br />
color: Color(0x00000000),<br />
width: 2,<br />
),<br />
borderRadius: BorderRadius.circular(12),<br />
),<br />
focusedErrorBorder: OutlineInputBorder(<br />
borderSide: BorderSide(<br />
color: Color(0x00000000),<br />
width: 2,<br />
),<br />
borderRadius: BorderRadius.circular(12),<br />
),<br />
),<br />
style:<br />
FlutterFlowTheme.of(context).bodyLarge.override(<br />
fontFamily: 'Plus Jakarta Sans',<br />
color: Color(0xFF15161E),<br />
fontSize: 16,<br />
fontWeight: FontWeight.normal,<br />
),<br />
validator: _model.textController1Validator<br />
.asValidator(context),<br />
),<br />
),<br />
Padding(<br />
padding: EdgeInsetsDirectional.fromSTEB(0, 0, 0, 16),<br />
child: TextFormField(<br />
controller: _model.textController2,<br />
obscureText: !_model.passwordVisibility,<br />
decoration: InputDecoration(<br />
labelText: 'Password',<br />
hintStyle: FlutterFlowTheme.of(context)<br />
.bodyLarge<br />
.override(<br />
fontFamily: 'Plus Jakarta Sans',<br />
color: Color(0xFF15161E),<br />
fontSize: 16,<br />
fontWeight: FontWeight.normal,<br />
),<br />
enabledBorder: OutlineInputBorder(<br />
borderSide: BorderSide(<br />
color: Color(0xFFE5E7EB),<br />
width: 2,<br />
),<br />
borderRadius: BorderRadius.circular(12),<br />
),<br />
focusedBorder: OutlineInputBorder(<br />
borderSide: BorderSide(<br />
color: Color(0x00000000),<br />
width: 2,<br />
),<br />
borderRadius: BorderRadius.circular(12),<br />
),<br />
errorBorder: OutlineInputBorder(<br />
borderSide: BorderSide(<br />
color: Color(0x00000000),<br />
width: 2,<br />
),<br />
borderRadius: BorderRadius.circular(12),<br />
),<br />
focusedErrorBorder: OutlineInputBorder(<br />
borderSide: BorderSide(<br />
color: Color(0x00000000),<br />
width: 2,<br />
),<br />
borderRadius: BorderRadius.circular(12),<br />
),<br />
suffixIcon: InkWell(<br />
onTap: () => setState(<br />
() => _model.passwordVisibility =<br />
!_model.passwordVisibility,<br />
),<br />
focusNode: FocusNode(skipTraversal: true),<br />
child: Icon(<br />
_model.passwordVisibility<br />
? Icons.visibility_outlined<br />
: Icons.visibility_off_outlined,<br />
color: Color(0xFF606A85),<br />
size: 22,<br />
),<br />
),<br />
),<br />
style:<br />
FlutterFlowTheme.of(context).bodyLarge.override(<br />
fontFamily: 'Plus Jakarta Sans',<br />
color: Color(0xFF15161E),<br />
fontSize: 16,<br />
fontWeight: FontWeight.normal,<br />
),<br />
validator: _model.textController2Validator<br />
.asValidator(context),<br />
),<br />
),<br />
Padding(<br />
padding: EdgeInsetsDirectional.fromSTEB(0, 0, 0, 16),<br />
child: FFButtonWidget(<br />
onPressed: () async {},<br />
text: 'Sign In',<br />
options: FFButtonOptions(<br />
width: 370,<br />
height: 44,<br />
padding:<br />
EdgeInsetsDirectional.fromSTEB(0, 0, 0, 0),<br />
iconPadding:<br />
EdgeInsetsDirectional.fromSTEB(0, 0, 0, 0),<br />
color: Color(0xFF6F61EF),<br />
textStyle: FlutterFlowTheme.of(context)<br />
.titleSmall<br />
.override(<br />
fontFamily: 'Plus Jakarta Sans',<br />
color: Colors.white,<br />
fontSize: 16,<br />
fontWeight: FontWeight.w500,<br />
),<br />
elevation: 3,<br />
borderRadius: BorderRadius.circular(12),<br />
),<br />
),<br />
),<br />
Row(<br />
mainAxisSize: MainAxisSize.max,<br />
mainAxisAlignment: MainAxisAlignment.center,<br />
children: [<br />
Padding(<br />
padding:<br />
EdgeInsetsDirectional.fromSTEB(0, 4, 0, 4),<br />
child: Text(<br />
'Don\'t have an account?',<br />
style: FlutterFlowTheme.of(context)<br />
.bodyMedium<br />
.override(<br />
fontFamily: 'Plus Jakarta Sans',<br />
color: Color(0xFF15161E),<br />
fontSize: 14,<br />
fontWeight: FontWeight.normal,<br />
),<br />
),<br />
),<br />
Padding(<br />
padding:<br />
EdgeInsetsDirectional.fromSTEB(4, 4, 0, 4),<br />
child: Text(<br />
'Sign Up Here',<br />
style: FlutterFlowTheme.of(context)<br />
.bodyMedium<br />
.override(<br />
fontFamily: 'Plus Jakarta Sans',<br />
color: Color(0xFF6F61EF),<br />
fontSize: 14,<br />
fontWeight: FontWeight.normal,<br />
),<br />
),<br />
),<br />
],<br />
),<br />
Padding(<br />
padding: EdgeInsetsDirectional.fromSTEB(0, 32, 0, 16),<br />
child: FFButtonWidget(<br />
onPressed: () {<br />
print('Button pressed ...');<br />
},<br />
text: 'Forgot Password?',<br />
options: FFButtonOptions(<br />
width: 370,<br />
height: 44,<br />
padding:<br />
EdgeInsetsDirectional.fromSTEB(0, 0, 0, 0),<br />
iconPadding:<br />
EdgeInsetsDirectional.fromSTEB(0, 0, 0, 0),<br />
color: Colors.white,<br />
textStyle: FlutterFlowTheme.of(context)<br />
.labelLarge<br />
.override(<br />
fontFamily: 'Outfit',<br />
color: Color(0xFF606A85),<br />
fontSize: 16,<br />
fontWeight: FontWeight.w500,<br />
),<br />
elevation: 0,<br />
borderRadius: BorderRadius.circular(12),<br />
),<br />
),<br />
),<br />
],<br />
),<br />
),<br />
),<br />
],<br />
),<br />
),<br />
),<br />
),<br />
);<br />
}<br />
}<br />
</p>