buildButtonStyle static method

ButtonStyle buildButtonStyle(
  1. BuildContext context, {
  2. required OudsButtonHierarchy hierarchy,
  3. required OudsButtonLayout layout,
  4. bool? border,
  5. OudsButtonControlState? buttonState,
})

Implementation

static ButtonStyle buildButtonStyle(
  BuildContext context, {
  required OudsButtonHierarchy hierarchy,
  required OudsButtonLayout layout,
  bool? border,
  OudsButtonControlState? buttonState,
}) {
  return ButtonStyle(
    backgroundColor: OudsButtonBackgroundModifier.resolveBackgroundColor(context, hierarchy, buttonState),
    foregroundColor: OudsButtonForegroundModifier.resolveForegroundColor(context, hierarchy, buttonState),
    splashFactory: NoSplash.splashFactory,
    overlayColor: WidgetStateProperty.all(Colors.transparent),
    textStyle: WidgetStateProperty.all<TextStyle>(
      TextStyle(
          fontSize: OudsTheme.of(context).fontTokens.sizeLabelLarge,
          fontWeight: OudsTheme.of(context).fontTokens.weightLabelStrong,
          letterSpacing: OudsTheme.of(context).fontTokens.letterSpacingLabelLarge,
          fontFamily: OudsTheme.of(context).fontFamily,
          package: OudsTheme.of(context).packageName),
    ),
    side: OudsButtonBorderModifier.resolveBorderColor(context, hierarchy, buttonState),
    shape: WidgetStateProperty.all<RoundedRectangleBorder>(
      RoundedRectangleBorder(
        borderRadius: OudsButtonBorderModifier.getBorderRadius(context),
      ),
    ),
    padding: WidgetStateProperty.all<EdgeInsetsGeometry>(
      OudsButtonPaddingModifier.getPadding(context, layout),
    ),
    minimumSize: WidgetStateProperty.all<Size>(
      Size(OudsTheme.of(context).componentsTokens(context).button.sizeMinWidth, OudsTheme.of(context).componentsTokens(context).button.sizeMinHeight),
    ),
    animationDuration: Duration.zero,
  );
}