ajout de la box avec le profil + la barre de recherche

This commit is contained in:
sartron_Northblue
2025-09-12 13:51:10 +04:00
parent 45f28f60c8
commit 1b04d66de9
7 changed files with 581 additions and 108 deletions
+122
View File
@@ -0,0 +1,122 @@
import 'package:flutter/material.dart';
class AppTheme {
static const Color primaryColor = Color(0xFFFF6B35);
static const Color secondaryColor = Color(0xFF2C3E50);
static const Color backgroundColor = Color(0xFFF8F9FA);
static const Color cardColor = Colors.white;
static const Color textPrimary = Color(0xFF2C3E50);
static const Color textSecondary = Color(0xFF7F8C8D);
static const Color accentColor = Color(0xFFFFA726);
static ThemeData get lightTheme {
return ThemeData(
useMaterial3: true,
colorScheme: ColorScheme.fromSeed(
seedColor: primaryColor,
brightness: Brightness.light,
),
scaffoldBackgroundColor: backgroundColor,
appBarTheme: const AppBarTheme(
backgroundColor: Colors.transparent,
elevation: 0,
iconTheme: IconThemeData(color: textPrimary),
titleTextStyle: TextStyle(
color: textPrimary,
fontSize: 20,
fontWeight: FontWeight.bold,
),
),
textTheme: const TextTheme(
headlineLarge: TextStyle(
fontSize: 32,
fontWeight: FontWeight.bold,
color: Colors.white,
height: 1.1,
),
headlineMedium: TextStyle(
fontSize: 24,
fontWeight: FontWeight.bold,
color: textPrimary,
),
titleLarge: TextStyle(
fontSize: 20,
fontWeight: FontWeight.bold,
color: textPrimary,
),
titleMedium: TextStyle(
fontSize: 16,
fontWeight: FontWeight.w600,
color: textPrimary,
),
bodyLarge: TextStyle(
fontSize: 16,
fontWeight: FontWeight.w400,
color: textPrimary,
),
bodyMedium: TextStyle(
fontSize: 14,
fontWeight: FontWeight.w400,
color: textSecondary,
),
bodySmall: TextStyle(
fontSize: 12,
fontWeight: FontWeight.w400,
color: textSecondary,
),
),
elevatedButtonTheme: ElevatedButtonThemeData(
style: ElevatedButton.styleFrom(
backgroundColor: primaryColor,
foregroundColor: Colors.white,
elevation: 4,
shadowColor: primaryColor.withOpacity(0.3),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(16),
),
padding: const EdgeInsets.symmetric(horizontal: 24, vertical: 16),
),
),
cardTheme: CardThemeData(
color: cardColor,
elevation: 8,
shadowColor: Colors.black.withOpacity(0.1),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(16),
),
),
);
}
// Gradients personnalisés
static const LinearGradient volcanoGradient = LinearGradient(
begin: Alignment.topLeft,
end: Alignment.bottomRight,
colors: [
Color(0xFF1A1A1A), // Ciel sombre
Color(0xFF2D1B1B), // Rouge sombre
Color(0xFF8B0000), // Rouge foncé (lave)
Color(0xFFFF4500), // Rouge-orange (lave chaude)
Color(0xFFFF6347), // Orange (lave)
Color(0xFF4169E1), // Bleu ciel
Color(0xFF87CEEB), // Bleu clair
],
stops: [0.0, 0.2, 0.4, 0.5, 0.6, 0.8, 1.0],
);
static const LinearGradient profileGradient = LinearGradient(
colors: [Color(0xFFFFB74D), Color(0xFFFF6B35)],
begin: Alignment.topLeft,
end: Alignment.bottomRight,
);
static const LinearGradient cardGradient = LinearGradient(
begin: Alignment.topLeft,
end: Alignment.bottomRight,
colors: [
Color(0xFF1A1A2E),
Color(0xFF16213E),
Color(0xFF0F3460),
],
);
}