createGBOutlinedButtonTheme function
OutlinedButtonThemeData
createGBOutlinedButtonTheme({
- required Color secondary,
- required Color textBlack,
- required Color textDisabled,
- required Color backgroundDisabled,
- BorderRadiusGeometry? borderRadius,
- OutlinedButtonThemeData? customTheme,
Creates default OutlinedButtonThemeData for GB UI Kit buttons.
Implementation
OutlinedButtonThemeData createGBOutlinedButtonTheme({
required Color secondary,
required Color textBlack,
required Color textDisabled,
required Color backgroundDisabled,
BorderRadiusGeometry? borderRadius,
OutlinedButtonThemeData? customTheme,
}) {
final defaultStyle = ButtonStyle(
minimumSize: const WidgetStatePropertyAll(Size(80, 48)),
side: WidgetStateProperty.resolveWith<BorderSide>((states) {
if (states.contains(WidgetState.disabled)) {
return BorderSide(
color: backgroundDisabled,
style: BorderStyle.solid,
width: 1.0,
);
}
return BorderSide(
color: secondary,
style: BorderStyle.solid,
width: 1.0,
);
}),
foregroundColor: WidgetStateProperty.resolveWith<Color>((states) {
if (states.contains(WidgetState.disabled)) {
return textDisabled;
}
return textBlack;
}),
padding: const WidgetStatePropertyAll(EdgeInsets.all(14)),
shape: WidgetStatePropertyAll(
RoundedRectangleBorder(
borderRadius: borderRadius ?? BorderRadius.zero,
),
),
);
return OutlinedButtonThemeData(
style: defaultStyle.merge(customTheme?.style),
);
}