zarm
Version:
基于 React 的移动端UI库
204 lines (174 loc) • 4.42 kB
CSS
.za-progress {
--background: var(--za-progress-background, #f2f2f2);
--width: var(--za-progress-width, 100%);
--size: var(--za-progress-size, 150px);
--font-size: var(--za-progress-font-size, 24px);
display: inline-block;
position: relative;
}
.za-progress__outer {
display: flex;
align-items: center;
}
.za-progress__text {
display: inline-block;
margin-left: 5px;
}
.za-progress--line.za-progress--primary .za-progress__thumb {
background-color: var(--za-theme-primary);
}
.za-progress--line.za-progress--success .za-progress__thumb {
background-color: var(--za-theme-success);
}
.za-progress--line.za-progress--warning .za-progress__thumb {
background-color: var(--za-theme-warning);
}
.za-progress--line.za-progress--danger .za-progress__thumb {
background-color: var(--za-theme-danger);
}
.za-progress--line.za-progress--lg {
width: 100%;
}
.za-progress--line.za-progress--lg .za-progress__text {
font-size: 16px;
}
.za-progress--line.za-progress--md {
width: var(--width);
}
.za-progress--line.za-progress--md .za-progress__text {
font-size: calc(var(--font-size) * 2 / 3);
}
.za-progress--line.za-progress--sm {
width: 140px;
}
.za-progress--line.za-progress--sm .za-progress__text {
font-size: 14px;
}
.za-progress--line .za-progress__track {
width: 100%;
height: 100%;
background: var(--background);
overflow: hidden;
}
.za-progress--line .za-progress__thumb {
height: 100%;
width: 0;
transition: width 0.6s ease, background-color 0.6s ease;
}
.za-progress--circle {
display: inline-block;
}
.za-progress--circle .za-progress__track {
stroke: var(--background);
fill-opacity: 0;
}
.za-progress--circle .za-progress__thumb {
fill-opacity: 0;
transition: stroke-dashoffset 0.6s ease, stroke 0.6s ease;
}
.za-progress--circle.za-progress--primary .za-progress__thumb {
stroke: var(--za-theme-primary);
}
.za-progress--circle.za-progress--success .za-progress__thumb {
stroke: var(--za-theme-success);
}
.za-progress--circle.za-progress--warning .za-progress__thumb {
stroke: var(--za-theme-warning);
}
.za-progress--circle.za-progress--danger .za-progress__thumb {
stroke: var(--za-theme-danger);
}
.za-progress--circle svg {
width: 100%;
height: 100%;
}
.za-progress--circle .za-progress__text {
display: block;
position: absolute;
top: 50%;
left: 0;
width: 100%;
margin: 0;
text-align: center;
line-height: 1;
transform: translateY(-50%);
}
.za-progress--circle.za-progress--lg {
width: 200px;
height: 200px;
}
.za-progress--circle.za-progress--lg .za-progress__text {
font-size: 30px;
}
.za-progress--circle.za-progress--md {
width: var(--size);
height: var(--size);
}
.za-progress--circle.za-progress--md .za-progress__text {
font-size: var(--font-size);
}
.za-progress--circle.za-progress--sm {
width: 80px;
height: 80px;
}
.za-progress--circle.za-progress--sm .za-progress__text {
font-size: 18px;
}
.za-progress--semi-circle {
display: inline-block;
}
.za-progress--semi-circle .za-progress__track {
stroke: var(--background);
fill-opacity: 0;
}
.za-progress--semi-circle .za-progress__thumb {
fill-opacity: 0;
transition: stroke-dashoffset 0.6s ease, stroke 0.6s ease;
}
.za-progress--semi-circle.za-progress--primary .za-progress__thumb {
stroke: var(--za-theme-primary);
}
.za-progress--semi-circle.za-progress--success .za-progress__thumb {
stroke: var(--za-theme-success);
}
.za-progress--semi-circle.za-progress--warning .za-progress__thumb {
stroke: var(--za-theme-warning);
}
.za-progress--semi-circle.za-progress--danger .za-progress__thumb {
stroke: var(--za-theme-danger);
}
.za-progress--semi-circle svg {
width: 100%;
height: 100%;
}
.za-progress--semi-circle .za-progress__text {
display: block;
position: absolute;
bottom: 0;
left: 0;
width: 100%;
margin: 0;
text-align: center;
line-height: 1;
}
.za-progress--semi-circle.za-progress--lg {
width: 200px;
height: 100px;
}
.za-progress--semi-circle.za-progress--lg .za-progress__text {
font-size: 30px;
}
.za-progress--semi-circle.za-progress--md {
width: var(--size);
height: calc(var(--size) / 2);
}
.za-progress--semi-circle.za-progress--md .za-progress__text {
font-size: var(--font-size);
}
.za-progress--semi-circle.za-progress--sm {
width: 80px;
height: 40px;
}
.za-progress--semi-circle.za-progress--sm .za-progress__text {
font-size: 18px;
}