VButtonStyle constructor
VButtonStyle({
- required VbuttonType type,
- required bool plain,
- required bool hairline,
- required VButtonShape shap,
- required VButtonSize size,
- required bool loading,
- Color? color,
Implementation
VButtonStyle({
required this.type,
required this.plain,
required this.hairline,
required this.shap,
required this.size,
required this.loading,
this.color,
}) {
switch (type) {
case VbuttonType.success:
_style = _ButtonStyle(
backgroundColor: plain ? VTheme.white : color ?? VTheme.successColor,
color: VTheme.white,
border: BorderSide(
width: hairline ? 0.5 : 1, color: color ?? VTheme.successColor),
);
break;
case VbuttonType.primary:
_style = _ButtonStyle(
backgroundColor: plain ? VTheme.white : color ?? VTheme.primaryColor,
color: VTheme.white,
border: BorderSide(
width: hairline ? 0.5 : 1, color: color ?? VTheme.primaryColor),
);
break;
case VbuttonType.info:
_style = _ButtonStyle(
backgroundColor: VTheme.white,
color: VTheme.gray8,
border: BorderSide(
width: hairline ? 0.5 : 1, color: color ?? VTheme.gray4),
);
break;
case VbuttonType.danger:
_style = _ButtonStyle(
backgroundColor: plain ? VTheme.white : color ?? VTheme.dangerColor,
color: VTheme.white,
border: BorderSide(
width: hairline ? 0.5 : 1, color: color ?? VTheme.dangerColor),
);
break;
case VbuttonType.warning:
_style = _ButtonStyle(
backgroundColor: plain ? VTheme.white : color ?? VTheme.warningColor,
color: VTheme.white,
border: BorderSide(
width: hairline ? 0.5 : 1, color: color ?? VTheme.warningColor),
);
break;
default:
}
switch (size) {
case VButtonSize.large:
_size = _ButtonSize(
fontSize: VTheme.fontSizeLg,
size: Size(VTheme.paddingLg * 6, VTheme.paddingLg * 3),
);
break;
case VButtonSize.normal:
_size = _ButtonSize(
fontSize: VTheme.fontSizeMd,
size: Size(VTheme.paddingMd * 6, VTheme.paddingMd * 3.5),
);
break;
case VButtonSize.small:
_size = _ButtonSize(
fontSize: VTheme.fontSizeSm,
size: Size(VTheme.paddingSm * 6, VTheme.paddingSm * 3.5),
);
break;
case VButtonSize.mini:
_size = _ButtonSize(
fontSize: VTheme.fontSizeXs,
padding: EdgeInsets.symmetric(horizontal: VTheme.paddingXs),
size: Size(VTheme.paddingXs * 6, VTheme.paddingXs * 3.5),
);
break;
}
}