ElevarmTertiaryNeutralButton.iconOnly constructor

ElevarmTertiaryNeutralButton.iconOnly({
  1. required IconData iconAssetName,
  2. double height = ElevarmButtonHeights.md,
  3. VoidCallback? onPressed,
  4. bool isDestructive = false,
  5. Key? key,
})

Creates ElevarmTertiaryNeutralButton with only an icon as content.

Implementation

factory ElevarmTertiaryNeutralButton.iconOnly({
  required IconData iconAssetName,
  double height = ElevarmButtonHeights.md,
  VoidCallback? onPressed,
  bool isDestructive = false,
  Key? key,
}) {
  return ElevarmTertiaryNeutralButton(
    key: key,
    height: height,
    onPressed: onPressed,
    isDestructive: isDestructive,
    contentPadding: ElevarmButtonIconOnlyPadding.fromButtonHeights(height),
    builder: (context, isFocused, isHovered) {
      Color textColor;
      if (!isDestructive) {
        if (!isHovered) {
          textColor = onPressed != null
              ? ElevarmColors.neutral500
              : ElevarmColors.neutral100;
        } else {
          textColor = ElevarmColors.neutral;
        }
      } else {
        if (!isHovered) {
          textColor = onPressed != null
              ? ElevarmColors.danger
              : ElevarmColors.danger300;
        } else {
          textColor = ElevarmColors.danger800;
        }
      }
      return ElevarmIcon(
        iconAssetName,
        color: textColor,
        size: ElevarmButtonIconSize.fromButtonHeights(height),
      );
    },
  );
}