kisambu's picture
Upload du modèle de détection de tuberculose
87a2e39 verified
import 'package:flutter/material.dart';
import 'page1.dart';
class Accueil extends StatelessWidget {
const Accueil({super.key});
@override
Widget build(BuildContext context) {
return Scaffold(
body: Container(
decoration: const BoxDecoration(
gradient: LinearGradient(
begin: Alignment.topCenter,
end: Alignment.bottomCenter,
colors: [
Color(0xFF4A90E2), // Bleu médical
Color(0xFF2E7D82), // Bleu-vert professionnel
Color(0xFF1B5E62), // Bleu foncé
],
),
),
child: SafeArea(
child: SingleChildScrollView(
child: Padding(
padding: const EdgeInsets.symmetric(horizontal: 24.0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.stretch,
children: [
const SizedBox(height: 40),
// Logo et icône médicale
Container(
height: 120,
width: 120,
margin: const EdgeInsets.only(bottom: 20),
decoration: BoxDecoration(
color: Colors.white.withOpacity(0.15),
shape: BoxShape.circle,
border: Border.all(
color: Colors.white.withOpacity(0.3),
width: 2,
),
),
child: const Icon(
Icons.medical_services_outlined,
size: 60,
color: Colors.white,
),
),
// Image principale
Container(
height: 300,
margin: const EdgeInsets.only(bottom: 30),
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(20),
boxShadow: [
BoxShadow(
color: Colors.black.withOpacity(0.2),
blurRadius: 20,
offset: const Offset(0, 10),
),
],
),
child: ClipRRect(
borderRadius: BorderRadius.circular(20),
child: Image.asset(
'assets/image.jpeg',
fit: BoxFit.cover,
),
),
),
// Titre principal avec effet de glassmorphisme
Container(
padding: const EdgeInsets.all(24),
decoration: BoxDecoration(
color: Colors.white.withOpacity(0.15),
borderRadius: BorderRadius.circular(20),
border: Border.all(
color: Colors.white.withOpacity(0.2),
width: 1,
),
boxShadow: [
BoxShadow(
color: Colors.black.withOpacity(0.1),
blurRadius: 20,
offset: const Offset(0, 8),
),
],
),
child: Column(
children: [
const Text(
'TuberculoScan',
style: TextStyle(
fontSize: 32,
color: Colors.white,
fontWeight: FontWeight.bold,
letterSpacing: 1.2,
),
textAlign: TextAlign.center,
),
const SizedBox(height: 8),
Container(
height: 3,
width: 60,
decoration: BoxDecoration(
color: const Color(0xFF00E676), // Vert médical
borderRadius: BorderRadius.circular(2),
),
),
const SizedBox(height: 16),
const Text(
'Détection Intelligente de la\nTuberculose Pulmonaire',
style: TextStyle(
fontSize: 18,
color: Colors.white,
fontWeight: FontWeight.w300,
height: 1.4,
),
textAlign: TextAlign.center,
),
],
),
),
const SizedBox(height: 40),
// Informations sur l'app
Container(
padding: const EdgeInsets.all(20),
decoration: BoxDecoration(
color: Colors.white.withOpacity(0.1),
borderRadius: BorderRadius.circular(15),
border: Border.all(
color: Colors.white.withOpacity(0.2),
width: 1,
),
),
child: Row(
children: [
const Icon(
Icons.health_and_safety,
color: Color(0xFF00E676),
size: 24,
),
const SizedBox(width: 12),
const Expanded(
child: Text(
'Diagnostic rapide et précis par IA',
style: TextStyle(
color: Colors.white,
fontSize: 16,
fontWeight: FontWeight.w400,
),
),
),
],
),
),
const SizedBox(height: 40),
// Bouton de connexion avec design moderne
Container(
height: 60,
decoration: BoxDecoration(
gradient: const LinearGradient(
colors: [
Color(0xFF00E676), // Vert clair
Color(0xFF00C853), // Vert foncé
],
),
borderRadius: BorderRadius.circular(30),
boxShadow: [
BoxShadow(
color: const Color(0xFF00E676).withOpacity(0.4),
blurRadius: 20,
offset: const Offset(0, 8),
),
],
),
child: ElevatedButton(
onPressed: () {
Navigator.pushReplacement(
context,
MaterialPageRoute(
builder: (context) => PageConnexion()),
);
},
style: ElevatedButton.styleFrom(
backgroundColor: Colors.transparent,
shadowColor: Colors.transparent,
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(30),
),
),
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
const Icon(
Icons.login_rounded,
color: Colors.white,
size: 24,
),
const SizedBox(width: 12),
const Text(
'Commencer le diagnostic',
style: TextStyle(
color: Colors.white,
fontSize: 18,
fontWeight: FontWeight.w600,
letterSpacing: 0.5,
),
),
],
),
),
),
const SizedBox(height: 20),
// Bouton secondaire
Container(
height: 55,
child: OutlinedButton(
onPressed: () {
// Action pour en savoir plus
},
style: OutlinedButton.styleFrom(
side: const BorderSide(
color: Colors.white,
width: 1.5,
),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(27.5),
),
),
child: const Text(
'En savoir plus',
style: TextStyle(
color: Colors.white,
fontSize: 16,
fontWeight: FontWeight.w500,
),
),
),
),
const SizedBox(height: 40),
// Footer avec informations
Container(
padding: const EdgeInsets.all(16),
child: Column(
children: [
Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
const Icon(
Icons.verified_user,
color: Colors.white70,
size: 16,
),
const SizedBox(width: 8),
const Text(
'Certifié médical',
style: TextStyle(
color: Colors.white70,
fontSize: 12,
),
),
],
),
const SizedBox(height: 8),
const Text(
'Application développée en collaboration\navec des professionnels de santé',
style: TextStyle(
color: Colors.white60,
fontSize: 11,
height: 1.3,
),
textAlign: TextAlign.center,
),
],
),
),
const SizedBox(height: 20),
],
),
),
),
),
),
);
}
}