////
/// Core Tool : Reset
/// @group core
////

$underline-thickness: 0.0625em;

@mixin a-reset ($minimal: false) {
  text-decoration: var(--text-decoration);
  @if not $minimal {
    color: inherit;
  }
}

@mixin init-underline() {
  --underline-max-width: 100%;
  --underline-hover-width: 0;
  --underline-idle-width: var(--underline-max-width);
  --underline-x: calc(var(--underline-max-width) * 0);
  --underline-thickness: #{$underline-thickness};
}

@mixin enable-underline() {
  --underline-img: linear-gradient(0deg, currentColor, currentColor);
}

@mixin enable-underline-legacy() {
  [href] {
    text-decoration: underline;
  }
}

@mixin disable-underline() {
  --underline-img: none;
}

@mixin disable-underline-legacy() {
  [href] {
    text-decoration: none;
  }
}

@mixin link-underline() {
  background-image: var(--underline-img), var(--underline-img);
  background-position: var(--underline-x) 100%, var(--underline-x) calc(100% - var(--underline-thickness));
  background-repeat: no-repeat, no-repeat;
  transition: background-size 0s;
  background-size: var(--underline-hover-width) calc(var(--underline-thickness) * 2), var(--underline-idle-width) var(--underline-thickness);
}

@mixin link-underline-hover-only() {
  --underline-idle-width: 0;
}

@mixin hover-underline () {
  &:hover,
  &:active {
    --underline-hover-width: var(--underline-max-width);
  }
}

@mixin external-link() {
  @include icon-style(after);
  @include icon-size(sm, after);
  @include icon-image(external-link-line, after);
  @include icon-forced-color(linktext, true, after);
  @include after(var(--external-link-content)) {
    @include margin-left(1v);
  }
}

@mixin enable-external() {
  --external-link-content: '';
}

@mixin disable-external() {
  --external-link-content: none;
}

@mixin target-blank ($unify: false) {
  @if $unify and & {
    &[target="_blank"] {
      @content;
    }
  }
  @else {
    [target="_blank"] {
      @content;
    }
  }
}
