.mm-button-icon {
  --button-icon-size: var(--size, 24px);

  height: var(--button-icon-size);
  width: var(--button-icon-size);
  min-width: var(--button-icon-size); // fixes width for flexbox
  padding: 0;
  cursor: pointer;

  // ButtonIcon default states

  &:hover {
    background-color: var(--color-background-hover);
  }

  &:active {
    background-color: var(--color-background-pressed);
  }

  &--disabled,
  &:disabled {
    opacity: var(--opacity-disabled);
    cursor: not-allowed;

    &:hover,
    &:active {
      background-color: transparent;
    }
  }

  // ButtonIcon Sizes
  &--size-sm {
    --button-icon-size: 24px;
  }

  &--size-md {
    --button-icon-size: 28px;
  }

  &--size-lg {
    --button-icon-size: 32px;
  }
}

