mirror of
https://github.com/alibaba/lowcode-engine.git
synced 2026-03-08 03:27:20 +00:00
325 lines
11 KiB
SCSS
325 lines
11 KiB
SCSS
@mixin reset-font() {
|
|
font-family: $font-family-base;
|
|
font-size: $font-size-body-1;
|
|
line-height: $font-lineheight-base;
|
|
}
|
|
|
|
// item尺寸
|
|
// ----------------------------------------
|
|
|
|
@mixin step-item-size(
|
|
$height: auto,
|
|
$width: auto,
|
|
$margin-left: 0,
|
|
$margin-right: 0
|
|
) {
|
|
height: $height;
|
|
line-height: $height;
|
|
margin-left: $margin-left;
|
|
margin-right: $margin-right;
|
|
}
|
|
|
|
// item状态
|
|
// ----------------------------------------
|
|
|
|
@mixin step-item-state(
|
|
$shape: 'circle',
|
|
$background: $color-white,
|
|
$title-color: $color-black,
|
|
$icon-color: $color-black,
|
|
$tail-color: $color-black,
|
|
$tail-bg-color: $color-text1-1,
|
|
$icon-border-color: $color-black,
|
|
$content-color: $color-black,
|
|
$node-size: $s-8,
|
|
$font-weight: $font-weight-2
|
|
) {
|
|
#{$step-prefix}-item-tail {
|
|
&-overlay {
|
|
background: $tail-color;
|
|
}
|
|
|
|
&-underlay {
|
|
background: $tail-bg-color;
|
|
}
|
|
}
|
|
|
|
& > #{$step-prefix}-item-container {
|
|
#{$step-prefix}-item-progress {
|
|
width: $node-size;
|
|
height: $node-size;
|
|
}
|
|
|
|
#{$step-prefix}-item-node {
|
|
color: $icon-color;
|
|
}
|
|
|
|
#{$step-prefix}-item-node-circle {
|
|
background: $background;
|
|
border-color: $icon-border-color;
|
|
}
|
|
|
|
#{$step-prefix}-item-node-dot {
|
|
background: $background;
|
|
border-color: $icon-border-color;
|
|
}
|
|
}
|
|
|
|
#{$step-prefix}-item-title {
|
|
color: $title-color;
|
|
word-break: break-word;
|
|
}
|
|
#{$step-prefix}-item-content {
|
|
color: $title-color;
|
|
font-size: $step-circle-item-content-font-size;
|
|
word-break: break-word;
|
|
}
|
|
|
|
#{$step-prefix}-item-node-placeholder {
|
|
width: $node-size;
|
|
height: $node-size;
|
|
position: relative;
|
|
}
|
|
|
|
#{$step-prefix}-item-node {
|
|
position: relative;
|
|
display: inline-block;
|
|
text-align: center;
|
|
cursor: pointer;
|
|
&-circle {
|
|
display: block;
|
|
width: $node-size;
|
|
height: $node-size;
|
|
font-size: $step-circle-item-node-font-size;
|
|
font-weight: $font-weight;
|
|
line-height: $node-size - 2 * $step-circle-item-node-border-width;
|
|
text-align: center;
|
|
border: $step-circle-item-node-border-width solid;
|
|
border-radius: $step-circle-item-node-corner;
|
|
transition: background-color $motion-duration-immediately $motion-linear;
|
|
#{$step-icon-prefix} {
|
|
@include icon-size($step-circle-item-node-icon-size);
|
|
animation: zoomIn $motion-duration-immediately $motion-linear;
|
|
}
|
|
}
|
|
}
|
|
@if ($shape == 'dot') {
|
|
#{$step-prefix}-item-content {
|
|
font-size: $step-dot-item-content-font-size;
|
|
}
|
|
#{$step-prefix}-item-node-dot {
|
|
display: block;
|
|
width: $node-size;
|
|
height: $node-size;
|
|
font-size: $step-dot-item-content-font-size;
|
|
line-height: $node-size - 2 * $step-dot-item-dot-border-width;
|
|
text-align: center;
|
|
border: $step-dot-item-dot-border-width solid;
|
|
border-radius: $step-dot-item-dot-corner;
|
|
transition: background-color .3s ease, border-color .3s ease;
|
|
}
|
|
}
|
|
|
|
@if ($shape == 'arrow') {
|
|
background: $background;
|
|
|
|
&:before {
|
|
border: $step-arrow-item-border-width solid $background;
|
|
border-left-color: transparent;
|
|
}
|
|
|
|
&:after {
|
|
border-left-color: $background;
|
|
}
|
|
}
|
|
}
|
|
|
|
// 针对不同size的节点进行样式调整
|
|
|
|
@mixin state-node-size($type: 'hor', $shape: 'circle', $node-size: $s-8) {
|
|
@if ($type == 'hor') {
|
|
@if ($shape == 'circle') {
|
|
#{$step-prefix}-item-tail {
|
|
display: inline-block;
|
|
clear: both;
|
|
width: calc(100% - #{$node-size + 2 * $step-circle-item-node-padding});
|
|
vertical-align: middle;
|
|
#{$step-prefix}-item-tail-underlay {
|
|
display: block;
|
|
height: $step-circle-item-tail-size;
|
|
position: relative;
|
|
}
|
|
#{$step-prefix}-item-tail-overlay {
|
|
position: absolute;
|
|
top: 0;
|
|
height: $step-circle-item-tail-size;
|
|
transition: all $motion-duration-immediately $motion-linear;
|
|
width: 100%;
|
|
}
|
|
}
|
|
|
|
& > #{$step-prefix}-item-body {
|
|
width: $step-circle-item-body-width;
|
|
left: - ($step-circle-item-body-width - $node-size - $step-circle-item-node-padding * 2) / 2;
|
|
text-align: center;
|
|
position: absolute;
|
|
& > #{$step-prefix}-item-title {
|
|
font-size: $step-circle-item-title-size;
|
|
line-height: $step-circle-item-title-size + 4;
|
|
margin-top: $step-circle-item-title-margin-top;
|
|
font-weight: $step-circle-item-title-weight;
|
|
}
|
|
& > #{$step-prefix}-item-content {
|
|
margin-top: $step-circle-item-content-margin-top;
|
|
}
|
|
}
|
|
}
|
|
@if ($shape == 'dot') {
|
|
#{$step-prefix}-item-tail {
|
|
display: inline-block;
|
|
clear: both;
|
|
width: calc(100% - #{$node-size + 2 * $step-dot-item-dot-padding});
|
|
vertical-align: middle;
|
|
#{$step-prefix}-item-tail-underlay {
|
|
display: block;
|
|
height: $step-dot-item-tail-size;
|
|
position: relative;
|
|
}
|
|
#{$step-prefix}-item-tail-overlay {
|
|
position: absolute;
|
|
top: 0;
|
|
height: $step-dot-item-tail-size;
|
|
transition: all $motion-duration-immediately $motion-linear;
|
|
width: 100%;
|
|
}
|
|
}
|
|
|
|
& > #{$step-prefix}-item-body {
|
|
width: $step-dot-item-body-width;
|
|
left: - ($step-dot-item-body-width - $node-size - $step-dot-item-dot-padding * 2) / 2;
|
|
text-align: center;
|
|
position: absolute;
|
|
& > #{$step-prefix}-item-title {
|
|
font-size: $step-dot-item-title-size;
|
|
line-height: $step-dot-item-title-size + 4;
|
|
margin-top: $step-dot-item-title-margin-top;
|
|
font-weight: $step-dot-item-title-weight;
|
|
}
|
|
& > #{$step-prefix}-item-content {
|
|
margin-top: $step-dot-item-content-margin-top;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
@if ($type == 'ver') {
|
|
@if ($shape == 'circle') {
|
|
#{$step-prefix}-item-tail {
|
|
width: $step-circle-vertical-item-tail-size;
|
|
height: 0;
|
|
margin: $step-circle-item-node-padding auto;
|
|
#{$step-prefix}-item-tail-underlay {
|
|
height: 100%;
|
|
width: $step-circle-vertical-item-tail-size;
|
|
position: relative;
|
|
}
|
|
#{$step-prefix}-item-tail-overlay {
|
|
position: absolute;
|
|
top: 0;
|
|
height: 100%;
|
|
width: $step-circle-vertical-item-tail-size;
|
|
}
|
|
}
|
|
|
|
& > #{$step-prefix}-item-body {
|
|
position: absolute;
|
|
top: 0;
|
|
left: $node-size / 2;
|
|
margin-left: $step-circle-item-node-padding;
|
|
& > #{$step-prefix}-item-title {
|
|
margin-top: $step-circle-vertical-item-title-margin-top;
|
|
text-align: left;
|
|
font-weight: $step-circle-item-title-weight;
|
|
@include reset-font;
|
|
}
|
|
& > #{$step-prefix}-item-content {
|
|
margin-top: $step-circle-vertical-item-content-margin-top;
|
|
min-height: $s-2;
|
|
text-align: left;
|
|
font-size: $step-circle-item-content-font-size;
|
|
line-height: $step-circle-item-content-font-size + 4;
|
|
}
|
|
}
|
|
}
|
|
|
|
@if ($shape == 'dot') {
|
|
#{$step-prefix}-item-tail {
|
|
width: $step-dot-vertical-item-tail-size;
|
|
height: 0;
|
|
margin: $step-dot-item-dot-padding auto;
|
|
#{$step-prefix}-item-tail-underlay {
|
|
height: 100%;
|
|
width: $step-dot-vertical-item-tail-size;
|
|
position: relative;
|
|
}
|
|
#{$step-prefix}-item-tail-overlay {
|
|
position: absolute;
|
|
top: 0;
|
|
height: 100%;
|
|
width: $step-dot-vertical-item-tail-size;
|
|
}
|
|
}
|
|
|
|
& > #{$step-prefix}-item-body {
|
|
position: absolute;
|
|
top: 0;
|
|
left: $node-size / 2;
|
|
margin-left: $step-dot-item-dot-padding;
|
|
& > #{$step-prefix}-item-title {
|
|
margin-top: $step-dot-vertical-item-title-margin-top;
|
|
font-weight: $step-dot-item-title-weight;
|
|
text-align: left;
|
|
@include reset-font;
|
|
}
|
|
& > #{$step-prefix}-item-content {
|
|
margin-top: $step-dot-vertical-item-content-margin-top;
|
|
min-height: $s-2;
|
|
text-align: left;
|
|
font-size: $step-dot-item-content-font-size;
|
|
line-height: $step-dot-item-content-font-size + 4;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
@mixin label-placement($node-size: $s-8) {
|
|
// 横向布局支持content
|
|
#{$step-prefix}-item:last-child {
|
|
#{$step-prefix}-item-tail {
|
|
display: none;
|
|
}
|
|
}
|
|
#{$step-prefix}-item-body {
|
|
position: relative;
|
|
display: inline-block;
|
|
top: 0;
|
|
left: 0;
|
|
max-width: $step-circle-item-body-width;
|
|
overflow: hidden;
|
|
vertical-align: top;
|
|
text-align: left;
|
|
#{$step-prefix}-item-title {
|
|
display: inline-block;
|
|
padding-right: $step-circle-item-node-padding;
|
|
margin-top: $node-size / 2 - $step-circle-item-title-size / 2;
|
|
}
|
|
}
|
|
#{$step-prefix}-item-tail {
|
|
width: calc(100% - #{($node-size + 2 * $step-circle-item-node-padding + $step-circle-item-body-width)});
|
|
position: absolute;
|
|
right: 0;
|
|
margin-top: -$step-circle-vertical-item-tail-size;
|
|
}
|
|
}
|