@import "../../theme.scss";

.iconButton-root {
  all: unset;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  position: relative;
  box-sizing: border-box;
  background-color: transparent;
  outline: 0px;
  border: 0px;
  margin: 0px;
  cursor: pointer;
  user-select: none;
  vertical-align: middle;
  appearance: none;
  text-decoration: none;
  text-align: center;
  flex: 0 0 auto;
  padding: 8px;
  border-radius: 50%;
  overflow: visible;
  transition: background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;
  width: max-content;

  &.iconButton-sm {
    padding: 5px;
    font-size: 1.25rem;
  }

  &.iconButton-md {
    padding: 8px;
    font-size: 1.5rem;
  }

  &.iconButton-lg {
    padding: 12px;
    font-size: 1.75rem;
  }

  &.iconButton-colorDefault {
    color: rgba(0, 0, 0, 0.54);

    &:hover,
    &:active,
    &:focus {
      background-color: rgba(0, 0, 0, 0.04);
    }
  }

  &.iconButton-colorPrimary {
    color: $primary;

    &:hover,
    &:active,
    &:focus {
      background-color: rgba($primary, 0.04);
    }
  }

  &.iconButton-colorSecondary {
    color: $secondary;

    &:hover,
    &:active,
    &:focus {
      background-color: rgba($secondary, 0.04);
    }
  }

  &:disabled {
    background-color: transparent;
    color: rgba(0, 0, 0, 0.26);
    pointer-events: none;
    cursor: default;
  }

  svg {
    user-select: none;
    width: 1em;
    height: 1em;
    display: inline-block;
    fill: currentColor;
    flex-shrink: 0;
    transition: fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;
    font-size: inherit;
  }
}
