tu-view-plus
Version:
497 lines (431 loc) • 11.9 kB
CSS
.tu-slider {
display: inline-flex;
align-items: center;
width: 100%;
}
.tu-slider__track {
position: relative;
flex: 1;
width: 100%;
cursor: pointer;
}
.tu-slider__track::before {
content: "";
position: absolute;
display: block;
width: 100%;
border-radius: var(--tu-border-radius-full, 100px);
box-shadow: inset 2px 2px 5px var(--tu-color-shadow-dark, #babbc0), inset -2px -2px 5px var(--tu-color-shadow-light, #ffffff);
}
.tu-slider__bar {
position: absolute;
top: 50%;
transform: translateY(-50%);
}
.tu-slider__tick {
position: absolute;
top: 0;
width: 1px;
transform: translate(-50%, -50%);
box-shadow: inset 1px 1px 2px var(--tu-color-shadow-dark, #babbc0), inset -1px -1px 2px var(--tu-color-shadow-light, #ffffff), 1px 1px 3px var(--tu-color-shadow-dark, #babbc0), -1px -1px 2px var(--tu-color-shadow-light, #ffffff);
opacity: 0.7;
}
.tu-slider__tick.is-active {
box-shadow: none;
background: var(--tu-color-base-bg, rgba(128, 128, 128, 0.22));
opacity: 0.3;
}
.tu-slider__dots {
width: 8px;
height: 8px;
}
.tu-slider__dot-wrap {
position: absolute;
top: 50%;
transform: translate(-50%, -50%);
}
.tu-slider__dot {
box-sizing: border-box;
border-radius: 50%;
background-color: var(--tu-color-white, #ffffff);
opacity: 0.7;
}
.tu-slider__marks {
position: absolute;
width: 100%;
}
.tu-slider__mark {
position: absolute;
color: var(--tu-color-text, #71757f);
line-height: 1;
transform: translateX(-50%);
cursor: pointer;
font-size: var(--tu-font-size, 14px);
}
.tu-slider__button {
position: absolute;
border-radius: 50%;
-webkit-user-select: none;
-moz-user-select: none;
user-select: none;
width: 18px;
height: 18px;
box-shadow: 0 1px 3px 0px var(--tu-color-shadow-dark, #babbc0);
background-color: var(--tu-color-white, #ffffff);
transition: transform var(--tu-transition-duration-2, 0.2s);
}
.tu-slider__button::after {
content: "";
position: absolute;
border-radius: 50%;
width: 50%;
height: 50%;
box-shadow: inset 2px 2px 5px var(--tu-color-shadow-dark, #babbc0), inset -2px -2px 5px var(--tu-color-shadow-light, #ffffff);
margin: auto;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
.tu-slider__button:hover, .tu-slider__button.hover {
cursor: grab;
}
.tu-slider__button.dragging {
cursor: grabbing;
}
.tu-slider__track--horizontal {
height: 8px;
}
.tu-slider__track--horizontal::before {
height: 8px;
}
.tu-slider__track--horizontal .tu-slider__bar {
height: 8px;
}
.tu-slider__track--horizontal .tu-slider__tick {
height: 8px;
}
.tu-slider__track--horizontal .tu-slider__marks {
top: 18px;
}
.tu-slider__track--horizontal .tu-slider__marks .tu-slider__mark {
font-size: var(--tu-font-size-medium, 14px);
}
.tu-slider__track--horizontal .tu-slider__button {
top: -5px;
left: -9px;
}
.tu-slider__track--vertical {
width: 8px;
}
.tu-slider__track--vertical::before {
width: 8px;
}
.tu-slider__track--vertical .tu-slider__bar {
width: 8px;
}
.tu-slider__track--vertical .tu-slider__marks {
left: 18px;
}
.tu-slider__track--vertical .tu-slider__ticks .tu-slider__tick {
width: 8px;
}
.tu-slider__track.is-disabled::before {
box-shadow: none;
background: var(--tu-color-base-bg, rgba(128, 128, 128, 0.22));
opacity: 0.7;
}
.tu-slider__track.is-disabled .tu-slider__bar {
opacity: 0.3;
background: var(--tu-color-primary, #5e7ce0);
}
.tu-slider__track.is-disabled .tu-slider__button:hover, .tu-slider__track.is-disabled .tu-slider__button.hover {
cursor: not-allowed;
}
.tu-slider__input {
display: flex;
align-items: center;
margin-left: 10px;
}
.tu-slider__input .tu-input-number {
margin-left: 10px;
}
.tu-slider--horizontal .tu-slider__track::before {
top: 50%;
transform: translateY(-50%);
}
.tu-slider--horizontal .tu-slider__track .tu-slider__bar {
border-top-left-radius: var(--tu-border-radius-full, 100px);
border-bottom-left-radius: var(--tu-border-radius-full, 100px);
background: linear-gradient(-45deg, var(--tu-color-primary-dark, #465eb8) 0%, var(--tu-color-primary, #5e7ce0) 50%, var(--tu-color-primary-light, #96adfa) 100%);
}
.tu-slider--horizontal .tu-slider__track .tu-slider__tick {
height: 8px;
top: 5px;
}
.tu-slider--horizontal .tu-slider__track .tu-slider__button {
transform: translateX(-50%);
}
.tu-slider--horizontal .tu-slider__track .tu-slider__button:hover, .tu-slider--horizontal .tu-slider__track .tu-slider__button.hover, .tu-slider--horizontal .tu-slider__track .tu-slider__button.dragging {
transform: scale(1.1) translateX(-50%);
}
.tu-slider--vertical {
display: inline-block;
width: auto;
height: auto;
}
.tu-slider--vertical .tu-slider__track {
height: 100%;
min-height: 200px;
margin-right: 0;
transform: translateY(0);
}
.tu-slider--vertical .tu-slider__track::before {
top: unset;
left: 50%;
height: 100%;
transform: translateX(-50%);
}
.tu-slider--vertical .tu-slider__track .tu-slider__bar {
top: unset;
left: 50%;
height: unset;
transform: translateX(-50%);
border-bottom-left-radius: var(--tu-border-radius-full, 100px);
border-bottom-right-radius: var(--tu-border-radius-full, 100px);
background: linear-gradient(180deg, var(--tu-color-primary-dark, #465eb8) 0%, var(--tu-color-primary, #5e7ce0) 50%, var(--tu-color-primary-light, #96adfa) 100%);
}
.tu-slider--vertical .tu-slider__track .tu-slider__ticks .tu-slider__tick {
top: unset;
left: 50%;
height: 1px;
}
.tu-slider--vertical .tu-slider__track .tu-slider__marks {
top: 0;
height: 100%;
}
.tu-slider--vertical .tu-slider__track .tu-slider__marks .tu-slider__mark {
transform: translateY(50%);
}
.tu-slider--vertical .tu-slider__track .tu-slider__dots .tu-slider__dot-wrap {
top: unset;
left: 50%;
transform: translate(-50%, 50%);
}
.tu-slider--vertical .tu-slider__track .tu-slider__button {
bottom: 0;
transform: translateY(50%);
left: -5px;
}
.tu-slider--vertical .tu-slider__track .tu-slider__button:hover, .tu-slider--vertical .tu-slider__track .tu-slider__button.hover, .tu-slider--vertical .tu-slider__track .tu-slider__button.dragging {
transform: scale(1.1) translateY(50%);
}
.tu-slider--mini .tu-slider__track .tu-slider__dot {
width: 4px;
height: 4px;
}
.tu-slider--mini .tu-slider__track .tu-slider__button {
width: 10px;
height: 10px;
}
.tu-slider--mini .tu-slider__track--horizontal {
height: 4px;
}
.tu-slider--mini .tu-slider__track--horizontal::before {
height: 100%;
box-shadow: inset 1px 1px 2px var(--tu-color-shadow-dark, #babbc0), inset -1px -1px 2px var(--tu-color-shadow-light, #ffffff);
}
.tu-slider--mini .tu-slider__track--horizontal .tu-slider__bar {
height: 4px;
}
.tu-slider--mini .tu-slider__track--horizontal .tu-slider__tick {
height: 4px;
top: 3px;
}
.tu-slider--mini .tu-slider__track--horizontal .tu-slider__marks {
top: 10px;
}
.tu-slider--mini .tu-slider__track--horizontal .tu-slider__marks .tu-slider__mark {
font-size: var(--tu-font-size-mini, 10px);
}
.tu-slider--mini .tu-slider__track--horizontal .tu-slider__button {
top: -3px;
left: -5px;
}
.tu-slider--mini .tu-slider__track--vertical {
width: 4px;
}
.tu-slider--mini .tu-slider__track--vertical::before {
width: 100%;
box-shadow: inset 1px 1px 2px var(--tu-color-shadow-dark, #babbc0), inset -1px -1px 2px var(--tu-color-shadow-light, #ffffff);
}
.tu-slider--mini .tu-slider__track--vertical .tu-slider__bar {
width: 4px;
}
.tu-slider--mini .tu-slider__track--vertical .tu-slider__marks {
left: 12px;
}
.tu-slider--mini .tu-slider__track--vertical .tu-slider__ticks .tu-slider__tick {
width: 4px;
}
.tu-slider--mini .tu-slider__track--vertical .tu-slider__button {
left: -3px;
}
.tu-slider--mini.tu-slider--vertical {
min-width: 10px;
}
.tu-slider--small .tu-slider__track .tu-slider__dot {
width: 6px;
height: 6px;
}
.tu-slider--small .tu-slider__track .tu-slider__button {
width: 14px;
height: 14px;
}
.tu-slider--small .tu-slider__track--horizontal {
height: 6px;
}
.tu-slider--small .tu-slider__track--horizontal::before {
height: 100%;
}
.tu-slider--small .tu-slider__track--horizontal .tu-slider__bar {
height: 6px;
}
.tu-slider--small .tu-slider__track--horizontal .tu-slider__tick {
height: 6px;
top: 4px;
}
.tu-slider--small .tu-slider__track--horizontal .tu-slider__marks {
top: 14px;
}
.tu-slider--small .tu-slider__track--horizontal .tu-slider__marks .tu-slider__mark {
font-size: var(--tu-font-size-small, 12px);
}
.tu-slider--small .tu-slider__track--horizontal .tu-slider__button {
top: -4px;
left: -7px;
}
.tu-slider--small .tu-slider__track--vertical {
width: 6px;
}
.tu-slider--small .tu-slider__track--vertical::before {
width: 100%;
}
.tu-slider--small .tu-slider__track--vertical .tu-slider__bar {
width: 6px;
}
.tu-slider--small .tu-slider__track--vertical .tu-slider__marks {
left: 16px;
}
.tu-slider--small .tu-slider__track--vertical .tu-slider__ticks .tu-slider__tick {
width: 6px;
}
.tu-slider--small .tu-slider__track--vertical .tu-slider__button {
left: -4px;
}
.tu-slider--small.tu-slider--vertical {
min-width: 14px;
}
.tu-slider--medium .tu-slider__track .tu-slider__dot {
width: 8px;
height: 8px;
}
.tu-slider--medium .tu-slider__track .tu-slider__button {
width: 18px;
height: 18px;
}
.tu-slider--medium .tu-slider__track--horizontal {
height: 8px;
}
.tu-slider--medium .tu-slider__track--horizontal::before {
height: 100%;
}
.tu-slider--medium .tu-slider__track--horizontal .tu-slider__bar {
height: 8px;
}
.tu-slider--medium .tu-slider__track--horizontal .tu-slider__tick {
height: 8px;
top: 5px;
}
.tu-slider--medium .tu-slider__track--horizontal .tu-slider__marks {
top: 18px;
}
.tu-slider--medium .tu-slider__track--horizontal .tu-slider__marks .tu-slider__mark {
font-size: var(--tu-font-size-medium, 14px);
}
.tu-slider--medium .tu-slider__track--horizontal .tu-slider__button {
top: -5px;
left: -9px;
}
.tu-slider--medium .tu-slider__track--vertical {
width: 8px;
}
.tu-slider--medium .tu-slider__track--vertical::before {
width: 100%;
}
.tu-slider--medium .tu-slider__track--vertical .tu-slider__bar {
width: 8px;
}
.tu-slider--medium .tu-slider__track--vertical .tu-slider__marks {
left: 20px;
}
.tu-slider--medium .tu-slider__track--vertical .tu-slider__ticks .tu-slider__tick {
width: 8px;
}
.tu-slider--medium .tu-slider__track--vertical .tu-slider__button {
left: -5px;
}
.tu-slider--medium.tu-slider--vertical {
min-width: 18px;
}
.tu-slider--large .tu-slider__track .tu-slider__dot {
width: 10px;
height: 10px;
}
.tu-slider--large .tu-slider__track .tu-slider__button {
width: 22px;
height: 22px;
}
.tu-slider--large .tu-slider__track--horizontal {
height: 10px;
}
.tu-slider--large .tu-slider__track--horizontal::before {
height: 100%;
}
.tu-slider--large .tu-slider__track--horizontal .tu-slider__bar {
height: 10px;
}
.tu-slider--large .tu-slider__track--horizontal .tu-slider__tick {
height: 10px;
top: 6px;
}
.tu-slider--large .tu-slider__track--horizontal .tu-slider__marks {
top: 22px;
}
.tu-slider--large .tu-slider__track--horizontal .tu-slider__marks .tu-slider__mark {
font-size: var(--tu-font-size-large, 14px);
}
.tu-slider--large .tu-slider__track--horizontal .tu-slider__button {
top: -6px;
left: -11px;
}
.tu-slider--large .tu-slider__track--vertical {
width: 10px;
}
.tu-slider--large .tu-slider__track--vertical::before {
width: 100%;
}
.tu-slider--large .tu-slider__track--vertical .tu-slider__bar {
width: 10px;
}
.tu-slider--large .tu-slider__track--vertical .tu-slider__marks {
left: 24px;
}
.tu-slider--large .tu-slider__track--vertical .tu-slider__ticks .tu-slider__tick {
width: 10px;
}
.tu-slider--large .tu-slider__track--vertical .tu-slider__button {
left: -6px;
}
.tu-slider--large.tu-slider--vertical {
min-width: 22px;
}