glp-companion/lib/features/auth/presentation/screens/login_screen.dart

85 lines
2.9 KiB
Dart

import 'package:flutter/material.dart';
class LoginScreen extends StatelessWidget {
const LoginScreen({super.key});
@override
Widget build(BuildContext context) {
final emailController = TextEditingController();
return Scaffold(
body: Center(
child: ConstrainedBox(
constraints: const BoxConstraints(maxWidth: 400),
child: Padding(
padding: const EdgeInsets.all(24.0),
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.stretch,
children: [
const Icon(Icons.health_and_safety,
size: 64, color: Colors.teal),
const SizedBox(height: 16),
const Text(
'GLP-1 Companion',
textAlign: TextAlign.center,
style: TextStyle(fontSize: 24, fontWeight: FontWeight.bold),
),
const SizedBox(height: 8),
const Text(
'Passwordless & Biometric Sign In',
textAlign: TextAlign.center,
style: TextStyle(color: Colors.grey),
),
const SizedBox(height: 32),
ElevatedButton.icon(
onPressed: () {},
icon: const Icon(Icons.g_mobiledata, size: 28),
label: const Text('Continue with Google'),
),
const SizedBox(height: 12),
ElevatedButton.icon(
onPressed: () {},
icon: const Icon(Icons.apple),
label: const Text('Continue with Apple'),
),
const SizedBox(height: 12),
ElevatedButton.icon(
onPressed: () {},
icon: const Icon(Icons.window),
label: const Text('Continue with Microsoft'),
),
const SizedBox(height: 24),
const Row(
children: [
Expanded(child: Divider()),
Padding(
padding: EdgeInsets.symmetric(horizontal: 8.0),
child: Text('OR'),
),
Expanded(child: Divider()),
],
),
const SizedBox(height: 24),
TextField(
controller: emailController,
decoration: const InputDecoration(
labelText: 'Email Address',
border: OutlineInputBorder(),
prefixIcon: Icon(Icons.email_outlined),
),
),
const SizedBox(height: 12),
FilledButton(
onPressed: () {},
child: const Text('Send Magic Link'),
),
],
),
),
),
),
);
}
}