Implementation
static final ThemeData lightTheme = ThemeData(
useMaterial3: true,
brightness: Brightness.light,
colorScheme: ColorScheme.light(
primary: BasicAppColors.primary,
onPrimary: BasicAppColors.white,
onSurface: BasicAppColors.black,
background: BasicAppColors.bgSecondaryThemeLight,
onBackground: BasicAppColors.bgPrimaryThemeLight,
error: BasicAppColors.red,
),
scaffoldBackgroundColor: BasicAppColors.bgPrimaryThemeLight,
primaryColor: BasicAppColors.primary,
primaryColorDark: BasicAppColors.primaryDark,
primaryColorLight: BasicAppColors.primaryLight,
hoverColor: BasicAppColors.primaryOpacity01,
splashColor: BasicAppColors.primaryOpacity01,
highlightColor: BasicAppColors.primaryOpacity01,
dividerColor: Colors.transparent,
fontFamily: BasicFonts.defaultFont,
appBarTheme: AppBarTheme(
backgroundColor: BasicAppColors.white,
iconTheme: const IconThemeData(color: BasicAppColors.black),
systemOverlayStyle: const SystemUiOverlayStyle(statusBarIconBrightness: Brightness.dark),
titleTextStyle: BasicTextStyles.titleLarge.copyWith(color: BasicAppColors.white),
),
textSelectionTheme: const TextSelectionThemeData(
cursorColor: BasicAppColors.black,
),
inputDecorationTheme: InputDecorationTheme(
filled: true,
isDense: true,
fillColor: BasicAppColors.white,
suffixIconColor: BasicAppColors.black,
contentPadding: EdgeInsets.symmetric(
horizontal: BasicPaddings.p8,
vertical: BasicPaddings.p12,
),
// contentPadding: EdgeInsets.zero,
enabledBorder: OutlineInputBorder(
borderRadius: BasicCorners.mainCornerBorder,
borderSide: BorderSide(
color: BasicAppColors.greyOpacity04,
width: BasicBorders.thin,
),
),
disabledBorder: OutlineInputBorder(
borderRadius: BasicCorners.mainCornerBorder,
borderSide: BorderSide(
color: BasicAppColors.greyOpacity04,
width: BasicBorders.thin,
),
),
focusedBorder: OutlineInputBorder(
borderRadius: BasicCorners.mainCornerBorder,
borderSide: BorderSide(
color: BasicAppColors.primary,
width: BasicBorders.thin,
),
),
errorBorder: OutlineInputBorder(
borderRadius: BasicCorners.mainCornerBorder,
borderSide: const BorderSide(
color: BasicAppColors.red,
width: BasicBorders.thin,
),
),
focusedErrorBorder: OutlineInputBorder(
borderRadius: BasicCorners.mainCornerBorder,
borderSide: const BorderSide(
color: BasicAppColors.red,
width: BasicBorders.thin,
),
),
floatingLabelStyle: BasicTextStyles.label.copyWith(color: BasicAppColors.primary),
labelStyle: BasicTextStyles.label.copyWith(color: BasicAppColors.grey),
errorStyle: BasicTextStyles.label.copyWith(color: BasicAppColors.red),
),
cardTheme: CardTheme(color: BasicAppColors.cardThemeLight),
cardColor: BasicAppColors.cardThemeLight,
bottomSheetTheme: BottomSheetThemeData(backgroundColor: BasicAppColors.bgPrimaryThemeLight),
iconTheme: const IconThemeData(color: BasicAppColors.black),
textTheme: TextTheme(
titleMedium: BasicTextStyles.body.copyWith(color: BasicAppColors.black),
),
visualDensity: VisualDensity.adaptivePlatformDensity,
checkboxTheme: CheckboxThemeData(
fillColor: MaterialStateProperty.all(BasicAppColors.primary),
checkColor: MaterialStateProperty.all(BasicAppColors.primary),
side: BorderSide(width: BasicBorders.med, color: BasicAppColors.primary),
splashRadius: 0,
),
elevatedButtonTheme: ElevatedButtonThemeData(
style: ButtonStyle(
backgroundColor: MaterialStateProperty.all(BasicAppColors.bgSecondaryThemeLight),
foregroundColor: MaterialStateProperty.all(BasicAppColors.black),
shape: MaterialStateProperty.all(
RoundedRectangleBorder(
borderRadius: BasicCorners.mainCornerBorder,
),
),
),
),
popupMenuTheme: PopupMenuThemeData(
color: BasicAppColors.bgSecondaryThemeLight,
elevation: 0,
shape: RoundedRectangleBorder(
borderRadius: BasicCorners.mainCornerBorder,
side: BorderSide(color: BasicAppColors.greyOpacity02, width: BasicBorders.thin),
),
),
menuTheme: MenuThemeData(
style: MenuStyle(
backgroundColor: MaterialStateProperty.all(BasicAppColors.bgSecondaryThemeLight),
surfaceTintColor: MaterialStateProperty.all(BasicAppColors.bgSecondaryThemeLight),
),
),
dialogTheme: DialogTheme(
shape: RoundedRectangleBorder(
borderRadius: BasicCorners.mainCornerBorder,
side: BorderSide(color: BasicAppColors.greyOpacity01, width: BasicBorders.thin),
),
),
pageTransitionsTheme: const PageTransitionsTheme(
builders: <TargetPlatform, PageTransitionsBuilder>{
TargetPlatform.android: FadeUpwardsPageTransitionsBuilder(),
TargetPlatform.iOS: FadeUpwardsPageTransitionsBuilder(),
TargetPlatform.linux: FadeUpwardsPageTransitionsBuilder(),
TargetPlatform.macOS: FadeUpwardsPageTransitionsBuilder(),
TargetPlatform.windows: FadeUpwardsPageTransitionsBuilder(),
TargetPlatform.fuchsia: FadeUpwardsPageTransitionsBuilder(),
},
),
);