ef582f85创建于 2024年11月14日历史提交
// 1、select 下拉框组件
.tiny-select.tiny-select {
  .tiny-input {
    // 输入框
    &.is-focus .tiny-input__inner {
      border-color: var(--te-common-border-default);
      color: var(--te-common-text-primary);
      font-size: var(--te-base-font-size-base);
    }
    //  下拉右侧箭头图标
    .tiny-select__caret {
      font-size: var(--te-base-font-size-1);
      color: var(--te-common-text-weaken);
    }
  }
  .tiny-select__tags {
    .tiny-tag {
      color: var(--te-common-text-weaken);
      background-color: var(--te-common-bg-tag); // 选择框

      .tiny-tag__close {
        color: var(--te-common-text-primary);
        &:hover {
          color: var(--te-common-text-primary);
        }
      }
    }
  }
}

.tiny-select-dropdown.tiny-select-dropdown {
  // 下拉新增列
  .tiny-select__top-create {
    margin: 8px 12px 4px 12px;
    > div {
      color: var(--te-common-text-emphasize);
      font-size: var(--te-base-font-size-1);
    }
  }
  // 下拉选项框
  .tiny-select-dropdown__item {
    padding: 0px 12px;
  }
  // 下拉选项框上下边距
  .tiny-popper {
    padding: 8px 0px;
  }
  // 带搜索的下拉
  .tiny-select-dropdown__search {
    margin: 0 12px 4px 12px;
  }
  // 选项框字体
  .tiny-option {
    // 选中状态
    &.selected {
      color: var(--te-common-text-emphasize);
      background-color: var(--te-common-bg-default);
      &:hover {
        background-color: var(--te-common-bg-container);
      }
    }
    color: var(--te-common-text-primary);
    // 悬浮状态
    &.hover,
    &:hover {
      background-color: var(--te-common-bg-container);
    }
  }
  // 选项框图标
  .tiny-option > .tiny-option__icon {
    font-size: var(--te-base-font-size-1);
    margin-right: 4px;
    color: var(--te-common-text-primary);
  }
}

// 2、input框
.tiny-input.tiny-input {
  &.tiny-input-prefix .tiny-input__inner {
    padding: 0 8px 0 30px;
  }
  .tiny-input__inner {
    border-radius: var(--te-base-border-radius-1);
    padding: 0 8px 0 12px;
    height: 24px;
    border-color: var(--te-common-border-default);
    color: var(--te-common-text-primary);
    font-size: var(--te-base-font-size-base);
    &:hover {
      border-color: var(--te-common-border-active);
    }
    &:focus {
      border-color: var(--te-common-border-active);
    }
  }
  &.is-disabled .tiny-input__inner {
    background: var(--te-common-bg-disabled);
    color: var(--te-common-text-disabled);
    font-size: var(--te-base-font-size-base);
  }
}

// 3、折叠框
.tiny-collapse.tiny-collapse {
  border-top: 0;
  .tiny-collapse-item__header {
    flex-direction: row-reverse;
    font-size: var(--te-base-font-size-base);
    color: var(--te-common-text-primary);
    font-weight: var(--te-base-font-weight-7);
    background-color: var(--te-common-bg-default);
    padding: 0 12px;
    border: 0px;
    border-bottom-style: none;

    .tiny-collapse-item__word-overflow {
      margin: var(--te-common-vertical-item-spacing-normal) 0px;
      width: 100%;
      line-height: var(--te-base-line-height-4);
    }
    .tiny-collapse-item__arrow {
      display: flex;
      svg {
        font-size: var(--te-base-font-size-1);
        color: var(--te-common-text-weaken);
      }
    }
  }
  .tiny-collapse-item {
    border-top-color: var(--te-common-border-bg-divider);
    border-bottom: 0;
    border-left: 0;
    border-right: 0;
    margin: 0;
  }
  .tiny-collapse-item__content {
    border: 0px;
    padding: 12px;
  }
  .tiny-collapse-item,
  .tiny-collapse-item__wrap {
    background-color: var(--te-common-bg-default);
  }

  .tiny-collapse-item__content {
    color: var(--te-common-text-primary);
  }

  .tiny-collapse-item__wrap {
    overflow: inherit;
  }
}

// 4、树-tree
.tiny-tree.tiny-tree {
  .tiny-tree-node__wrapper {
    cursor: pointer;
    color: var(--te-common-text-primary);
    font-size: var(--te-base-font-size-base);
    .tiny-tree-node {
      .tiny-tree-node__content {
        height: 24px;
        .tiny-tree-node__content-left {
          padding: 0 12px;
          .tiny-tree-node__content-box {
            padding: 0 12px 0 4px;
            background-color: var(--te-common-bg-default);
            &:hover {
              background-color: var(--te-common-bg-container);
            }
          }
        }
      }
      .is-current:not(.show-checkbox) > .tiny-tree-node__content .tiny-tree-node__content-box,
      .is-current:not(.show-checkbox) > .tiny-tree-node__content .tiny-tree-node__content-right {
        background-color: var(--te-common-bg-container);
      }
    }
  }
  .tiny-tree__empty-block {
    .tiny-tree__empty-text {
      color: var(--te-common-text-weaken);
    }
  }
}

// 5、页签tabs
.tiny-tabs.tiny-tabs {
  .tiny-tabs__header {
    .tiny-tabs__item__title {
      padding: 0 12px;
      line-height: 2;
    }
    .tiny-tabs__nav {
      display: flex;
      width: 100%; // 要验证一下是否需要写死
      border-radius: var(--te-base-border-radius-1);
      text-align: center;
    }
    .tiny-tabs__item {
      flex-grow: 1;
      font-size: var(--te-base-font-size-base);
      color: var(--te-common-text-secondary);
      background-color: var(--te-common-bg-container);
      height: auto;
      text-align: center;
      &.is-active {
        color: var(--te-common-text-primary);
        background-color: var(--te-common-bg-default);
        border-radius: var(--te-base-border-radius-1);
      }
    }
    .tiny-tabs__nav-wrap-not-separator::after {
      background-color: var(--te-common-border-divider);
    }
  }
}

// 6、search组件
.tiny-search.tiny-search {
  .tiny-search__line {
    height: 24px;
    border-radius: var(--te-base-border-radius-1);
    border: 1px solid var(--te-common-border-default);
    font-size: var(--te-base-font-size-base);
  }
  .tiny-search__input {
    padding: 0 8px 0 12px;
  }
  .tiny-search__input-btn {
    a {
      height: 24px;
      line-height: 24px;
    }
  }
  .tiny-search__input-btn svg {
    font-size: var(--te-base-font-size-2);
    color: var(--te-common-text-weaken);
  }
}

// 7、dialog组件
.tiny-dialog-box.tiny-dialog-box {
  padding: 20px;
  .tiny-dialog-box__header {
    font-size: var(--te-base-font-size-1);
    color: var(--te-common-text-primary);
    padding: 0;
  }
  .tiny-dialog-box__body {
    color: var(--te-common-text-secondary);
    padding: 0;
    margin-top: 16px;
  }
  .tiny-dialog-box__footer {
    margin-top: 16px;
    padding: 0;
    display: flex;
    flex-direction: row-reverse;
    .tiny-button {
      margin: 0;
    }
    .tiny-button--danger {
      margin-right: 8px;
    }
    .tiny-button--primary,
    .tiny-button--info {
      margin-left: 8px;
    }
  }
}

// 8、button按钮
.tiny-button.tiny-button {
  font-size: var(--te-base-font-size-base);
  border-radius: var(--te-base-border-radius-1);
  padding: 0 12px;
  height: 24px;
  line-height: 24px;
  // 默认按钮
  &.tiny-button--default {
    border: 1px solid var(--te-common-border-secondary);
    color: var(--te-common-text-primary);
    background-color: var(--te-common-bg-default);
    margin-right: 8px;
    &:hover {
      border: 1px solid var(--te-common-border-hover);
    }
  }
  // 确认按钮
  &.tiny-button--primary {
    background-color: var(--te-common-bg-primary);
    color: var(--te-common-text-inverse);
    border: 1px solid var(--te-common-border-active);
    &:hover {
      border: 1px solid var(--te-common-border-hover);
      background-color: var(--te-common-bg-secondary);
    }
  }
  &.tiny-button--info {
    color: var(--te-common-text-inverse);
    border-color: var(--te-common-border-active);
    background-color: var(--te-common-bg-primary);

    &:hover {
      border-color: var(--te-common-border-secondary);
    }
  }
  &.tiny-button--text {
    color: var(--te-common-text-emphasize);
    &:hover {
      color: var(--te-common-text-emphasize);
      text-decoration: none;
    }
  }
  // 图标按钮
  &:not(.is-circle) .tiny-svg.is-text {
    margin-right: 4px;
  }
}

.tiny-button-group.tiny-button-group {
  ul.tiny-group-item {
    border-radius: var(--te-base-border-radius-normal);
    li {
      background-color: var(--te-common-bg-container);
      &.active {
        &:hover button:not(.disabled),
        button:not(.disabled) {
          background: var(--te-common-bg-prompt);
          color: var(--te-common-text-primary);
        }
      }

      &:hover {
        button:not(.disabled) {
          color: var(--te-common-text-primary);
          background-color: var(--te-common-bg-default);
        }
      }

      &:not(:last-child) {
        margin-right: 0;
      }
    }

    button {
      background-color: var(--te-common-bg-container);
      color: var(--te-common-text-secondary);

      &::before {
        background: var(--te-common-border-default);
      }
    }
  }
}

// 9、modal模态框
.tiny-modal__box.tiny-modal__box {
  padding: 20px;
  border-radius: var(--te-base-border-radius-1);
  box-shadow: 0 0 10px 0 var(--te-base-rgba-23);
  .tiny-modal__header {
    padding: 0;
    font-size: var(--te-base-font-size-1);
    color: var(--te-common-text-primary);
    font-weight: var(--te-base-font-weight-4);
  }
  .tiny-modal__close-btn,
  .tiny-modal__zoom-btn {
    width: 16px;
    height: 16px;
    top: 0px;
    right: 0;
    color: var(--te-common-text-weaken);
  }
  .tiny-modal__body {
    margin-top: 12px;
    font-size: var(--te-base-font-size-base);
    color: var(--te-common-text-secondary);
  }
  .tiny-modal__footer {
    padding: 0;
    margin-top: 16px;
    display: flex;
    flex-direction: row-reverse;
  }
}

//10、modal的消息提示框
.tiny-modal.tiny-modal.tiny-modal__wrapper.type__message {
  .tiny-modal__box {
    border-radius: var(--te-base-border-radius-2);
    box-shadow: 0 2px 12px 0 var(--te-base-rgba-24);
    padding: 0;
    height: 38px;
    .tiny-modal__body {
      margin: 12px;
      padding: 0;
    }
  }
  .tiny-modal__content {
    .tiny-modal__text {
      font-size: var(--te-base-font-size-base);
      color: var(--te-common-text-primary);
    }
  }
  .tiny-modal__close-wrapper .tiny-modal__close-btn {
    color: var(--te-common-text-weaken);
  }
}

// 11、numeric 组件
.tiny-numeric.tiny-numeric {
  .tiny-numeric__input-inner {
    height: 24px;
    border-radius: var(--te-base-border-radius-1);
    color: var(--te-common-text-primary);
    border-color: var(--te-common-border-default);
    text-align: left;
  }
  &.is-controls-right {
    .tiny-numeric__input-inner {
      padding: 0 42px 0 12px;
    }
    //加减按钮
    .tiny-numeric__decrease,
    .tiny-numeric__increase {
      color: var(--te-common-icon-secondary);
      width: 14px;
      border-left: 1px solid var(--te-common-border-default);
    }
    .tiny-numeric__increase {
      border-bottom-color: var(--te-common-border-default);
    }
  }
  .tiny-numeric-base .is-disabled {
    background: var(--te-common-bg-disabled);
    color: var(--te-common-text-disabled);
  }
  .tiny-numeric__input {
    background-color: var(--te-common-bg-default);
    border-color: var(--te-common-border-default);
    &.has-unit .tiny-numeric__input-inner {
      padding: 0 42px 0 12px;
    }
  }
  .tiny-numeric__unit {
    color: var(--te-common-text-weaken);
    background: var(--te-common-border-default);
    border: 0;
    width: 14px;
    margin-right: 4px;
  }
}

// 12、popover气泡卡片
.tiny-popover.tiny-popover.tiny-popper[x-placement] {
  padding: 0px 8px;
  font-size: var(--te-base-font-size-base);
  color: var(--te-common-text-primary);
  background-color: var(--te-common-bg-default);
  border: 0;
  box-shadow: 0 8px 24px 0 var(--te-base-rgba-27);

  height: auto;
}

// 13、tag标签
.tiny-tag.tiny-tag {
  font-size: var(--te-base-font-size-base);
  color: var(--te-common-text-secondary);
  background: var(--te-common-bg-disabled);
  border-radius: var(--te-base-border-radius-1);
  .tiny-tag__close {
    margin: 0 0 0 4px;
    color: var(--te-common-text-weaken);
  }
}

// 14、radio 单选
.tiny-radio.tiny-radio {
  margin-right: 20px;
  .tiny-radio__inner {
    border: 1px solid var(--te-common-border-hover);
  }
  .tiny-radio__label {
    font-size: var(--te-base-font-size-base);
    color: var(--te-common-text-primary);
    padding-left: 6px;
  }
  .tiny-radio__input.is-checked .tiny-radio__inner::after {
    background-color: var(--te-common-bg-primary-checked);
  }
}

.tiny-radio-group.tiny-radio-group {
  .tiny-radio-button {
    &:first-child {
      .tiny-radio-button__inner {
        border-color: var(--te-common-border-secondary);
      }
    }
    .tiny-radio-button__orig-radio:checked {
      & + .tiny-radio-button__inner {
        background-color: var(--te-common-bg-primary-checked);
        border-color: var(--te-common-border-secondary);
        &:hover {
          box-shadow: none;
        }
      }
    }
    &__inner {
      background-color: var(--te-common-bg-default);
      color: var(--te-common-text-primary);
      border-color: var(--te-common-border-secondary);
    }
  }
}

// 15、checkbox 复选框适配
.tiny-checkbox.tiny-checkbox {
  .tiny-checkbox__input {
    &.is-checked .tiny-checkbox__inner {
      background-color: var(--te-common-bg-primary-checked);
      border-color: var(--te-common-border-checked);
    }
    .tiny-checkbox__inner {
      border-radius: var(--te-base-border-radius-1);
      border: 1px solid var(--te-common-border-hover);
      line-height: 24px;
    }
  }
  .tiny-checkbox__label {
    line-height: 24px;
    color: var(--te-common-text-primary);
  }
}

// 16、notify通知
.tiny-notify.tiny-notify {
  border-radius: var(--te-base-border-radius-2);
  padding: 12px;
  background-color: var(--te-common-bg-default);
  box-shadow: 0 2px 12px 0 var(--te-base-rgba-24);
  .tiny-notify__icon-zone {
    height: 24px;
    .tiny-notify__icon-status {
      width: 16px;
      height: 16px;
    }
  }
  .tiny-notify__content {
    color: var(--te-common-text-secondary);
    font-size: var(--te-base-font-size-base);
    > a {
      color: var(--te-common-text-link);
    }
  }
  .tiny-notify__message-zone {
    margin: 0 0 0 8px;
    .tiny-notify__title-wrapper {
      margin-bottom: 0;
      line-height: 24px;
      font-size: var(--te-base-font-size-1);
      font-weight: var(--te-base-font-weight-4);
      color: var(--te-common-text-primary);
    }
  }
  .tiny-notify__close-zone {
    padding: 0;
    .tiny-notify__icon-close {
      width: 16px;
      height: 16px;
      top: 0;
      right: 0;
    }
  }
  &.tiny-notify--error {
    .tiny-notify__icon-status {
      color: var(--te-common-color-error);
    }
  }

  &.tiny-notify--info {
    .tiny-notify__icon-status {
      color: var(--te-common-color-info);
    }
  }

  &.tiny-notify--success {
    .tiny-notify__icon-status {
      color: var(--te-common-color-success);
    }
  }

  &.tiny-notify--warning {
    .tiny-notify__icon-status {
      color: var(--te-common-color-warning);
    }
  }
}

// 17、tooltip文字提示
.tiny-tooltip.tiny-tooltip {
  &.tiny-tooltip__popper {
    background: var(--te-common-bg-default);
    color: var(--te-common-text-primary);
    box-shadow: 0 0 20px 0 var(--te-base-dark-bg-8);
    &[class*='is-'] {
      background: var(--te-common-bg-default);
      color: var(--te-common-text-primary);
      font-size: var(--te-base-font-size-base);
      padding: 12px;
      &[x-placement^='top'] {
        .popper__arrow {
          border-top-color: var(--te-common-text-inverse);
          &.popper__arrow::after {
            border-top-color: var(--te-common-text-inverse);
          }
        }
      }
      &[x-placement^='bottom'] {
        .popper__arrow {
          border-bottom-color: var(--te-common-text-inverse);
          &.popper__arrow::after {
            border-bottom-color: var(--te-common-text-inverse);
          }
        }
      }
      &[x-placement^='left'] {
        .popper__arrow {
          border-left-color: var(--te-common-text-inverse);
          &.popper__arrow::after {
            border-left-color: var(--te-common-text-inverse);
          }
        }
      }
      &[x-placement^='right'] {
        .popper__arrow {
          border-right-color: var(--te-common-text-inverse);
          &.popper__arrow::after {
            border-right-color: var(--te-common-text-inverse);
          }
        }
      }
    }
  }
}

// 18、表单
.tiny-form.tiny-form {
  .tiny-form-item {
    .tiny-form-item__label {
      color: var(--te-common-text-secondary);
      font-size: var(--te-base-font-size-base);
    }
  }
  .tiny-form--label-left.label-align .tiny-form-item .tiny-form-item__label {
    padding-left: 0;
    padding-right: 16px;
  }
  .tiny-form-item.is-text.is-required.is-no-asterisk.tiny-form-item--default {
    margin-bottom: 12px;
  }
  .tiny-form-item__error--block {
    padding-top: 4px;
  }
  .tiny-form-item__error {
    font-size: var(--te-base-font-size-base);
  }
}

// 19、表格
.tiny-grid__wrapper.tiny-grid__wrapper {
  .tiny-grid {
    font-size: var(--te-base-font-size-base);
    background-color: var(--te-common-bg-default);
    color: var(--te-common-text-primary);
    cursor: pointer;
    .tiny-grid__header-wrapper {
      background-color: var(--te-common-bg-container);
      .tiny-grid__header {
        .tiny-grid-header__row {
          .tiny-grid-header__column {
            height: 24px;
            &.col__center {
              text-align: left;
            }
          }
          .tiny-grid-cell {
            border-color: var(--te-common-text-secondary);
            font-weight: var(--te-base-font-weight-4);
            font-size: var(--te-base-font-size-base);
            .icon-half-select,
            .icon-checked-sur {
              color: var(--te-common-text-primary);
            }
          }
          .tiny-grid-resizable.is__line {
            color: var(--te-common-border-hover);
            height: 10px;
            margin-bottom: 9px;
          }
        }
      }
    }
    .tiny-grid__body-wrapper {
      .high-light-node {
        background-color: var(--te-common-bg-container);
        &.tiny-grid-body__column {
          font-size: var(--te-base-font-size-base);
          color: var(--te-common-text-primary);
        }
      }
      .tiny-grid__body {
        .tiny-grid-body__row {
          &.nav-tree .tiny-grid-cell {
            line-height: inherit;
          }
          .tiny-grid-body__column,
          .tiny-grid-footer__column {
            height: 30px;
            text-align: left;
            border-bottom: 0;
            &:hover {
              background-color: var(--te-common-bg-container);
            }
            .tiny-grid-cell {
              padding: 0;
            }
          }
          .tiny-grid-tree-wrapper .tiny-grid-tree__node-btn {
            fill: var(--te-common-icon-secondary);
          }
        }
      }
    }
  }
}

// 20、loading组件
.tiny-loading.tiny-loading {
  .tiny-loading__spinner {
    margin-top: 0;
    transform: translateY(-50%);
  }
  // 适配尺寸medium
  .tiny-loading__spinner-medium img,
  .tiny-loading__spinner-medium svg {
    width: 28px;
    height: 28px;
  }
}

// 21、progress进度条
.tiny-progress.tiny-progress.tiny-progress--line.progress-first {
  &.tiny-progress-bar__outer {
    background-color: var(--te-common-border-divider);
  }
  .tiny-progress__text {
    margin-left: 12px;
    color: var(--te-common-text-primary);
  }
}

// 22、开关
.tiny-switch.tiny-switch {
  background-color: var(--te-common-bg-switch);
  &.tiny-switch-checked {
    background-color: var(--te-common-bg-primary-checked);
  }
  &::after {
    background-color: var(--te-common-bg-default);
  }
}

// 23、下拉菜单
.tiny-dropdown.tiny-dropdown {
  &__trigger {
    color: var(--te-common-text-primary);
    &:not(&__caret-button):hover {
      color: var(--te-common-text-weaken);
    }
  }
}