getDefaultTheme static method

ContainedButtonThemeData getDefaultTheme({
  1. required Color accentColor,
  2. required Color backgroundDisabled,
  3. Color textWhite = Colors.white,
  4. required BorderRadius? buttonsRadius,
})

Implementation

static ContainedButtonThemeData getDefaultTheme({
  required Color accentColor,
  required Color backgroundDisabled,
  Color textWhite = Colors.white,
  required BorderRadius? buttonsRadius,
}) {
  ButtonStyle defaultButtonStyle = ButtonStyle(
    padding: WidgetStateProperty.all<EdgeInsets>(const EdgeInsets.all(14)),
    minimumSize: WidgetStateProperty.all<Size>(const Size(18, 18)),
    elevation: const WidgetStatePropertyAll(0),
    backgroundColor: WidgetStateProperty.resolveWith<Color>((states) {
      if (states.contains(WidgetState.disabled)) {
        return backgroundDisabled;
      }
      return accentColor;
    }),
    foregroundColor: WidgetStateProperty.resolveWith<Color>((states) {
      if (states.contains(WidgetState.disabled)) {
        return textWhite.withValues(alpha: 0.6);
      }
      return textWhite;
    }),
    shape: WidgetStateProperty.all(
      RoundedRectangleBorder(
        borderRadius: buttonsRadius ?? BorderRadius.zero,
      ),
    ),
  );
  return ContainedButtonThemeData(
    style: defaultButtonStyle,
    uppercase: true,
  );
}