Maquetado de login por movil
This commit is contained in:
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -16,6 +16,7 @@ class MyApp extends StatelessWidget {
|
|||||||
Widget build(BuildContext context) => ChangeNotifierProvider(
|
Widget build(BuildContext context) => ChangeNotifierProvider(
|
||||||
create: (context) => GoogleSignProvider(),
|
create: (context) => GoogleSignProvider(),
|
||||||
child: MaterialApp(
|
child: MaterialApp(
|
||||||
|
theme: ThemeData(fontFamily: 'Poppins'),
|
||||||
debugShowCheckedModeBanner: false,
|
debugShowCheckedModeBanner: false,
|
||||||
title: 'ProsApp',
|
title: 'ProsApp',
|
||||||
home: LoginScreen(),
|
home: LoginScreen(),
|
||||||
|
|||||||
+52
-36
@@ -16,33 +16,34 @@ class _LoginScreenState extends State<LoginScreen> {
|
|||||||
return SafeArea(
|
return SafeArea(
|
||||||
child: Scaffold(
|
child: Scaffold(
|
||||||
resizeToAvoidBottomInset: false,
|
resizeToAvoidBottomInset: false,
|
||||||
backgroundColor: const Color.fromARGB(255, 186, 237, 255),
|
backgroundColor: Color(0xFFD6F4FF),
|
||||||
body: Stack(
|
body: Stack(
|
||||||
children: [
|
children: [
|
||||||
Container(
|
Container(
|
||||||
margin: const EdgeInsets.only(top: 300),
|
margin: const EdgeInsets.only(top: 280),
|
||||||
width: double.infinity,
|
width: double.infinity,
|
||||||
height: 600,
|
height: 600,
|
||||||
decoration: const BoxDecoration(
|
decoration: const BoxDecoration(
|
||||||
color: Colors.white,
|
color: Colors.white,
|
||||||
borderRadius: BorderRadius.only(
|
borderRadius: BorderRadius.only(
|
||||||
topRight: Radius.circular(40),
|
topRight: Radius.circular(50),
|
||||||
topLeft: Radius.circular(40))),
|
topLeft: Radius.circular(50))),
|
||||||
),
|
),
|
||||||
Container(
|
Container(
|
||||||
margin: const EdgeInsets.only(top: 100, left: 50, right: 50),
|
margin: const EdgeInsets.only(top: 120, left: 70, right: 70),
|
||||||
child: const Image(image: AssetImage('images/logo_prosapp.png')),
|
child: const Image(image: AssetImage('images/logo_prosapp.png')),
|
||||||
),
|
),
|
||||||
Container(
|
Container(
|
||||||
padding: const EdgeInsets.symmetric(horizontal: 0, vertical: 20),
|
padding: const EdgeInsets.symmetric(horizontal: 0, vertical: 20),
|
||||||
margin: const EdgeInsets.only(top: 300, left: 30, right: 50),
|
margin: const EdgeInsets.only(top: 280, left: 30, right: 50),
|
||||||
child: Column(children: const [
|
child: Column(children: const [
|
||||||
Align(
|
Align(
|
||||||
alignment: Alignment.topLeft,
|
alignment: Alignment.topLeft,
|
||||||
child: Text(
|
child: Text(
|
||||||
'Iniciar sesión',
|
'Iniciar sesión',
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
fontSize: 40.0,
|
color: Color(0xFF262626),
|
||||||
|
fontSize: 38.0,
|
||||||
fontWeight: FontWeight.bold,
|
fontWeight: FontWeight.bold,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
@@ -51,30 +52,29 @@ class _LoginScreenState extends State<LoginScreen> {
|
|||||||
),
|
),
|
||||||
Container(
|
Container(
|
||||||
padding: const EdgeInsets.symmetric(horizontal: 0, vertical: 20),
|
padding: const EdgeInsets.symmetric(horizontal: 0, vertical: 20),
|
||||||
margin: const EdgeInsets.only(top: 400, left: 50, right: 50),
|
margin: const EdgeInsets.only(top: 350, left: 50, right: 50),
|
||||||
child: Column(children: [
|
child: Column(children: [
|
||||||
const Padding(
|
const Padding(
|
||||||
padding: EdgeInsets.only(bottom: 5),
|
padding: EdgeInsets.only(bottom: 5),
|
||||||
child: Align(
|
child: Align(
|
||||||
alignment: Alignment.topLeft,
|
alignment: Alignment.topLeft,
|
||||||
child: Text('Numero de celular',
|
child: Text('Numero de celular',
|
||||||
style:
|
style: TextStyle(
|
||||||
TextStyle(fontSize: 25.0, color: Colors.black38)),
|
fontSize: 18.0, color: Color(0xFF959595))),
|
||||||
)),
|
)),
|
||||||
const Padding(
|
const Padding(
|
||||||
padding: EdgeInsets.only(bottom: 10),
|
padding: EdgeInsets.only(bottom: 10),
|
||||||
child: TextField(
|
child: TextField(
|
||||||
decoration: InputDecoration(
|
decoration: InputDecoration(
|
||||||
enabledBorder: OutlineInputBorder(
|
enabledBorder: OutlineInputBorder(
|
||||||
borderSide: BorderSide(color: Colors.black12),
|
borderSide: BorderSide(color: Color(0xFFECECEC)),
|
||||||
borderRadius: BorderRadius.all(
|
borderRadius: BorderRadius.all(
|
||||||
Radius.circular(20.0),
|
Radius.circular(50),
|
||||||
)),
|
)),
|
||||||
focusedBorder: OutlineInputBorder(
|
focusedBorder: OutlineInputBorder(
|
||||||
borderSide: BorderSide(
|
borderSide: BorderSide(color: Color(0xFFECECEC)),
|
||||||
color: Color.fromARGB(255, 214, 214, 214)),
|
|
||||||
borderRadius: BorderRadius.all(
|
borderRadius: BorderRadius.all(
|
||||||
Radius.circular(20.0),
|
Radius.circular(50),
|
||||||
)),
|
)),
|
||||||
hintText: '3163225944',
|
hintText: '3163225944',
|
||||||
fillColor: Color.fromARGB(255, 239, 239, 239),
|
fillColor: Color.fromARGB(255, 239, 239, 239),
|
||||||
@@ -83,42 +83,58 @@ class _LoginScreenState extends State<LoginScreen> {
|
|||||||
),
|
),
|
||||||
),
|
),
|
||||||
const Padding(
|
const Padding(
|
||||||
padding: EdgeInsets.only(bottom: 100),
|
padding: EdgeInsets.only(bottom: 40),
|
||||||
child: Text('Un código sera enviado a este numero de celular',
|
child: Text('Un código sera enviado a este numero de celular',
|
||||||
textAlign: TextAlign.center,
|
textAlign: TextAlign.center,
|
||||||
style: TextStyle(fontSize: 15.0, color: Colors.black38)),
|
style: TextStyle(fontSize: 15.0, color: Color(0xFF959595))),
|
||||||
),
|
),
|
||||||
Padding(
|
Padding(
|
||||||
padding: const EdgeInsets.only(left: 20, right: 20, bottom: 20),
|
padding: EdgeInsets.only(bottom: 40),
|
||||||
child: Container(
|
child: Center(
|
||||||
padding: const EdgeInsets.all(15),
|
child: ElevatedButton(
|
||||||
decoration: const BoxDecoration(
|
onPressed: () {},
|
||||||
color: Color.fromARGB(255, 34, 211, 255),
|
child: Text(
|
||||||
borderRadius: BorderRadius.all(
|
'Enviar código',
|
||||||
Radius.circular(20.0),
|
style: TextStyle(
|
||||||
)),
|
color: Colors.white,
|
||||||
child: const Center(
|
fontWeight: FontWeight.bold,
|
||||||
child: Center(
|
fontSize: 18,
|
||||||
child: Text(
|
),
|
||||||
'Enviar código',
|
),
|
||||||
style: TextStyle(
|
style: ElevatedButton.styleFrom(
|
||||||
color: Colors.white,
|
primary: Color(0xFF2BA4EC), // Color del botón
|
||||||
fontWeight: FontWeight.w900,
|
shape: RoundedRectangleBorder(
|
||||||
fontSize: 22),
|
borderRadius:
|
||||||
),
|
BorderRadius.circular(50), // Bordes redondeados
|
||||||
|
),
|
||||||
|
elevation: 0,
|
||||||
|
minimumSize: Size(220, 50), // Tamaño mínimo del botón
|
||||||
|
),
|
||||||
|
)),
|
||||||
|
),
|
||||||
|
Padding(
|
||||||
|
padding: EdgeInsets.only(bottom: 27),
|
||||||
|
child: GestureDetector(
|
||||||
|
onTap: () {},
|
||||||
|
child: Text(
|
||||||
|
'Entrar con correo electronico',
|
||||||
|
style: TextStyle(
|
||||||
|
fontSize: 15.0, color: Color(0xFF959595),
|
||||||
|
decoration: TextDecoration.underline, // Subrayado
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
RichText(
|
RichText(
|
||||||
text: const TextSpan(
|
text: const TextSpan(
|
||||||
style: TextStyle(fontSize: 16.0, color: Colors.black38),
|
style: TextStyle(fontSize: 16.0, color: Color(0xFF959595)),
|
||||||
children: [
|
children: [
|
||||||
TextSpan(text: 'No estas registrado? '),
|
TextSpan(text: 'No estas registrado? '),
|
||||||
TextSpan(
|
TextSpan(
|
||||||
text: 'Registrarse',
|
text: 'Registrarse',
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
color: Color.fromARGB(255, 23, 189, 231))),
|
color: Color(0xFF2BA4EC),
|
||||||
|
fontWeight: FontWeight.w500)),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
|||||||
+14
-11
@@ -80,17 +80,20 @@ flutter:
|
|||||||
# "family" key with the font family name, and a "fonts" key with a
|
# "family" key with the font family name, and a "fonts" key with a
|
||||||
# list giving the asset and other descriptors for the font. For
|
# list giving the asset and other descriptors for the font. For
|
||||||
# example:
|
# example:
|
||||||
# fonts:
|
fonts:
|
||||||
# - family: Schyler
|
- family: Poppins
|
||||||
# fonts:
|
fonts:
|
||||||
# - asset: fonts/Schyler-Regular.ttf
|
- asset: fonts/Poppins-Thin.ttf
|
||||||
# - asset: fonts/Schyler-Italic.ttf
|
- asset: fonts/Poppins-ExtraLight.ttf
|
||||||
# style: italic
|
- asset: fonts/Poppins-Light.ttf
|
||||||
# - family: Trajan Pro
|
- asset: fonts/Poppins-Regular.ttf
|
||||||
# fonts:
|
- asset: fonts/Poppins-Medium.ttf
|
||||||
# - asset: fonts/TrajanPro.ttf
|
- asset: fonts/Poppins-Black.ttf
|
||||||
# - asset: fonts/TrajanPro_Bold.ttf
|
- asset: fonts/Poppins-SemiBold.ttf
|
||||||
# weight: 700
|
- asset: fonts/Poppins-Bold.ttf
|
||||||
|
- asset: fonts/Poppins-ExtraBold.ttf
|
||||||
|
# style: italic
|
||||||
|
|
||||||
#
|
#
|
||||||
# For details regarding fonts from package dependencies,
|
# For details regarding fonts from package dependencies,
|
||||||
# see https://flutter.dev/custom-fonts/#from-packages
|
# see https://flutter.dev/custom-fonts/#from-packages
|
||||||
|
|||||||
Reference in New Issue
Block a user