VButtonStyle constructor

VButtonStyle({
  1. required VbuttonType type,
  2. required bool plain,
  3. required bool hairline,
  4. required VButtonShape shap,
  5. required VButtonSize size,
  6. required bool loading,
  7. 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;
  }
}