UNPKG

@bee-design/ui

Version:

Bee Design React UI Library.

278 lines (230 loc) 6.68 kB
@import '../../style/mixin.less'; @import './token.less'; @import '../../_class/Draggable/style/index.less'; @import './mixin.less'; @input-tag-prefix-cls: ~'@{prefix}-input-tag'; .@{input-tag-prefix-cls} { display: inline-block; box-sizing: border-box; width: 100%; padding-left: @input-tag-padding-horizontal; padding-right: @input-tag-padding-horizontal; border-radius: @input-tag-border-radius; vertical-align: top; cursor: text; transition: all @transition-duration-1 @transition-timing-function-linear; &-view { display: flex; width: 100%; } &-inner { display: flex; align-items: center; flex-wrap: wrap; flex-grow: 1; position: relative; box-sizing: border-box; overflow: hidden; } &-suffix { display: flex; align-items: center; justify-content: center; box-sizing: border-box; min-width: 22px; padding-right: 8px; } & &-clear-icon { display: none; font-size: @input-tag-size-icon-clear; color: @input-tag-color-icon-clear; cursor: pointer; > svg { transition: color @transition-duration-1 @transition-timing-function-linear; position: relative; } } &:hover &-clear-icon { display: block; & ~ * { display: none; } } &:not(&-focus) { .@{input-tag-prefix-cls}-clear-icon:hover::before { background-color: @input-tag-color-icon-clear-bg_hover; } .@{prefix}-draggable-item { cursor: move; } } &-input { width: 100%; // width might be overwrite by inline-style, max-width make text-ellipsis work max-width: 100%; padding: 0; border: none; outline: none; background: none; font-size: inherit; cursor: inherit; color: inherit; .text-ellipsis(); .@{prefix}-tag + &[disabled] { width: 0 !important; } &-mirror { position: absolute; top: 0; left: 0; visibility: hidden; pointer-events: none; } &::placeholder { color: @input-tag-color-placeholder; } } &-tag { max-width: 100%; margin-right: @input-tag-tag-margin-right; font-size: @input-tag-tag-font-size; } // 多状态下的颜色处理 .status-color(@status) { background-color: ~'@{input-tag-color-bg_@{status}}'; color: ~'@{input-tag-color-text_@{status}}'; border: @input-tag-border-width solid ~'@{input-tag-color-border_@{status}}'; &:hover { background-color: ~'@{input-tag-color-bg_@{status}_hover}'; border: @input-tag-border-width solid ~'@{input-tag-color-border_@{status}_hover}'; } &.@{input-tag-prefix-cls}-focus when not (@status = disabled) { background-color: ~'@{input-tag-color-bg_@{status}_focus}'; border: @input-tag-border-width solid ~'@{input-tag-color-border_@{status}_focus}'; box-shadow: 0 0 0 ~'@{input-tag-size-shadow_@{status}_focus}' ~'@{input-tag-color-shadow_@{status}_focus}'; } } .@{prefix}-icon-hover { cursor: pointer; &.@{prefix}-icon-hover-disabled { cursor: not-allowed; } } .status-tag-color() { .@{input-tag-prefix-cls}-tag { color: @input-tag-color-text_default; border-color: @input-tag-tag-color-border; background-color: @input-tag-tag-color-bg; } .@{prefix}-icon-hover:hover::before { background-color: @input-tag-tag-remove-icon-color-bg; } &.@{input-tag-prefix-cls}-focus { .@{input-tag-prefix-cls}-tag { border-color: @input-tag-tag-color-border_focus; background-color: @input-tag-tag-color-bg_focus; } .@{prefix}-icon-hover:hover::before { background-color: @input-tag-tag-remove-icon-color-bg_focus; } } &.@{input-tag-prefix-cls}-disabled { .@{input-tag-prefix-cls}-tag { color: @input-tag-color-text_disabled; border-color: @input-tag-tag-color-border_disabled; background-color: @input-tag-tag-color-bg_disabled; } } } .status-color(default); .status-tag-color(); &-disabled { .status-color(disabled); cursor: not-allowed; .@{input-tag-prefix-cls}-input::placeholder { color: @input-tag-color-text_disabled; } } &-error { .status-color(error); } &-readonly { cursor: default; } } .@{input-tag-prefix-cls} { .size(@size) { &-size-@{size} { @ref-font-size: ~'input-tag-size-@{size}-font-size'; @ref-height: ~'input-tag-size-@{size}-height'; @ref-tag-height: ~'input-tag-size-@{size}-tag-height'; @ref-padding-horizontal_not_tag: ~'input-tag-size-@{size}-padding_no_tag'; @font-size: @@ref-font-size; @height: @@ref-height; @tag-height: @@ref-tag-height; @padding-horizontal_not_tag: @@ref-padding-horizontal_not_tag; font-size: @font-size; .@{input-tag-prefix-cls}-view { min-height: @height - @input-tag-border-width * 2; } .@{input-tag-prefix-cls}-inner { padding-top: (@height / 2) - (@tag-height / 2) - @input-tag-border-width - @input-tag-tag-margin-vertical; padding-bottom: $padding-top; } .@{input-tag-prefix-cls}-tag, .@{input-tag-prefix-cls}-tag + .@{input-tag-prefix-cls}-input { margin-top: (@input-tag-tag-margin-vertical / 2); margin-bottom: $margin-top; height: @tag-height; line-height: $height - 2; } &.@{input-tag-prefix-cls}-has-placeholder { input, .@{input-tag-prefix-cls}-input-mirror { box-sizing: border-box; padding-left: @padding-horizontal_not_tag - @input-tag-padding-horizontal; } } } } .size(mini); .size(default); .size(small); .size(large); } .@{input-tag-prefix-cls}-rtl { direction: rtl; padding-right: @input-tag-padding-horizontal; padding-left: @input-tag-padding-horizontal; .@{input-tag-prefix-cls}-suffix { padding-right: 0; padding-left: 8px; } .@{input-tag-prefix-cls}-tag { margin-right: 0; margin-left: @input-tag-tag-margin-right; } .@{input-tag-prefix-cls}-input { &-mirror { right: 0; left: initial; } } .size(@size) { @ref-padding-horizontal_not_tag: ~'input-tag-size-@{size}-padding_no_tag'; @padding-horizontal_not_tag: @@ref-padding-horizontal_not_tag; &.@{input-tag-prefix-cls}-size-@{size} { &.@{input-tag-prefix-cls}-has-placeholder { input, .@{input-tag-prefix-cls}-input-mirror { padding-right: @padding-horizontal_not_tag - @input-tag-padding-horizontal; } } } } .size(mini); .size(default); .size(small); .size(large); }