darkTheme static method
Implementation
static ThemeData darkTheme() {
return ThemeData(
useMaterial3: true,
brightness: Brightness.dark,
colorScheme: const ColorScheme.dark(
primary: primarySage,
primaryContainer: Color(0xFF4D5E4A),
secondary: secondaryTerracotta,
secondaryContainer: Color(0xFF7D6359),
tertiary: lavenderMist,
tertiaryContainer: Color(0xFF6B6474),
surface: darkSurface,
surfaceContainerHighest: darkSurfaceVariant,
error: accentError,
onPrimary: Colors.white,
onSecondary: Colors.white,
onSurface: darkTextPrimary,
onError: Colors.white,
outline: darkBorder,
shadow: Color(0x33000000),
),
appBarTheme: const AppBarTheme(
backgroundColor: darkSurface,
foregroundColor: darkTextPrimary,
elevation: 0,
scrolledUnderElevation: 1,
shadowColor: Color(0x33000000),
titleTextStyle: TextStyle(
color: darkTextPrimary,
fontSize: 20,
fontWeight: FontWeight.w600,
),
),
elevatedButtonTheme: ElevatedButtonThemeData(
style: ElevatedButton.styleFrom(
backgroundColor: primarySage,
foregroundColor: Colors.white,
elevation: 3,
shadowColor: const Color(0x33000000),
shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(8)),
padding: const EdgeInsets.symmetric(horizontal: 20, vertical: 12),
textStyle: const TextStyle(fontSize: 14, fontWeight: FontWeight.w600),
),
),
textButtonTheme: TextButtonThemeData(
style: TextButton.styleFrom(
foregroundColor: primarySage,
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(12),
),
padding: const EdgeInsets.symmetric(horizontal: 20, vertical: 12),
textStyle: const TextStyle(
fontSize: 14,
fontWeight: FontWeight.w500,
letterSpacing: 0.25,
),
),
),
inputDecorationTheme: InputDecorationTheme(
filled: true,
fillColor: darkSurfaceVariant,
border: OutlineInputBorder(
borderRadius: BorderRadius.circular(8),
borderSide: const BorderSide(color: darkBorder),
),
enabledBorder: OutlineInputBorder(
borderRadius: BorderRadius.circular(8),
borderSide: const BorderSide(color: darkBorder),
),
focusedBorder: OutlineInputBorder(
borderRadius: BorderRadius.circular(8),
borderSide: const BorderSide(color: primarySage, width: 2),
),
errorBorder: OutlineInputBorder(
borderRadius: BorderRadius.circular(8),
borderSide: const BorderSide(color: accentError),
),
contentPadding: const EdgeInsets.symmetric(
horizontal: 16,
vertical: 12,
),
hintStyle: const TextStyle(color: darkTextSecondary),
labelStyle: const TextStyle(color: darkTextSecondary),
),
dividerTheme: const DividerThemeData(
color: darkDivider,
thickness: 1,
space: 1,
),
);
}