import 'package:flutter/material.dart';
class LoginPage extends StatefulWidget {
const LoginPage({super.key});
@override
// ignore: library_private_types_in_public_api
_LoginPageState createState() => _LoginPageState();
}
class _LoginPageState extends State<LoginPage> {
final scaffoldkey = GlobalKey<ScaffoldState>();
GlobalKey<FormState> globalFormKey = GlobalKey<FormState>();
bool _hidePassword = true;
@override
Widget build(BuildContext context) {
return Scaffold(
key: scaffoldkey,
body: SingleChildScrollView(
child: Column(
children: <Widget>[
Stack(
children: <Widget>[
Container(
width: double.infinity,
padding:
const EdgeInsets.symmetric(vertical: 30, horizontal: 20),
margin:
const EdgeInsets.symmetric(vertical: 30, horizontal: 20),
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(20),
color: Theme.of(context).primaryColor,
boxShadow: [
BoxShadow(
color:
Theme.of(context).highlightColor.withOpacity(0.3),
offset: const Offset(0, 10),
blurRadius: 20)
],
),
child: Form(
key: globalFormKey,
child: Column(
children: <Widget>[
const SizedBox(
height: 25,
),
Text(
'Login',
style: Theme.of(context).textTheme.headline3,
),
const SizedBox(
height: 20,
),
TextFormField(
keyboardType: TextInputType.emailAddress,
//onSaved
validator: (input) => !input!.contains("@")
? "Email id shold be valid"
: null,
decoration: const InputDecoration(
hintText: 'Email Adress',
enabledBorder: UnderlineInputBorder(
borderSide: BorderSide(
color: Color.fromARGB(117, 0, 0, 0),
),
),
focusedBorder: UnderlineInputBorder(
borderSide: BorderSide(
color: Color.fromARGB(117, 0, 0, 0),
),
),
prefixIcon: Icon(
Icons.email,
color: Color.fromARGB(117, 0, 0, 0),
),
),
),
const SizedBox(
height: 20,
),
TextFormField(
keyboardType: TextInputType.text,
//onSaved
validator: (input) => input!.length < 3
? "Password should be more than 3 characters"
: null,
obscureText: _hidePassword,
decoration: const InputDecoration(
hintText: 'Password',
enabledBorder: UnderlineInputBorder(
borderSide: BorderSide(
color: Color.fromARGB(117, 0, 0, 0),
),
),
focusedBorder: UnderlineInputBorder(
borderSide: BorderSide(
color: Color.fromARGB(117, 0, 0, 0),
),
),
prefixIcon: Icon(
Icons.admin_panel_settings_outlined,
color: Color.fromARGB(117, 0, 0, 0),
),
suffixIcon: IconButton(
onPressed: () {
setState(() {
_hidePassword = false;
});
},
color: Theme.of(context)
.colorScheme
.secondary
.withOpacity(0.4),
icon: Icon(
_hidePassword
? Icons.visibility_off
: Icons.visibility,
)),
),
),
const SizedBox(
height: 30,
),
],
),
),
),
],
),
],
),
),
);
}
}
suffixIcon: IconButton(
onPressed: () {
setState(() {
_hidePassword = false;
});
},
color: Theme.of(context)
.colorScheme
.secondary
.withOpacity(0.4),
icon: Icon(
_hidePassword
? Icons.visibility_off
: Icons.visibility,
)),