279 lines
		
	
	
		
			8.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
			
		
		
	
	
			279 lines
		
	
	
		
			8.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
| @import './index.less';
 | |
| 
 | |
| .@{form-item-prefix-cls} {
 | |
|   // ================================================================
 | |
|   // =                            Status                            =
 | |
|   // ================================================================
 | |
|   /* Some non-status related component style is in `components.less` */
 | |
| 
 | |
|   // ========================= Explain =========================
 | |
|   /* To support leave along ErrorList. We add additional className to handle explain style */
 | |
|   &-explain {
 | |
|     &&-error {
 | |
|       color: @error-color;
 | |
|     }
 | |
| 
 | |
|     &&-warning {
 | |
|       color: @warning-color;
 | |
|     }
 | |
|   }
 | |
| 
 | |
|   &-has-feedback {
 | |
|     // ========================= Input =========================
 | |
|     .@{ant-prefix}-input {
 | |
|       padding-right: 24px;
 | |
|     }
 | |
|     // https://github.com/ant-design/ant-design/issues/19884
 | |
|     .@{ant-prefix}-input-affix-wrapper {
 | |
|       .@{ant-prefix}-input-suffix {
 | |
|         padding-right: 18px;
 | |
|       }
 | |
|     }
 | |
| 
 | |
|     // Fix issue: https://github.com/ant-design/ant-design/issues/7854
 | |
|     .@{ant-prefix}-input-search:not(.@{ant-prefix}-input-search-enter-button) {
 | |
|       .@{ant-prefix}-input-suffix {
 | |
|         right: 28px;
 | |
|       }
 | |
|     }
 | |
| 
 | |
|     // ======================== Switch =========================
 | |
|     .@{ant-prefix}-switch {
 | |
|       margin: 2px 0 4px;
 | |
|     }
 | |
| 
 | |
|     // ======================== Select =========================
 | |
|     // Fix overlapping between feedback icon and <Select>'s arrow.
 | |
|     // https://github.com/ant-design/ant-design/issues/4431
 | |
|     > .@{ant-prefix}-select .@{ant-prefix}-select-arrow,
 | |
|     > .@{ant-prefix}-select .@{ant-prefix}-select-clear,
 | |
|     :not(.@{ant-prefix}-input-group-addon) > .@{ant-prefix}-select .@{ant-prefix}-select-arrow,
 | |
|     :not(.@{ant-prefix}-input-group-addon) > .@{ant-prefix}-select .@{ant-prefix}-select-clear {
 | |
|       right: 32px;
 | |
|     }
 | |
|     > .@{ant-prefix}-select .@{ant-prefix}-select-selection-selected-value,
 | |
|     :not(.@{ant-prefix}-input-group-addon)
 | |
|       > .@{ant-prefix}-select
 | |
|       .@{ant-prefix}-select-selection-selected-value {
 | |
|       padding-right: 42px;
 | |
|     }
 | |
| 
 | |
|     // ======================= Cascader ========================
 | |
|     .@{ant-prefix}-cascader-picker {
 | |
|       &-arrow {
 | |
|         margin-right: 19px;
 | |
|       }
 | |
|       &-clear {
 | |
|         right: 32px;
 | |
|       }
 | |
|     }
 | |
| 
 | |
|     // ======================== Picker =========================
 | |
|     // Fix issue: https://github.com/ant-design/ant-design/issues/4783
 | |
|     .@{ant-prefix}-picker {
 | |
|       padding-right: @input-padding-horizontal-base + @font-size-base * 1.3;
 | |
| 
 | |
|       &-large {
 | |
|         padding-right: @input-padding-horizontal-lg + @font-size-base * 1.3;
 | |
|       }
 | |
| 
 | |
|       &-small {
 | |
|         padding-right: @input-padding-horizontal-sm + @font-size-base * 1.3;
 | |
|       }
 | |
|     }
 | |
| 
 | |
|     // ===================== Status Group ======================
 | |
|     &.@{form-item-prefix-cls} {
 | |
|       &-has-success,
 | |
|       &-has-warning,
 | |
|       &-has-error,
 | |
|       &-is-validating {
 | |
|         // ====================== Icon ======================
 | |
|         .@{form-item-prefix-cls}-children-icon {
 | |
|           position: absolute;
 | |
|           top: 50%;
 | |
|           right: 0;
 | |
|           z-index: 1;
 | |
|           width: @input-height-base;
 | |
|           height: 20px;
 | |
|           margin-top: -10px;
 | |
|           font-size: @font-size-base;
 | |
|           line-height: 20px;
 | |
|           text-align: center;
 | |
|           visibility: visible;
 | |
|           animation: zoomIn 0.3s @ease-out-back;
 | |
|           pointer-events: none;
 | |
|         }
 | |
|       }
 | |
|     }
 | |
|   }
 | |
| 
 | |
|   // ======================== Success ========================
 | |
|   &-has-success {
 | |
|     &.@{form-item-prefix-cls}-has-feedback .@{form-item-prefix-cls}-children-icon {
 | |
|       color: @success-color;
 | |
|       animation-name: diffZoomIn1 !important;
 | |
|     }
 | |
|   }
 | |
| 
 | |
|   // ======================== Warning ========================
 | |
|   &-has-warning {
 | |
|     .form-control-validation(@warning-color; @warning-color; @form-warning-input-bg);
 | |
| 
 | |
|     &.@{form-item-prefix-cls}-has-feedback .@{form-item-prefix-cls}-children-icon {
 | |
|       color: @warning-color;
 | |
|       animation-name: diffZoomIn3 !important;
 | |
|     }
 | |
| 
 | |
|     // Select
 | |
|     .@{ant-prefix}-select:not(.@{ant-prefix}-select-disabled):not(.@{ant-prefix}-select-customize-input) {
 | |
|       .@{ant-prefix}-select-selector {
 | |
|         background-color: @form-warning-input-bg;
 | |
|         border-color: @warning-color !important;
 | |
|       }
 | |
|       &.@{ant-prefix}-select-open .@{ant-prefix}-select-selector,
 | |
|       &.@{ant-prefix}-select-focused .@{ant-prefix}-select-selector {
 | |
|         .active(@warning-color);
 | |
|       }
 | |
|     }
 | |
| 
 | |
|     // InputNumber, TimePicker
 | |
|     .@{ant-prefix}-input-number,
 | |
|     .@{ant-prefix}-picker {
 | |
|       background-color: @form-warning-input-bg;
 | |
|       border-color: @warning-color;
 | |
|       &-focused,
 | |
|       &:focus {
 | |
|         .active(@warning-color);
 | |
|       }
 | |
|       &:not([disabled]):hover {
 | |
|         background-color: @form-warning-input-bg;
 | |
|         border-color: @warning-color;
 | |
|       }
 | |
|     }
 | |
| 
 | |
|     .@{ant-prefix}-cascader-picker:focus .@{ant-prefix}-cascader-input {
 | |
|       .active(@warning-color);
 | |
|     }
 | |
|   }
 | |
| 
 | |
|   // ========================= Error =========================
 | |
|   &-has-error {
 | |
|     .form-control-validation(@error-color; @error-color; @form-error-input-bg);
 | |
| 
 | |
|     &.@{form-item-prefix-cls}-has-feedback .@{form-item-prefix-cls}-children-icon {
 | |
|       color: @error-color;
 | |
|       animation-name: diffZoomIn2 !important;
 | |
|     }
 | |
| 
 | |
|     // Select
 | |
|     .@{ant-prefix}-select:not(.@{ant-prefix}-select-disabled):not(.@{ant-prefix}-select-customize-input) {
 | |
|       .@{ant-prefix}-select-selector {
 | |
|         background-color: @form-error-input-bg;
 | |
|         border-color: @error-color !important;
 | |
|       }
 | |
|       &.@{ant-prefix}-select-open .@{ant-prefix}-select-selector,
 | |
|       &.@{ant-prefix}-select-focused .@{ant-prefix}-select-selector {
 | |
|         .active(@error-color);
 | |
|       }
 | |
|     }
 | |
| 
 | |
|     // fixes https://github.com/ant-design/ant-design/issues/20482
 | |
|     .@{ant-prefix}-input-group-addon .@{ant-prefix}-select {
 | |
|       &.@{ant-prefix}-select-single:not(.@{ant-prefix}-select-customize-input)
 | |
|         .@{ant-prefix}-select-selector {
 | |
|         background-color: inherit;
 | |
|         border: 0;
 | |
|         box-shadow: none;
 | |
|       }
 | |
|     }
 | |
| 
 | |
|     .@{ant-prefix}-select.@{ant-prefix}-select-auto-complete {
 | |
|       .@{ant-prefix}-input:focus {
 | |
|         border-color: @error-color;
 | |
|       }
 | |
|     }
 | |
| 
 | |
|     // InputNumber, TimePicker
 | |
|     .@{ant-prefix}-input-number,
 | |
|     .@{ant-prefix}-picker {
 | |
|       background-color: @form-error-input-bg;
 | |
|       border-color: @error-color;
 | |
|       &-focused,
 | |
|       &:focus {
 | |
|         .active(@error-color);
 | |
|       }
 | |
|       &:not([disabled]):hover {
 | |
|         background-color: @form-error-input-bg;
 | |
|         border-color: @error-color;
 | |
|       }
 | |
|     }
 | |
| 
 | |
|     .@{ant-prefix}-mention-wrapper {
 | |
|       .@{ant-prefix}-mention-editor {
 | |
|         &,
 | |
|         &:not([disabled]):hover {
 | |
|           background-color: @form-error-input-bg;
 | |
|           border-color: @error-color;
 | |
|         }
 | |
|       }
 | |
|       &.@{ant-prefix}-mention-active:not([disabled]) .@{ant-prefix}-mention-editor,
 | |
|       .@{ant-prefix}-mention-editor:not([disabled]):focus {
 | |
|         .active(@error-color);
 | |
|       }
 | |
|     }
 | |
| 
 | |
|     // cascader
 | |
|     .@{ant-prefix}-cascader-picker {
 | |
|       &:hover
 | |
|         .@{ant-prefix}-cascader-picker-label:hover
 | |
|         + .@{ant-prefix}-cascader-input.@{ant-prefix}-input {
 | |
|         border-color: @error-color;
 | |
|       }
 | |
| 
 | |
|       &:focus .@{ant-prefix}-cascader-input {
 | |
|         background-color: @form-error-input-bg;
 | |
|         .active(@error-color);
 | |
|       }
 | |
|     }
 | |
| 
 | |
|     // transfer
 | |
|     .@{ant-prefix}-transfer {
 | |
|       &-list {
 | |
|         border-color: @error-color;
 | |
| 
 | |
|         &-search:not([disabled]) {
 | |
|           border-color: @input-border-color;
 | |
| 
 | |
|           &:hover {
 | |
|             .hover();
 | |
|           }
 | |
| 
 | |
|           &:focus {
 | |
|             .active();
 | |
|           }
 | |
|         }
 | |
|       }
 | |
|     }
 | |
| 
 | |
|     // RadioGroup
 | |
|     .@{ant-prefix}-radio-button-wrapper {
 | |
|       border-color: @error-color !important;
 | |
| 
 | |
|       &:not(:first-child) {
 | |
|         &::before {
 | |
|           background-color: @error-color;
 | |
|         }
 | |
|       }
 | |
|     }
 | |
|   }
 | |
| 
 | |
|   // ====================== Validating =======================
 | |
|   &-is-validating {
 | |
|     &.@{form-item-prefix-cls}-has-feedback .@{form-item-prefix-cls}-children-icon {
 | |
|       display: inline-block;
 | |
|       color: @primary-color;
 | |
|     }
 | |
|   }
 | |
| }
 |