lightTheme top-level property

ThemeData lightTheme
final

Implementation

final ThemeData lightTheme = ThemeData(
  brightness: Brightness.light,
  primaryColor: AppColors.lightPrimary,
  primaryColorDark: AppColors.lightPrimaryColorDark,
  // scaffoldBackgroundColor: Colors.white,
  scaffoldBackgroundColor: AppColors.lightScaffoldBackgroundColor,
  canvasColor: AppColors.lightSurface,
  datePickerTheme: const DatePickerThemeData(
    backgroundColor: AppColors.lightSurface,
    /* // todayBorder: const BorderSide(color: Colors.blue, width: 1),
      todayBorder: WidgetStateBorderSide.resolveWith((states) {
        if (states.contains(WidgetState.selected)) {
          return BorderSide.none; // No border when today is selected
        }
        return const BorderSide(color: AppColors.blue, width: 1); // Show border when another day is selected
      }),
      todayBackgroundColor: MaterialStateProperty.resolveWith((states) {
        if (states.contains(MaterialState.selected)) {
          return AppColors.blue; // Selected today background color
        }
        return Colors.transparent; // Default for today
      }),
      todayForegroundColor: const MaterialStatePropertyAll(Colors.blue),
      dayBackgroundColor: MaterialStateProperty.resolveWith((states) {
        if (states.contains(MaterialState.selected)) {
          return AppColors.blue;
        }
        return Colors.transparent;
      })*/
  ),
  chipTheme: const ChipThemeData(
      shape: RoundedRectangleBorder(
        side: BorderSide(
          color: Colors.transparent,
          width: 0,
        ),
        borderRadius: BorderRadius.all(RadiusUtils.extraLargeRadius),
      ),
      backgroundColor: AppColors.blue,
      deleteIconColor: Colors.white),
  drawerTheme: const DrawerThemeData(
    surfaceTintColor: AppColors.lightDrawerBackgroundColor,
    shape: RoundedRectangleBorder(
      borderRadius: BorderRadius.zero,
    ),
    // backgroundColor: AppColors.lightDrawerBackgroundColor,
    backgroundColor: Colors.white,
  ),
  tabBarTheme: TabBarThemeData(
    indicatorColor: AppColors.blue,
    unselectedLabelStyle: TextStyles.tabStyle(textColor: Colors.grey),
    labelStyle: TextStyles.tabStyle(textColor: Colors.black),
  ),
  appBarTheme: AppBarTheme(
    color: AppColors.lightAppBarBackground,
    elevation: 2.0,
    shadowColor: Colors.black,
    iconTheme: const IconThemeData(color: AppColors.lightIconThemeColor),
    titleTextStyle: TextStyle(
        color: AppColors.lightTitleTextColor, fontSize: FontSizes.extraLarge),
  ),
  hoverColor: Colors.black12,
  popupMenuTheme: PopupMenuThemeData(
      textStyle: TextStyle(
        fontSize: FontSizes.medium, // Example font size
      ),
      color: Colors.white
  ),
  textTheme: TextTheme(
    bodyLarge: const TextStyle(color: Colors.black),
    bodyMedium: const TextStyle(color: Colors.black54),
    titleLarge: const TextStyle(color: Colors.black),
    labelLarge: TextStyle(fontSize: FontSizes.large),
    labelMedium: TextStyle(fontSize: FontSizes.medium),
    labelSmall: TextStyle(fontSize: FontSizes.normal),
  ),
  buttonTheme: const ButtonThemeData(
    buttonColor: AppColors.lightButtonColor,
  ),
  elevatedButtonTheme: ElevatedButtonThemeData(
      style: ElevatedButton.styleFrom(
    backgroundColor: Colors.black,
    textStyle: const TextStyle(color: Colors.white),
    shape: RoundedRectangleBorder(
      borderRadius: BorderRadius.circular(8), // <-- Radius
    ),
  )),
  textButtonTheme: TextButtonThemeData(
    style: TextButton.styleFrom(
      foregroundColor: AppColors.lightButtonColor,
      textStyle: const TextStyle(color: Colors.white),
    ),
  ),
  progressIndicatorTheme:
      const ProgressIndicatorThemeData(color: AppColors.lightButtonColor),
  bottomSheetTheme: const BottomSheetThemeData(
    backgroundColor: AppColors.lightPrimary,
    shape: RoundedRectangleBorder(
      borderRadius: BorderRadius.only(
        topLeft: Radius.circular(20),
        topRight: Radius.circular(20),
      ),
    ),
  ),
  cardTheme: CardThemeData(
    color: AppColors.lightCardColor,
    elevation: 0,
    shape: RoundedRectangleBorder(
      borderRadius: BorderRadius.circular(8.0),
    ),
  ),
  textSelectionTheme: const TextSelectionThemeData(cursorColor: Colors.black),
  inputDecorationTheme: InputDecorationTheme(
      enabledBorder: OutlineInputBorder(
          borderRadius: BorderRadius.circular(8.0),
          borderSide: const BorderSide(color: Colors.black)),
      focusedBorder: OutlineInputBorder(
          borderRadius: BorderRadius.circular(8.0),
          borderSide: const BorderSide(color: Colors.black))),
  checkboxTheme: CheckboxThemeData(
      side: WidgetStateBorderSide.resolveWith((states) {
        if (states.contains(WidgetState.selected)) {
          return const BorderSide(width: 0, color: Colors.transparent);
        }
        return const BorderSide(width: 1, color: Colors.black);
      }),
      checkColor: WidgetStateProperty.all(Colors.white),
      overlayColor: WidgetStateProperty.all(Colors.transparent),
      fillColor: WidgetStateProperty.resolveWith((states) {
        if (states.contains(WidgetState.disabled)) {
          return Colors.grey;
        }
        if (states.contains(WidgetState.selected)) {
          return Colors.blue;
        }
        return Colors.transparent;
      })),
  radioTheme:
      RadioThemeData(fillColor: WidgetStateProperty.resolveWith((states) {
    // active
    if (states.contains(WidgetState.selected)) {
      return Colors.blue;
    }
    // inactive
    return Colors.grey;
  })),
);