Files
flux/lib/theme.dart

74 lines
2.4 KiB
Dart

// lib/theme.dart
import 'package:flutter/material.dart';
import 'package:google_fonts/google_fonts.dart';
class FluxColors {
// Palette Tech Dark da loghi generati
static const Color background = Color(0xFF0A0E17); // Nero profondo/Blu scuro
static const Color surface = Color(0xFF161B22); // Pannelli scuri
static const Color primaryBlue = Color(0xFF007BFF); // Blu Elettrico del logo
static const Color accentTurquoise = Color(0xFF17A2B8); // Turchese del flusso
static const Color textPrimary = Colors.white;
static const Color textSecondary = Color(0xFF8B949E); // Grigio fumo
}
ThemeData fluxDarkTheme = ThemeData(
useMaterial3: true,
brightness: Brightness.dark,
primaryColor: FluxColors.primaryBlue,
scaffoldBackgroundColor: FluxColors.background,
colorScheme: const ColorScheme.dark(
primary: FluxColors.primaryBlue,
secondary: FluxColors.accentTurquoise,
surface: FluxColors.surface,
background: FluxColors.background,
onPrimary: Colors.white,
onSurface: FluxColors.textPrimary,
),
// Font moderno sans-serif (es. Montserrat o Poppins coerente con descrizione)
textTheme: GoogleFonts.poppinsTextTheme(ThemeData.dark().textTheme).copyWith(
headlineMedium: GoogleFonts.poppins(
color: FluxColors.textPrimary,
fontWeight: FontWeight.w600,
letterSpacing: 0.5,
),
titleLarge: GoogleFonts.poppins(
color: FluxColors.textPrimary,
fontWeight: FontWeight.w500,
),
bodyMedium: GoogleFonts.poppins(color: FluxColors.textSecondary),
),
appBarTheme: const AppBarTheme(
backgroundColor: FluxColors.background,
elevation: 0,
centerTitle: false,
titleTextStyle: TextStyle(
color: FluxColors.textPrimary,
fontSize: 20,
fontWeight: FontWeight.w600,
),
),
cardTheme: const CardThemeData(
color: FluxColors.surface,
elevation: 2,
margin: EdgeInsets.all(8),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.all(Radius.circular(12)),
),
),
// Stile per i pulsanti (es. "Nuova Operazione")
elevatedButtonTheme: ElevatedButtonThemeData(
style: ElevatedButton.styleFrom(
backgroundColor: FluxColors.primaryBlue,
foregroundColor: Colors.white,
padding: const EdgeInsets.symmetric(horizontal: 24, vertical: 12),
shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(8)),
textStyle: GoogleFonts.poppins(fontWeight: FontWeight.w500),
),
),
);