createGBElevatedButtonTheme function
ElevatedButtonThemeData
createGBElevatedButtonTheme({
- required Color accentColor,
- required Color backgroundDisabled,
- required Color textWhite,
- BorderRadiusGeometry? buttonsRadius,
- ElevatedButtonThemeData? customTheme,
Creates default ElevatedButtonThemeData for GB UI Kit buttons.
Implementation
ElevatedButtonThemeData createGBElevatedButtonTheme({
required Color accentColor,
required Color backgroundDisabled,
required Color textWhite,
BorderRadiusGeometry? buttonsRadius,
ElevatedButtonThemeData? customTheme,
}) {
final defaultStyle = ButtonStyle(
padding: const WidgetStatePropertyAll<EdgeInsets>(EdgeInsets.all(14)),
minimumSize: const WidgetStatePropertyAll<Size>(Size(18, 18)),
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;
}),
elevation: const WidgetStatePropertyAll(0),
shape: WidgetStatePropertyAll(
RoundedRectangleBorder(
borderRadius: buttonsRadius ?? BorderRadius.zero,
),
),
);
return ElevatedButtonThemeData(
style: defaultStyle.merge(customTheme?.style),
);
}