.awards {
  display: flex;
  flex-wrap: wrap;

  .emoji-icon {
    width: 20px;
    height: 20px;
  }
}

.emoji-menu {
  display: none;
  position: absolute;
  top: 0;
  margin-top: 3px;
  padding: $gl-padding;
  z-index: $zindex-dropdown-menu;
  width: $award-emoji-width;
  font-size: 14px;
  background-color: $white;
  border: 1px solid $border-white-light;
  border-radius: $border-radius-base;
  box-shadow: 0 6px 12px $award-emoji-menu-shadow;
  pointer-events: none;
  opacity: 0;
  transform: scale(0.2);
  transform-origin: 0 -45px;
  transition: 0.3s cubic-bezier(0.67, 0.06, 0.19, 1.44);
  transition-property: transform, opacity;

  &.is-rendered {
    display: block;
  }

  &.is-aligned-right {
    transform-origin: 100% -45px;
  }

  &.is-visible {
    pointer-events: all;
    opacity: 1;
    transform: scale(1);
  }

  .emoji-menu-content {
    height: 300px;
    overflow-y: scroll;
  }

  .disabled {
    cursor: default;
    opacity: 0.5;

    &:hover {
      transform: none;
    }
  }

  @include media-breakpoint-down(xs) {
    width: $award-emoji-width-xs;
  }
}

.emoji-search {
  background-image: url('data:image/png;base64,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');
  background-repeat: no-repeat;
  background-position: right 5px center;
  background-size: 16px;
}

.emoji-menu-list {
  margin-bottom: 0;
  padding-left: 0;
  list-style: none;
}

.emoji-menu-list-item {
  float: left;
  padding: 3px;
  margin-left: 1px;
  margin-right: 1px;
}

.emoji-menu-btn {
  display: block;
  cursor: pointer;
  width: 30px;
  height: 30px;
  padding: 0;
  background: none;
  border: 0;
  border-radius: $border-radius-base;
  transition: transform 0.15s cubic-bezier(0.3, 0, 0.2, 2);

  &:hover {
    background-color: transparent;
    outline: 0;
    transform: scale(1.3);
  }

  &:focus,
  &:active {
    outline: 0;
  }

  .emoji-icon {
    display: inline-block;
    position: relative;
    top: 3px;
  }

  > gl-emoji {
    line-height: 1.5;
  }
}

.award-menu-holder {
  display: inline-block;

  .tooltip {
    white-space: nowrap;
  }
}

.gl-button.btn.award-control {
  margin: 4px 8px 4px 0;

  &.disabled {
    cursor: default;

    &:hover,
    &:focus,
    &:active {
      background-color: $white;
      border-color: $border-color;
      box-shadow: none;
    }
  }

  &.active,
  &:hover,
  &:active,
  &.is-active {
    .award-control-icon-neutral {
      opacity: 0;
    }

    .award-control-icon-positive {
      opacity: 1;
      transform: scale(1.15);
    }
  }

  &.active,
  &.is-active,
  &:active {
    background-color: $blue-50;
    border-color: $blue-200;
    box-shadow: inset 0 0 2px $blue-200;
  }

  &.is-active {
    .award-control-icon-positive {
      opacity: 0;
      transform: scale(1);
    }

    .award-control-icon-super-positive {
      opacity: 1;
      transform: scale(1);
    }
  }

  &.user-authored {
    cursor: default;
    background-color: $gray-light;
    border-color: $gray-100;
    color: $gl-text-color-disabled;

    gl-emoji {
      opacity: 0.4;
      filter: grayscale(100%);
    }
  }

  &.btn {
    &:focus {
      outline: 0;
    }
  }

  &.is-loading {
    .award-control-icon-normal,
    .emoji-icon {
      display: none;
    }

    .award-control-icon-loading {
      display: block;
    }
  }

  .icon,
  gl-emoji,
  .award-control-icon {
    vertical-align: middle;
    line-height: 0.5em;
  }

  .award-control-icon-loading {
    display: none;
  }

  .award-control-icon {
    color: $border-gray-normal;

    svg {
      height: $default-icon-size;
      width: $default-icon-size;
      border-radius: 50%;
      fill: $gray-500;
    }
  }

  .award-control-icon-positive,
  .award-control-icon-super-positive {
    @include transition(opacity, transform);
    opacity: 0;
    position: absolute;

    path {
      fill: $award-emoji-positive-add-lines;
    }
  }

  .award-control-text {
    vertical-align: middle;
  }
}


// The following encompasses the "add reaction" button redesign to
// align properly within GitLab UI's gl-button. The implementation
// above will be deprecated once all instances of "award emoji" are
// migrated to Vue.

.gl-button .award-emoji-block gl-emoji {
  margin-top: -1px;
  margin-bottom: -1px;
}

.add-reaction-button {
  position: relative;

  // This forces the height and width of the inner content to match
  // other gl-buttons despite all child elements being set to
  // `position:absolute`


  .reaction-control-icon {
    .gl-icon {
      height: $default-icon-size;
      width: $default-icon-size;
    }
  }

  .reaction-control-icon-neutral {
    display: flex;
  }

  .reaction-control-icon-positive,
  .reaction-control-icon-super-positive {
    display: none;
  }

  &:hover,
  &.active,
  &:active,
  &.is-active {
    .reaction-control-icon-neutral {
      display: none;
    }
  }

  &:hover {
    .reaction-control-icon-positive {
      display: flex;
    }
  }

  &.active,
  &:active,
  &.is-active {
    .reaction-control-icon-positive {
      display: none;
    }

    .reaction-control-icon-super-positive {
      display: flex;
    }
  }

  &.disabled {
    cursor: default;

    &:hover,
    &:focus,
    &:active {
      .reaction-control-icon .gl-icon {
        color: inherit;
        transform: scale(1);
      }

      .reaction-control-icon-neutral {
        display: flex;
      }

      .reaction-control-icon-positive,
      .reaction-control-icon-super-positive {
        display: none;
      }
    }
  }
}