@icon-prefix-cls: ~'@{vts-prefix}-icon';

.iconfont-mixin() {
  display: inline-block;
  color: @icon-color;
  font-style: normal;
  line-height: 0;
  text-align: center;
  text-transform: none;
  vertical-align: -0.125em; // for SVG icon, see https://blog.prototypr.io/align-svg-icons-to-text-and-say-goodbye-to-font-icons-d44b3d7b26b4
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;

  &.@{icon-prefix-cls}-type {
    font-size: 1em;
    height: 1em;
    width: 1em;

    .custom-size(@type, @extra) {
      &-@{type} {
        font-size: calc(1em + @extra);
        height: 1em;
        width: calc(1em + @extra);
        margin-right: -@extra;
        margin-left: -@extra;
        vertical-align: -@extra;
      }
    }

    .custom-size(antd, 4px);
  }

  >* {
    line-height: 1;
  }

  svg {
    display: inline-block;
  }

  &::before {
    display: none; // dont display old icon.
  }

  & &-icon {
    display: block;
  }
}