Veja em apenas 3 minutos como é super simples criar uma bela tela de login no Flutter.
Neste tutorial, você aprenderá a criar uma tela de login básica no Flutter. A tela de login terá os seguintes elementos:
- Um campo de texto para o nome de usuário
- Um campo de texto para a senha
- Um botão para enviar o login
- Um botão para criar uma conta
Caso ainda não tenha o Flutter instalado confira nesse link como realizar a instalação na sua máquina.
Abaixo segue o link em rápido para você conseguir ver como foi feito.
Para iniciarmos um novo projeto em Flutter precisamos digitar o seguinte comando em nosso terminal:
flutter create login_page
Com o projeto já iniciado, limpamos todo o código de exemplo no arquivo main.dart que se encontra na pasta /lib e o deixamos da seguinte forma:
import 'package:flutter/material.dart';
import 'package:login_page/login_page.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,
title: 'Login Page',
theme: ThemeData(
colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
useMaterial3: true,
),
home: const LoginPage(),
);
}
}
Agora vamos criar nosso widget LoginPage que será de fato a nossa tela de login.
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
class LoginPage extends StatelessWidget {
const LoginPage({super.key});
@override
Widget build(BuildContext context) {
return Scaffold(
extendBodyBehindAppBar: true,
appBar: AppBar(
title: const Image(
image: NetworkImage(
"https://ninelabs.blog/wp-content/uploads/2022/05/Group-1.png"),
width: 140,
),
elevation: 0,
backgroundColor: Colors.transparent,
),
body: Container(
width: MediaQuery.of(context).size.width,
padding: const EdgeInsets.all(27),
decoration: const BoxDecoration(
gradient: LinearGradient(
colors: [
Colors.deepPurple,
Colors.pinkAccent,
],
),
),
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
const SizedBox(height: 30),
const Text(
"Digite os dados de acesso nos campos abaixo.",
style: TextStyle(
color: Colors.white,
),
),
const SizedBox(height: 30),
const CupertinoTextField(
cursorColor: Colors.pinkAccent,
padding: EdgeInsets.all(15),
placeholder: "Digite o seu e-mail",
placeholderStyle: TextStyle(color: Colors.white70, fontSize: 14),
style: TextStyle(color: Colors.white, fontSize: 14),
decoration: BoxDecoration(
color: Colors.black12,
borderRadius: BorderRadius.all(
Radius.circular(7),
)),
),
const SizedBox(height: 5),
const CupertinoTextField(
padding: EdgeInsets.all(15),
cursorColor: Colors.pinkAccent,
placeholder: "Digite sua senha",
obscureText: true,
placeholderStyle: TextStyle(color: Colors.white70, fontSize: 14),
style: TextStyle(color: Colors.white, fontSize: 14),
decoration: BoxDecoration(
color: Colors.black12,
borderRadius: BorderRadius.all(
Radius.circular(7),
)),
),
const SizedBox(height: 30),
SizedBox(
width: double.infinity,
child: CupertinoButton(
padding: const EdgeInsets.all(17),
color: Colors.greenAccent,
child: const Text(
"Acessar",
style: TextStyle(
color: Colors.black45,
fontSize: 14,
fontWeight: FontWeight.w600),
),
onPressed: () {},
),
),
const SizedBox(height: 7),
Container(
width: double.infinity,
decoration: BoxDecoration(
border: Border.all(color: Colors.white70, width: 0.8),
borderRadius: BorderRadius.circular(7)),
child: CupertinoButton(
child: const Text(
"Crie sua conta",
style: TextStyle(
color: Colors.white,
fontSize: 14,
fontWeight: FontWeight.w600),
),
onPressed: () {},
),
),
],
),
),
);
}
}
Simples assim! Espero que tenham gostado e que sirva de incentivo para você começar a criar as suas próprias telas!
Confira também nosso outro artigo ‘Tela de Login com HTML + CSS‘.
Te desejo muito sucesso!