@nutui/nutui-react-taro
Version:
京东风格的轻量级移动端 React 组件库,支持一套代码生成 H5 和小程序
172 lines (167 loc) • 5.82 kB
CSS
/* #ifdef harmony */
/* #endif */
/* #ifndef harmony */
/* #endif */
.nut-indicator {
display: flex;
width: auto;
flex-direction: row;
flex-wrap: nowrap;
align-items: center;
}
.nut-indicator-fixed-width {
width: var(--nutui-indicator-track-width, 24px);
}
.nut-indicator-dot, .nut-indicator-line {
display: inline-block;
vertical-align: middle;
width: var(--nutui-indicator-dot-size, 6px);
height: var(--nutui-indicator-dot-size, 6px);
border-radius: 50%;
background-color: var(--nutui-indicator-dot-inactive-color, #f0f2f7);
border: var(--nutui-indicator-dot-border, 0.33px solid var(--nutui-color-border));
box-sizing: border-box;
margin-left: var(--nutui-indicator-dot-margin, var(--nutui-spacing-xs));
}
.nut-indicator-dot-0, .nut-indicator-line-0 {
margin-left: 0;
}
.nut-indicator-dot-active, .nut-indicator-line-active {
width: var(--nutui-indicator-dot-active-size, 20px);
height: var(--nutui-indicator-dot-size, 6px);
border-radius: var(--nutui-indicator-border-radius, 2px);
background: var(--nutui-indicator-color, var(--nutui-color-primary));
border: var(--nutui-indicator-dot-border, 0.33px solid var(--nutui-color-border));
}
.nut-indicator-fixed-width .nut-indicator-dot {
width: var(--nutui-indicator-dual-screen-inactive-width, 16px);
height: var(--nutui-indicator-dot-size, 6px);
border-radius: var(--nutui-indicator-border-radius, 2px);
}
.nut-indicator-fixed-width .nut-indicator-dot-active {
width: var(--nutui-indicator-dot-active-size, 20px);
height: var(--nutui-indicator-dot-size, 6px);
}
.nut-indicator-vertical.nut-indicator-fixed-width {
justify-content: flex-start;
height: var(--nutui-indicator-track-width, 24px);
width: auto;
}
.nut-indicator-vertical.nut-indicator-fixed-width .nut-indicator-dot {
width: var(--nutui-indicator-dot-size, 6px);
height: var(--nutui-indicator-dual-screen-inactive-width, 16px);
border-radius: var(--nutui-indicator-border-radius, 2px);
}
.nut-indicator-vertical.nut-indicator-fixed-width .nut-indicator-dot-active {
width: var(--nutui-indicator-dot-size, 6px);
height: var(--nutui-indicator-dot-active-size, 20px);
}
.nut-indicator-line {
width: var(--nutui-indicator-slider-width, 8px);
margin: 0;
border-radius: var(--nutui-indicator-border-radius, 2px);
background-color: transparent;
border: none;
}
.nut-indicator-line-active {
position: relative;
z-index: 1;
transition: transform 0.3s ease-in-out;
background: var(--nutui-indicator-color, var(--nutui-color-primary));
border: var(--nutui-indicator-dot-border, 0.33px solid var(--nutui-color-border));
transform: translateX(calc(var(--nutui-indicator-current, 0) / (var(--nutui-indicator-total, 2) - 1) * (var(--nutui-indicator-track-width, 24px) - var(--nutui-indicator-slider-width, 8px))));
}
.nut-indicator-outside {
margin-top: var(--nutui-indicator-placement-gap, 8px);
margin-bottom: var(--nutui-indicator-placement-safe-gap, 12px);
justify-content: center;
}
.nut-indicator-inside-top-right {
position: absolute;
top: var(--nutui-indicator-placement-gap, 8px);
right: var(--nutui-indicator-placement-gap, 8px);
}
.nut-indicator-inside-bottom-center {
position: absolute;
bottom: var(--nutui-indicator-placement-gap, 8px);
left: 50%;
transform: translateX(-50%);
}
.nut-indicator-inside-bottom-left {
position: absolute;
bottom: var(--nutui-indicator-placement-gap, 8px);
left: var(--nutui-indicator-placement-gap, 8px);
}
.nut-indicator-track {
position: relative;
}
.nut-indicator-track:after {
display: block;
content: " ";
position: absolute;
width: 100%;
height: 100%;
box-sizing: border-box;
border-radius: var(--nutui-indicator-border-radius, 2px);
background-color: var(--nutui-indicator-dot-inactive-color, #f0f2f7);
border: var(--nutui-indicator-dot-border, 0.33px solid var(--nutui-color-border));
}
.nut-indicator-white .nut-indicator-dot, .nut-indicator-white .nut-indicator-line {
position: relative;
background: var(--nutui-color-text-dark);
opacity: 0.4;
}
.nut-indicator-white .nut-indicator-line {
opacity: 0;
}
.nut-indicator-white .nut-indicator-line-active {
opacity: 1;
background: var(--nutui-color-text-dark);
}
.nut-indicator-white .nut-indicator-dot-active {
background: var(--nutui-color-text-dark);
opacity: 1;
}
.nut-indicator-track.nut-indicator-white:after {
background: var(--nutui-color-text-dark);
opacity: 0.4;
}
.nut-indicator-vertical {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
.nut-indicator-vertical .nut-indicator-dot {
margin: 0;
margin-top: var(--nutui-indicator-dot-margin, var(--nutui-spacing-xs));
}
.nut-indicator-vertical .nut-indicator-dot-0 {
margin-top: 0;
}
.nut-indicator-vertical .nut-indicator-dot-active {
width: var(--nutui-indicator-dot-size, 6px);
height: var(--nutui-indicator-dot-active-size, 20px);
}
.nut-indicator-vertical.nut-indicator-track .nut-indicator-line {
width: var(--nutui-indicator-dot-size, 6px);
height: var(--nutui-indicator-slider-width, 8px);
}
.nut-indicator-vertical.nut-indicator-track .nut-indicator-line-active {
transform: translateY(calc(var(--nutui-indicator-current, 0) / (var(--nutui-indicator-total, 2) - 1) * (var(--nutui-indicator-track-width, 24px) - var(--nutui-indicator-slider-width, 8px))));
}
[dir=rtl] .nut-indicator-dot-0,
.nut-rtl .nut-indicator-dot-0 {
margin-right: var(--nutui-indicator-dot-margin, var(--nutui-spacing-xs));
margin-left: 0;
}
[dir=rtl] .nut-indicator-inside-top-right,
.nut-rtl .nut-indicator-inside-top-right {
right: auto;
left: var(--nutui-indicator-placement-gap, 8px);
}
[dir=rtl] .nut-indicator-inside-bottom-left,
.nut-rtl .nut-indicator-inside-bottom-left {
left: auto;
right: var(--nutui-indicator-placement-gap, 8px);
}