zent
Version:
一套前端设计语言和基于React的实现
218 lines (217 loc) • 6.05 kB
CSS
.zent-slider {
display: flex;
align-items: center;
min-height: 30px;
padding: 8px 7px;
}
.zent-slider-main {
background-color: rgba(0, 0, 0, 0.05);
flex: 1;
height: 14px;
cursor: pointer;
position: relative;
border-top: 5px solid transparent;
border-bottom: 5px solid transparent;
border-radius: 8px;
box-sizing: border-box;
-webkit-user-select: none;
user-select: none;
background-clip: content-box;
}
.zent-slider-main:hover .zent-slider-track {
background-color: #155bd4;
background-color: var(--theme-primary-bg, var(--theme-primary-4, #155bd4));
}
.zent-slider-main:hover .zent-slider-track-disabled {
background-color: #ccc;
background-color: var(--theme-disabled-color, var(--theme-stroke-4, #ccc));
}
.zent-slider-main:hover .zent-slider-track-disabled:hover {
background-color: #ccc;
background-color: var(--theme-disabled-color, var(--theme-stroke-4, #ccc));
}
.zent-slider-track {
background-color: #155bd4;
background-color: var(--theme-primary-bg, var(--theme-primary-4, #155bd4));
height: 4px;
position: absolute;
border-radius: 8px;
}
.zent-slider-track:hover {
background-color: #155bd4;
background-color: var(--theme-primary-bg, var(--theme-primary-4, #155bd4));
}
.zent-slider-track-disabled {
background-color: #ccc;
background-color: var(--theme-disabled-color, var(--theme-stroke-4, #ccc));
}
.zent-slider-track-disabled:hover {
background-color: #ccc;
background-color: var(--theme-disabled-color, var(--theme-stroke-4, #ccc));
}
.zent-slider-point {
border-color: #155bd4;
border-color: var(--theme-primary-bg, var(--theme-primary-4, #155bd4));
background-color: #fff;
background-color: var(--theme-section-bg, var(--theme-stroke-9, #fff));
box-sizing: border-box;
width: 12px;
height: 12px;
border-radius: 50%;
border-width: 2px;
border-style: solid;
cursor: pointer;
position: relative;
z-index: 1;
transition: border-color 0.3s ease, height 0.1s linear, width 0.1s linear, transform 0.3s cubic-bezier(0.18, 0.89, 0.32, 1.28);
}
.zent-slider-point:hover:not(.zent-slider-point-disabled) {
height: 16px;
width: 16px;
}
.zent-slider-point:active:not(.zent-slider-point-disabled) {
color: #155bd4;
color: var(--theme-primary-bg, var(--theme-primary-4, #155bd4));
transform-origin: center center;
height: 16px;
width: 16px;
cursor: pointer;
}
.zent-slider-point:active:not(.zent-slider-point-disabled)::after {
border-color: rgba(21, 91, 212, 0.15);
border-color: rgba(var(--theme-rgb-primary-bg, var(--theme-rgb-primary-4, 21, 91, 212)), 0.15);
border-style: solid;
border-width: 6px;
width: 16px;
height: 16px;
content: "";
display: inline-block;
border-radius: 50%;
position: absolute;
left: -8px;
top: -8px;
}
.zent-slider-point-disabled {
border-color: #ccc;
border-color: var(--theme-disabled-color, var(--theme-stroke-4, #ccc));
border-width: 2px;
border-style: solid;
cursor: not-allowed;
}
.zent-slider-point-disabled:hover {
border-color: #ccc;
border-color: var(--theme-disabled-color, var(--theme-stroke-4, #ccc));
transform: scale(1);
transform-origin: center center;
}
.zent-slider-tooltip {
position: absolute;
cursor: initial;
z-index: 1;
top: 50%;
transform: translate(-50%, -50%);
}
.zent-slider-tooltip-content {
font-size: 14px;
line-height: 20px;
background-color: #333;
background-color: var(--theme-title-color, var(--theme-stroke-1, #333));
color: #fff;
color: var(--theme-section-bg, var(--theme-stroke-9, #fff));
position: absolute;
top: -48px;
padding: 8px 10px;
border-radius: 2px;
line-height: 14px;
z-index: 2;
white-space: nowrap;
left: 50%;
transform: translateX(-50%);
height: 32px;
box-sizing: border-box;
display: none;
}
.zent-slider-tooltip:after {
background-color: #333;
background-color: var(--theme-title-color, var(--theme-stroke-1, #333));
content: "";
transform: translate(-50%, 50%) rotate(45deg);
width: 8px;
height: 8px;
top: -24px;
position: absolute;
left: 50%;
display: none;
}
.zent-slider-tooltip-active .zent-slider-tooltip-content, .zent-slider-tooltip:hover .zent-slider-tooltip-content {
display: block;
}
.zent-slider-tooltip-active:after, .zent-slider-tooltip:hover:after {
display: block;
}
.zent-slider-tooltip-active .zent-slider-point {
color: #155bd4;
color: var(--theme-primary-bg, var(--theme-primary-4, #155bd4));
transform-origin: center center;
height: 16px;
width: 16px;
cursor: pointer;
}
.zent-slider-tooltip-active .zent-slider-point::after {
border-color: rgba(21, 91, 212, 0.15);
border-color: rgba(var(--theme-rgb-primary-bg, var(--theme-rgb-primary-4, 21, 91, 212)), 0.15);
border-style: solid;
border-width: 6px;
width: 16px;
height: 16px;
content: "";
display: inline-block;
border-radius: 50%;
position: absolute;
left: -8px;
top: -8px;
}
.zent-slider-input {
display: flex;
margin-left: 24px;
line-height: 30px;
}
.zent-slider-input .slider-input-line {
padding: 0 5px;
}
.zent-slider-input .zent-input-wrapper, .zent-slider-input.zent-input-wrapper {
width: 60px;
}
.zent-slider-input .zent-input-wrapper .zent-input, .zent-slider-input.zent-input-wrapper .zent-input {
min-width: 60px;
}
.zent-slider-mark {
position: absolute;
padding-top: 12px;
transform: translateX(-50%);
cursor: initial;
}
.zent-slider-dot {
background-color: #fff;
background-color: var(--theme-section-bg, var(--theme-stroke-9, #fff));
border-color: #e0e0e0;
border-color: var(--theme-default-border-color, var(--theme-stroke-6, #e0e0e0));
position: absolute;
display: inline-block;
width: 6px;
margin-top: -2px;
transform: translateX(-50%);
height: 6px;
border-width: 1px;
border-style: solid;
border-radius: 50%;
}
.zent-slider-dot-active {
border-color: #356fd4;
border-color: var(--theme-primary-hover-bg, var(--theme-primary-6, #356fd4));
border-width: 1px;
border-style: solid;
}
.zent-slider-disabled .zent-slider-main {
cursor: not-allowed;
}