foregroundColor method

Color foregroundColor(
  1. OptimusTokens tokens, {
  2. required bool isEnabled,
  3. required bool isPressed,
  4. required bool isHovered,
})

Implementation

Color foregroundColor(
  OptimusTokens tokens, {
  required bool isEnabled,
  required bool isPressed,
  required bool isHovered,
}) {
  switch (this) {
    case OptimusButtonVariant.primary:
    case OptimusButtonVariant.danger:
      if (!isEnabled) return tokens.textDisabled;

      return tokens.textStaticInverse;
    case OptimusButtonVariant.secondary:
      if (!isEnabled) return tokens.textDisabled;
      if (isPressed || isHovered) {
        return tokens.textStaticInverse;
      }

      return tokens.textInteractiveDefault;
    case OptimusButtonVariant.tertiary:
      if (!isEnabled) return tokens.textDisabled;

      return tokens.textStaticSecondary;
    case OptimusButtonVariant.ghost:
      if (!isEnabled) return tokens.textDisabled;

      return tokens.textStaticPrimary;
  }
}