@arco-design/web-react
Version:
Arco Design React UI Library.
178 lines (143 loc) • 4.13 kB
text/less
@import './token.less';
@import '../../style/mixin.less';
@tag-prefix-cls: ~'@{prefix}-tag';
@colors: red, orangered, orange, gold, lime, green, cyan, blue, arcoblue, purple, pinkpurple,
magenta, gray;
.@{tag-prefix-cls} {
display: inline-flex;
align-items: center;
box-sizing: border-box;
height: @tag-size-default;
padding: @tag-padding-vertical @tag-padding-horizontal;
border: @tag-border-width @tag-border-type transparent;
border-radius: @tag-border-radius;
font-size: @tag-size-default-font-size;
font-weight: @tag-text-font-weight;
line-height: @tag-size-default - @tag-border-width * 2 - @tag-padding-vertical * 2;
color: @tag-default-color-text;
.icon-hover(
@tag-prefix-cls,
12px,
16px
);
.icon-hover-bg(@tag-prefix-cls, @tag-default-color-bg_hover);
&-content {
flex: 1;
.text-ellipsis();
}
&-checkable {
cursor: pointer;
transition: all @transition-duration-1 @transition-timing-function-linear;
}
&-checkable:hover {
background-color: @tag-color-bg-not-checked_hover;
}
&-checked {
border-color: @tag-default-color-border;
background-color: @tag-default-color-bg;
}
&-checkable&-checked:hover {
background-color: @tag-default-color-bg_hover;
border-color: @tag-default-color-border_hover;
}
&-bordered,
&-checkable&-checked&-bordered:hover {
border-color: @tag-default-bordered-color-border;
}
// Size
&-size-small {
height: @tag-size-small;
line-height: @tag-size-small - @tag-border-width * 2;
font-size: @tag-size-small-font-size;
}
&-size-medium {
height: @tag-size-medium;
line-height: @tag-size-medium - @tag-border-width * 2;
font-size: @tag-size-medium-font-size;
}
&-size-large {
height: @tag-size-large;
line-height: @tag-size-large - @tag-border-width * 2;
font-size: @tag-size-large-font-size;
}
&-hide {
display: none;
}
&-loading {
opacity: 0.8;
cursor: default;
}
&-icon {
margin-right: @tag-icon-margin-right;
color: @tag-default-color-icon;
}
each(@colors, {
&-checked&-@{value} {
color: ~'@{tag-@{value}-color-text}';
background-color: ~'@{tag-@{value}-color-bg}';
border: @tag-border-width @tag-border-type ~'@{tag-@{value}-color-border}';
.icon-hover-bg(@tag-prefix-cls, ~'@{tag-@{value}-color-icon-bg_hover}');
}
&-checkable&-checked&-@{value}:hover {
background-color: ~'@{tag-@{value}-color-bg_hover}';
border-color: ~'@{tag-@{value}-color-border_hover}';
}
&-checked&-@{value}&-bordered,
&-checked&-@{value}&-bordered:hover {
border-color: ~'@{tag-@{value}-bordered-color-border}';
}
&-checked&-@{value} &-icon,
&-checked&-@{value} &-close-icon,
&-checked&-@{value} &-loading-icon {
color: ~'@{tag-@{value}-color-icon}';
}
});
&-custom-color {
color: @tag-custom-color-text;
.icon-hover-bg(@tag-prefix-cls, @tag-custom-color-icon-bg_hover);
}
& &-close-btn {
font-size: 12px;
margin-left: 4px;
&:focus-visible::before {
box-shadow: inset 0 0 0 2px var(~'@{arco-cssvars-prefix}-color-primary-light-3');
}
> svg {
position: relative;
}
}
&-loading-icon {
font-size: 12px;
margin-left: 4px;
}
}
@{arco-theme-tag} {
&[arco-theme='dark'] {
.@{tag-prefix-cls}-checked {
color: rgba(255, 255, 255, 90%);
}
each(@colors, {
.@{tag-prefix-cls}-checked.@{tag-prefix-cls}-@{value} {
background-color: ~'rgba(var(@{arco-cssvars-prefix}-@{value}-6), 0.2)';
.icon-hover-bg(@tag-prefix-cls, ~'rgba(var(@{arco-cssvars-prefix}-@{value}-6), 0.35)');
}
.@{tag-prefix-cls}-checkable.@{tag-prefix-cls}-checked.@{tag-prefix-cls}-@{value}:hover {
background-color: ~'rgba(var(@{arco-cssvars-prefix}-@{value}-6), 0.35)';
}
});
}
}
.@{tag-prefix-cls}-rtl {
direction: rtl;
.@{tag-prefix-cls} {
&-icon {
margin-left: @tag-icon-margin-right;
margin-right: 0;
}
&-close-btn,
&-loading-icon {
margin-left: 0;
margin-right: 4px;
}
}
}