@import './var.less';

:root {
  --van-nav-bar-height: @nav-bar-height;
  --van-nav-bar-background-color: @nav-bar-background-color;
  --van-nav-bar-arrow-size: @nav-bar-arrow-size;
  --van-nav-bar-icon-color: @nav-bar-icon-color;
  --van-nav-bar-left-text-color: @nav-bar-left-text-color;
  --van-nav-bar-right-text-color: @nav-bar-right-text-color;
  --van-nav-bar-title-font-size: @nav-bar-title-font-size;
  --van-nav-bar-title-text-color: @nav-bar-title-text-color;
  --van-nav-bar-title-font-weight: @nav-bar-title-font-weight;
  --van-nav-bar-title-line-height: @nav-bar-title-line-height;
  --van-nav-bar-subtitle-font-size: @nav-bar-subtitle-font-size;
  --van-nav-bar-subtitle-line-height: @nav-bar-subtitle-line-height;
  --van-nav-bar-subtitle-text-color: @nav-bar-subtitle-text-color;
  --van-nav-bar-title-gap: @nav-bar-title-gap;
  --van-nav-bar-title-arrow-size: @nav-bar-title-arrow-size;
  --van-nav-bar-side-width: @nav-bar-side-width;
  --van-nav-bar-z-index: @nav-bar-z-index;
}

.van-nav-bar {
  position: relative;
  z-index: var(--van-nav-bar-z-index);
  line-height: var(--van-line-height-lg);
  text-align: center;
  background: var(--van-nav-bar-background-color);
  user-select: none;

  &--fixed {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
  }

  &--safe-area-inset-top {
    padding-top: constant(safe-area-inset-top);
    padding-top: env(safe-area-inset-top);
  }

  .van-icon {
    color: var(--van-nav-bar-icon-color);
  }

  &__content {
    position: relative;
    display: flex;
    align-items: center;
    height: var(--van-nav-bar-height);
  }

  &__arrow {
    margin-right: var(--van-padding-base);
    font-size: var(--van-nav-bar-arrow-size);
  }

  &__title {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-width: 0;
    max-width: calc(100% - (var(--van-nav-bar-side-width) * 2));
    height: 100%;
    margin: 0 auto;
    color: var(--van-nav-bar-title-text-color);
    font-weight: var(--van-nav-bar-title-font-weight);
    font-size: var(--van-nav-bar-title-font-size);
    line-height: var(--van-nav-bar-title-line-height);

    &--dropdown {
      cursor: pointer;
    }
  }

  &__title-content {
    display: flex;
    gap: var(--van-nav-bar-title-gap);
    align-items: center;
    max-width: 100%;
  }

  &__title-arrow {
    flex: none;
    font-size: var(--van-nav-bar-title-arrow-size);
    transition: transform var(--van-animation-duration-fast);

    &--active {
      transform: rotate(180deg);
    }
  }

  &__subtitle {
    width: 100%;
    color: var(--van-nav-bar-subtitle-text-color);
    font-weight: normal;
    font-size: var(--van-nav-bar-subtitle-font-size);
    line-height: var(--van-nav-bar-subtitle-line-height);
  }

  &__left,
  &__right {
    position: absolute;
    top: 0;
    bottom: 0;
    display: flex;
    align-items: center;
    min-width: var(--van-nav-bar-side-width);
    padding: 0 var(--van-padding-md);
    font-size: var(--van-font-size-md);
  }

  &__left {
    left: 0;
  }

  &__right {
    right: 0;
    justify-content: flex-end;
  }

  &__left--slot,
  &__right--slot {
    min-width: 0;
    padding: 0;
  }

  &__text {
    .van-nav-bar__left & {
      color: var(--van-nav-bar-left-text-color);
    }

    .van-nav-bar__right & {
      color: var(--van-nav-bar-right-text-color);
    }
  }

  &__right-popover-icon {
    font-size: 24px;
  }
}
