@prefix-block: e('@{prefix}-back-top');

.back-top-attr(@attr, @modify, @isTarget: false, @target: '') {
  @value: if((boolean(@isTarget)), e('back-top-@{target}-@{attr}-@{modify}'), e('back-top-@{attr}-@{modify}'));

  @{attr}: @@value;
}

.back-top-bg-color(@theme, @isHover) {
  @bg-color: if((boolean(@isHover)), e('back-top-bg-color-@{theme}-hover'), e('back-top-bg-color-@{theme}'));

  background-color: @@bg-color;
}

.back-top-theme(@theme) {
  .back-top-attr(border-color, @theme);
  .back-top-bg-color(@theme, false);

  &:hover {
    .back-top-attr(border-color, '@{theme}-hover');
    .back-top-bg-color(@theme, true);
  }
  .@{prefix-block}__text {
    .back-top-attr(color, @theme, true, 'text');
  }
  .@{prefix-block}__icon {
    .back-top-attr(color, @theme, true, 'icon');
  }
}

.back-top-size(@size) {
  .back-top-attr(width, @size);
  .back-top-attr(height, @size);
  .@{prefix-block}__text {
    .back-top-attr(display, @size, true, 'text');
  }
}

.back-top-shape(@shape) {
  .back-top-attr(border-radius, @shape);
}
