loading() {
  position relative
  display inline-block
  width 1em
  color transparent
  cursor default
  transition all 0 linear, opacity $default-duration $default-easing

  &::before
  &::after {
    position absolute
    top 50%
    left 50%
    width $loader-size
    height $loader-size
    border 0.2em solid rgba(#000, 0.15)
    border-radius 500rem
    margin $loader-margin
    content ""
  }

  &::after {
    border-color #fff transparent transparent
    animation spin 0.6s linear infinite
  }
}

size($size = "middle") {
  if $size == "mini" {
    font-size rigor(1 - 1.5 / 7) rem
  }
  else if $size == "small" {
    font-size rigor(1 - 0.75 / 7) rem
  }
  else if $size == "large" {
    font-size rigor(1 + 2 / 7) rem
  }
  else if $size == "massive" {
    font-size rigor(1 + 4 / 7) rem
  }
  else {
    font-size 1rem
  }
}

rigor(float, precision = 4) {
  round(float, precision)
}
