rsuite
Version:
A suite of react components
245 lines (203 loc) • 5.19 kB
text/less
@import '../../styles/common';
//
// Steps
// --------------------------------------------------
.rs-steps {
min-height: @steps-icon-diameter;
}
// Item
// --------------------------
.rs-steps-item {
padding-left: @steps-icon-space-width;
position: relative;
overflow: hidden;
}
// Item icon
.rs-steps-item-icon-wrapper {
width: @steps-icon-diameter;
height: @steps-icon-diameter;
text-align: center;
font-size: @steps-icon-size;
line-height: @steps-icon-line-height;
color: var(--rs-text-secondary);
position: absolute;
top: 0;
left: 0;
display: flex;
align-items: center;
border: 1px solid var(--rs-steps-border);
border-radius: 50%;
// Finish status show check mark.
.rs-steps-item-status-finish & {
border-color: var(--rs-steps-state-finish);
color: var(--rs-steps-state-finish);
}
// Error status show X mark.
.rs-steps-item-status-error & {
border-color: var(--rs-steps-state-error);
color: var(--rs-steps-state-error);
}
.rs-steps-item-status-process & {
border-color: var(--rs-steps-state-process);
background-color: var(--rs-steps-state-process);
color: var(--rs-text-inverse);
.rs-icon {
color: var(--rs-steps-icon-state-process);
}
}
&.rs-steps-item-custom-icon {
border: none;
background: none;
}
// Icon content
> .rs-steps-item-icon {
width: 100%;
display: flex;
justify-content: center;
text-align: center;
position: relative;
.rs-icon {
font-size: 14px;
vertical-align: middle;
}
}
}
// Item content
// --------------------------
.rs-steps-item-content {
color: var(--rs-text-secondary);
display: inline-block;
// Change static to relative, Make `z-index` more than Tail line
position: relative;
width: 100%;
.rs-steps-item-status-process & {
color: var(--rs-text-primary);
}
.rs-steps-item-status-error & {
color: var(--rs-text-error);
}
}
// Item title
.rs-steps-item-title {
position: relative;
font-size: @steps-title-font-size;
line-height: @steps-title-line-height;
min-height: @steps-title-font-size;
padding-right: @steps-icon-spacing;
display: inline-block;
&:empty {
padding-right: 0;
}
}
// Item description
.rs-steps-item-description {
margin-top: @steps-description-margin-top;
}
.rs-steps-item-tail,
.rs-steps-item-title::after {
position: absolute;
border-color: var(--rs-steps-border);
.rs-steps-item-status-process & {
border-color: var(--rs-steps-border);
}
.rs-steps-item-status-finish & {
border-color: var(--rs-steps-state-finish);
}
.rs-steps-next-error & {
border-color: var(--rs-steps-border-state-error);
}
}
// Horizontal
.rs-steps-horizontal {
display: flex;
justify-content: space-between;
.rs-steps-item {
flex-grow: 1;
flex-shrink: 1;
min-height: @steps-icon-diameter;
// The last node is self-adaptive width.
&:last-child {
flex-grow: 0;
flex-shrink: 0;
// The last item hidden tail line
.rs-steps-item-title::after {
display: none;
}
}
// There is a 10px spacing between each item.
&:not(:first-child) {
padding-left: (@steps-icon-space-width + @steps-item-spacing);
.rs-steps-item-icon-wrapper {
left: @steps-item-spacing;
}
}
}
.rs-steps-item-content {
height: (@steps-title-font-size * @steps-title-line-height);
}
.rs-steps-item-title {
&::after {
content: '';
top: (@steps-icon-diameter / 2);
left: 100%;
width: 9999px;
border-top-width: 1px;
border-top-style: solid;
}
}
}
// Verticla
.rs-steps-vertical {
.rs-steps-item {
padding-bottom: 20px;
// There is a 10px spacing between each item.
&:not(:first-child) {
margin-top: @steps-item-spacing;
}
&:last-child .rs-steps-item-tail {
display: none;
}
}
.rs-steps-item-tail {
top: @steps-icon-space-width;
bottom: 0;
left: (@steps-icon-diameter / 2);
border-left-width: 1px;
border-left-style: solid;
}
}
// Small
// Resize: Diameter、font-size and so on.
.rs-steps-small {
min-height: @small-steps-icon-diameter;
&.rs-steps-horizontal .rs-steps-item {
min-height: @small-steps-icon-diameter;
}
&.rs-steps-horizontal .rs-steps-item:not(:first-child) {
padding-left: (@small-steps-icon-space-width + @steps-icon-spacing);
}
&.rs-steps-vertical .rs-steps-item-tail {
left: (@small-steps-icon-diameter / 2);
}
&.rs-steps-horizontal .rs-steps-item-title::after {
top: 12px;
}
.rs-steps-item {
padding-left: @small-steps-icon-space-width;
}
.rs-steps-item-icon-wrapper {
width: @small-steps-icon-diameter;
height: @small-steps-icon-diameter;
font-size: @small-steps-icon-size;
line-height: @small-steps-icon-line-height;
}
.rs-steps-item-title {
font-size: @small-steps-icon-size;
line-height: @small-steps-title-line-height;
}
.rs-steps-item-description {
margin-top: @small-steps-description-margin-top;
font-size: @small-steps-description-font-size;
line-height: @small-steps-description-line-height;
}
}