darkThemeData static method
ThemeData
darkThemeData(
{ - dynamic data,
- required bool isTablet,
})
Implementation
static ThemeData darkThemeData({dynamic data, required bool isTablet}) {
double buttonSize = selectSize(isTablet, buttonLargeSize, buttonMediumSize);
double checkboxSize = selectSize(isTablet, checkboxLargeSize, checkboxMediumSize);
double radioSize = selectSize(isTablet, radioLargeSize, radioMediumSize);
return ThemeData(
appBarTheme: AppBarTheme(
elevation: 0,
backgroundColor: Colors.black,
iconTheme: const IconThemeData(color: AppColors.primary),
titleTextStyle: _appBarTextStyle(AppColors.primary),
),
textTheme: _textTheme(isDark: true, isTablet: isTablet),
iconTheme: const IconThemeData(color: AppColors.primary),
buttonTheme: const ButtonThemeData(
buttonColor: AppColors.primary,
textTheme: ButtonTextTheme.primary,
minWidth: buttonMediumSize,
height: buttonMediumSize,
),
checkboxTheme: CheckboxThemeData(
fillColor: MaterialStateProperty.resolveWith((states) {
if (states.contains(MaterialState.selected)) {
return AppColors.primary;
}
return Colors.grey;
}),
checkColor: MaterialStateProperty.all(Colors.black),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(checkboxMediumSize / 2),
),
),
radioTheme: RadioThemeData(
fillColor: MaterialStateProperty.resolveWith((states) {
if (states.contains(MaterialState.selected)) {
return AppColors.primary;
}
return Colors.grey;
}),
splashRadius: radioMediumSize / 2, // Ensure adequate splash radius for accessibility
),
colorScheme: _colorScheme(data, Brightness.dark),
bottomNavigationBarTheme: const BottomNavigationBarThemeData(
backgroundColor: Colors.black,
selectedItemColor: AppColors.primary,
unselectedItemColor: Colors.grey,
),
drawerTheme: const DrawerThemeData(
backgroundColor: Colors.black,
),
elevatedButtonTheme: ElevatedButtonThemeData(
style: _elevatedButtonStyle(buttonSize, data, Brightness.dark),
),
).copyWith(
elevatedButtonTheme: ElevatedButtonThemeData(style: _elevatedButtonStyle(buttonSize, data, Brightness.dark)),
checkboxTheme: _checkboxTheme(checkboxSize, data),
radioTheme: _radioTheme(radioSize, data),
);
}