acud
Version:
acg react 组件库
378 lines (321 loc) • 8.93 kB
text/less
@import '../../style/themes/index';
@import '../../style/mixins/index';
@tag-prefix-cls: ~'@{acud-prefix}-tag';
.@{tag-prefix-cls} {
.reset-component();
display: inline-block;
height: auto;
margin-right: 2*@P;
padding: 0 2*@P;
font-size: @T2;
white-space: nowrap;
background: @tag-default-bg;
border-radius: @R2;
transition: all 0.3s;
.basic-tp-config(@tag-default-tp);
>a:first-child:last-child {
display: inline-block;
margin: 0 -8px;
padding: 0 8px;
}
&-close-icon {
font-size: 4*@P;
cursor: pointer;
transition: all 0.3s;
margin-left: 4px;
>svg {
vertical-align: middle;
}
}
.@{iconfont-css-prefix} {
.basic-tp-config(tp24);
line-height: 100%;
}
&-has-color {
border-color: transparent;
&,
a,
a:hover,
.@{iconfont-css-prefix}-close,
.@{iconfont-css-prefix}-close:hover {
color: @tp8-default-color;
}
}
&-checkable {
.basic-config(@tag-checkable-tp, @tag-checkable-p);
cursor: pointer;
&-checked {
.basic-config(@tag-checkable-checked-tp, @tag-checkable-checked-p);
cursor: pointer;
}
}
&-transparent-checkable {
.basic-config(@tag-transparent-checkable-tp, @tag-transparent-checkable-p);
cursor: pointer;
&-checked {
.basic-config(@tag-checkable-checked-tp, @tag-checkable-checked-p);
cursor: pointer;
}
}
&-hidden {
display: none;
}
// To ensure that a space will be placed between character and `Icon`.
>.@{iconfont-css-prefix}+span,
>span+.@{iconfont-css-prefix} {
margin-left: 2*@P;
}
.make-enhance-classes(@status, @inactive-after) {
@color: 'tag-@{status}@{inactive-after}-color';
&-@{status}-enhance {
color: @G11;
background-color: @@color;
.acudicon {
color: @G11;
}
.acudicon:hover {
color: @G11;
}
&:hover {
color: @G11;
}
}
&-@{status}-enhance[disabled] {
.acudicon {
color: @G6;
}
}
}
.make-enhance-classes(active, '');
.make-enhance-classes(processing, '');
.make-enhance-classes(success, '');
.make-enhance-classes(error, '');
.make-enhance-classes(warning, '');
.make-enhance-classes(inactive, -after);
.make-classes(@status) {
@color: 'tag-@{status}-color';
@bg-color: 'tag-@{status}-bg-color';
&-@{status} {
color: @@color;
font-size: @T2;
border-radius: @R2;
background-color: @@bg-color;
.acudicon {
color: @@color;
}
.acudicon:hover {
color: @@color;
}
&:hover {
color: @@color;
}
}
&-@{status}[disabled] {
.acudicon {
color: @G6;
}
}
}
.make-classes(active);
.make-classes(processing);
.make-classes(success);
.make-classes(error);
.make-classes(warning);
.make-classes(inactive);
.make-outline-classes(@status) {
@color: 'tag-@{status}-color';
@bg-color: 'tag-@{status}-bg-color';
@border-color: 'tag-@{status}-border-color';
&-@{status}-outline {
color: @@color;
font-size: @T2;
border-radius: @R2;
background-color: @@bg-color;
border: 1px solid @@border-color;
.acudicon {
color: @@color;
}
.acudicon:hover {
color: @@color;
}
&:hover {
color: @@color;
}
}
&-@{status}-outline[disabled] {
border-width: 0;
.acudicon {
color: @G6;
}
}
}
.make-outline-classes(active);
.make-outline-classes(processing);
.make-outline-classes(success);
.make-outline-classes(error);
.make-outline-classes(warning);
.make-outline-classes(inactive);
.make-status-classes(@status, @processing-bg-after) {
@status-color: 'tag-status-@{status}-color';
@bg-color: 'tag-@{status}-bg@{processing-bg-after}-color';
&-@{status}-status {
color: @@status-color;
background-color: @@bg-color;
.acudicon {
color: @@status-color;
}
.acudicon:hover {
color: @@status-color;
}
&:hover {
color: @@status-color;
}
}
&-@{status}-status[disabled] {
.acudicon {
color: @G6;
}
}
}
.make-status-classes(processing, -after);
.make-status-classes(success, '');
.make-status-classes(error, '');
.make-status-classes(warning, '');
&-status {
line-height: 5*@P;
color: @G11;
}
// UE要求在组件里专门写好营销类
&-type-marketing {
position: relative;
width: 50px;
height: 16px ;
background: transparent;
border-top: 0px solid transparent;
border-bottom: 15px solid green;
border-left: 16px solid transparent;
border-right: 16px solid transparent;
transform: rotate(-46deg);
padding: 0;
overflow: visible;
}
&-type-business {
color: #fff;
position: relative;
padding-left: 10px;
&:hover {
color: #fff;
}
.business-icon {
position: absolute;
width: 20px;
height: 20px;
left: -10px;
}
}
&-type-subscription {
background: transparent;
span {
.basic-tp-config(@tag-subscription-tp);
}
}
&-type-edit {
user-select: none;
padding-right: @P;
line-height: 6*@P;
&[disabled], &[disabled]:hover {
color: @G5;
background-color: @G8;
padding-right: 2*@P;
.acudicon {
display: none;
}
}
}
&-render-container {
display: flex;
align-items: center;
.circle {
width: 12px;
height: 12px;
border-radius: 12px;
margin-right: 6px;
position: relative;
&::after {
display: block;
content: '';
width: 8px;
height: 8px;
border-radius: 8px;
position: absolute;
left: 2px;
top: 2px;
}
}
}
.make-status-color-classes(@status) {
@color: 'tag-status-@{status}-color';
.circle.status-@{status} {
&::after {
background: @@color;
}
}
}
.make-status-color-classes(inactive);
.make-status-color-classes(active);
.make-status-color-classes(processing);
.make-status-color-classes(success);
.make-status-color-classes(error);
.make-status-color-classes(warning);
// processing 动效
.circle.status-processing {
&::after {
animation: flash .4s ease-in infinite alternate;
}
}
@keyframes flash {
from {
transform: scale(0.7);
box-shadow: 0 0 0 3px #d4e5ff;
}
to {
transform: scale(1);
box-shadow: 0 0 0 0px #d4e5ff;
}
}
.make-order-classes(@index) {
@color: 'order-color-@{index}';
@bg-color: 'order-bg-@{index}';
@bg-color-enhance: 'order-bg-@{index}-enhance';
@border-color: 'order-border-@{index}';
&-list-order-color-@{index} {
color: @@color;
}
&-list-order-bg-color-@{index} {
background-color: @@bg-color;
}
&-list-order-bg-color-@{index}-enhance {
color: #fff;
background-color: @@bg-color-enhance;
&:hover {
color: #fff;
}
}
&-list-order-border-color-@{index} {
border-width: 1px;
border-style: solid;
border-color: @@border-color;
}
}
.make-order-classes(1);
.make-order-classes(2);
.make-order-classes(3);
.make-order-classes(4);
.make-order-classes(5);
.make-order-classes(6);
.make-order-classes(7);
.make-order-classes(8);
.make-order-classes(9);
.make-order-classes(10);
}
@import './rtl';