acud
Version:
acg react 组件库
269 lines (243 loc) • 6.08 kB
text/less
@import '../../style/themes/index.less';
@import '../../style/mixins/index.less';
@steps-prefix-cls: ~'@{acud-prefix}-steps';
@process-icon-color: @B6;
@process-icon-border-color: @B6;
@process-title-color: @G2;
@process-description-color: @G5;
@process-icon-text-color: @G11;
@wait-icon-color: @G5;
@wait-icon-border-color: @G8;
@wait-title-color: @G5;
@wait-description-color: @G5;
@wait-tail-color: @G8;
@finish-icon-color: @B6;
@finish-icon-border-color: @B6;
@finish-title-color: @G2;
@finish-description-color: @G5;
@finish-tail-color: @G8;
@error-icon-color: @G11;
@error-icon-border-color: @E6;
@error-title-color: @G2;
@error-description-color: @G5;
@error-tail-color: @G8;
@steps-nav-active-color: @G2;
@process-tail-color: @G8;
.@{steps-prefix-cls} {
.reset-component();
display: flex;
width: 100%;
font-size: 0;
text-align: initial;
}
.@{steps-prefix-cls}-item {
position: relative;
display: inline-block;
flex: 1;
overflow: hidden;
vertical-align: top;
&-container {
outline: none;
}
&:last-child {
flex: none;
}
&:last-child > &-container > &-tail,
&:last-child > &-container > &-content > &-title::after {
display: none;
}
&-icon,
&-content {
display: inline-block;
vertical-align: top;
}
&-icon {
width: @steps-icon-size;
height: @steps-icon-size;
margin: @steps-icon-margin;
font-size: @steps-icon-font-size;
font-family: @font-family;
text-align: center;
border: @border-width-base @border-style-base @wait-icon-color;
border-radius: @steps-icon-size;
transition: background-color 0.3s, border-color 0.3s;
position: relative;
.@{steps-prefix-cls}-icon, svg {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
line-height: @steps-icon-size;
}
.basic-config(@steps-icon-tp, @steps-icon-p);
}
&-tail {
position: absolute;
top: 12px;
left: 0;
width: 100%;
padding: 0 10px;
&::after {
display: inline-block;
width: 100%;
height: 1px;
background: @G8;
border-radius: 1px;
transition: background 0.3s;
content: '';
}
}
&-title {
position: relative;
display: inline-block;
padding-right: 8px;
font-size: @steps-font-size-lg;
line-height: @steps-title-line-height;
font-weight: @font-weight-400;
.basic-tp-config(@steps-title-tp);
&::after {
position: absolute;
top: (@steps-title-line-height / 2);
left: 100%;
display: block;
width: 9999px;
height: 1px;
background: @wait-tail-color;
content: '';
}
}
&-subtitle {
display: inline;
margin-left: 8px;
color: @G5;
font-weight: @font-weight-200;
font-size: @steps-font-size-base;
}
&-description {
font-size: @steps-font-size-base;
margin-top: 1 * @P;
font-weight: @font-weight-400;
}
.step-item-status(process);
.step-item-status(wait);
&-wait > &-container > &-icon {
.@{steps-prefix-cls}-icon {
color: @G6;
}
}
&-process > &-container > &-icon {
background: @process-icon-color;
.@{steps-prefix-cls}-icon {
color: @process-icon-text-color;
}
}
&-process > &-container > &-title {
font-weight: 500;
}
&-finish > &-container > &-icon {
// background: #fff;
.@{steps-prefix-cls}-icon {
color: @finish-icon-color;
}
}
.step-item-status(finish);
.step-item-status(error);
&.@{steps-prefix-cls}-next-error .@{steps-prefix-cls}-item-title::after {
background: @error-icon-color;
}
&-error > &-container > &-icon {
// background: @error-title-color;
.@{steps-prefix-cls}-icon {
color: @error-icon-border-color;
}
}
&-disabled {
cursor: not-allowed;
}
}
// ===================== Clickable =====================
.@{steps-prefix-cls} .@{steps-prefix-cls}-item {
&:not(.@{steps-prefix-cls}-item-active) {
& > .@{steps-prefix-cls}-item-container[role='button'] {
cursor: pointer;
.@{steps-prefix-cls}-item {
&-title,
&-subtitle,
&-description,
&-icon .@{steps-prefix-cls}-icon {
transition: color 0.3s;
}
}
&:hover {
.@{steps-prefix-cls}-item {
&-title,
&-subtitle {
.basic-tp-config(@steps-title-tp);
}
}
.@{steps-prefix-cls}-item-icon {
.basic-p-config(@steps-icon-p);
.@{steps-prefix-cls}-icon {
.basic-tp-config(@steps-icon-tp);
}
}
}
}
}
}
.@{steps-prefix-cls}-horizontal:not(.@{steps-prefix-cls}-label-vertical) {
.@{steps-prefix-cls}-item {
padding-left: 8px;
white-space: nowrap;
&:first-child {
padding-left: 0;
}
&:last-child .@{steps-prefix-cls}-item-title {
padding-right: 0;
}
&-tail {
display: none;
}
&-description {
max-width: @steps-description-max-width;
white-space: normal;
}
}
}
.step-item-status(@status) {
@icon-color: '@{status}-icon-color';
@title-color: '@{status}-title-color';
@description-color: '@{status}-description-color';
@tail-color: '@{status}-tail-color';
@icon-border-color: '@{status}-icon-border-color';
&-@{status} &-icon {
background-color: @G11;
border-color: @@icon-border-color;
> .@{steps-prefix-cls}-icon {
color: @@icon-color;
.@{steps-prefix-cls}-icon-dot {
background: @@icon-color;
}
}
}
&-@{status} > &-container > &-content > &-title {
color: @@title-color;
&::after {
background-color: @@tail-color;
}
}
&-@{status} > &-container > &-content > &-description {
color: @@description-color;
}
&-@{status} > &-container > &-tail::after {
background-color: @@tail-color;
}
}
@import './custom-icon.less';
@import './small.less';
@import './vertical.less';
@import './label-placement.less';
@import './progress-dot.less';
@import './nav.less';
@import './rtl.less';
@import './progress.less';