@include b(tabs) {
  @include define(font-size, var(--za-font-size-md));
  @include define(color, var(--za-color-text));
  @include define(color-disabled, var(--za-color-text-disabled));
  @include define(height, 45px);
  @include define(active-color, var(--za-theme-primary));
  @include define(active-text-color, var(--za-color-text));
  @include define(active-line-height, 2px);
  @include define(padding-horizontal, var(--za-padding-h-lg));
  @include define(padding-vertical, var(--za-padding-v-md));

  @include e(header) {
    position: relative;
    overflow: hidden;
  }

  @include e(tablist) {
    position: relative;
    margin: 0;
    padding: 0;
    list-style-type: none;
  }

  @include e(panel) {
    display: none;
    position: relative;
    transition: height 0.3s;
    height: 100%;

    @include m(active) {
      display: block;
    }
  }

  @include e(tab) {
    flex: 1;
    text-align: center;
    color: var(--color);
    font-size: var(--font-size);
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    cursor: pointer;

    @include m(disabled) {
      color: var(--color-disabled);
      cursor: not-allowed;
    }

    @include m(active) {
      color: var(--active-text-color);
    }
  }

  @include e(line) {
    position: absolute;
    transition: transform 0.3s ease-out;
    background-color: var(--active-color);

    &__inner {
      display: block;
      margin: auto;
      height: 100%;
      background-color: var(--active-color);
    }
  }

  @include m(scroll) {
    @include e(tablist) {
      &::-webkit-scrollbar {
        display: none;
      }
    }
  }

  // TODO: direction='horizontal' 暂作兼容
  @include m(top, bottom, horizontal) {
    display: flex;
    flex-direction: column;

    @include e(header) {
      width: 100%;
    }

    @include e(tablist) {
      display: flex;
      height: var(--height);
      line-height: var(--height);
    }

    @include e(line) {
      height: var(--active-line-height);
      left: 0;
    }

    @include m(scroll) {
      @include e(tablist) {
        overflow-x: auto;
      }

      @include e(tab) {
        overflow: visible;
        padding: 0 var(--padding-horizontal);
      }
    }
  }

  // TODO: direction='vertical' 暂作兼容
  @include m(left, right, vertical) {
    display: flex;
    flex-direction: row;

    @include e(tablist) {
      height: 100%;
    }

    @include e(tab) {
      text-align: center;
      padding: var(--padding-vertical) var(--padding-horizontal);
    }

    @include e(line) {
      width: var(--active-line-height);
      top: 0;
    }

    @include e(body) {
      flex: 1;
      position: relative;
    }

    @include m(scroll) {
      @include e(tablist) {
        overflow-y: auto;
      }
    }
  }

  @include m(right, bottom) {
    @include e(header) {
      order: 1;
    }
  }

  // TODO: direction='vertical' 暂作兼容
  @include m(left, vertical) {
    @include e(header) {
      @include onepx(right);
    }

    @include e(line) {
      right: 0;
    }
  }

  @include m(right) {
    @include e(header) {
      @include onepx(left);
    }

    @include e(line) {
      left: 0;
    }
  }

  // TODO: direction='horizontal' 暂作兼容
  @include m(top, horizontal) {
    @include e(header) {
      @include onepx(bottom);
    }

    @include e(line) {
      bottom: 0;
    }
  }

  @include m(bottom) {
    @include e(header) {
      @include onepx(top);
    }

    @include e(line) {
      top: 0;
    }
  }
}
