xdesign-vue-next
Version:
XDesign Component for vue-next
201 lines (200 loc) • 4.63 kB
CSS
.x-slider__input-container {
display: flex;
align-items: center;
margin-left: var(--td-comp-margin-xxl);
}
.x-slider__input-container.is-vertical {
padding-top: var(--td-comp-paddingTB-l);
margin-left: 0px;
}
.x-slider__input-container .x-slider__center-line {
width: var(--td-size-4);
height: 1px;
background: rgba(0, 0, 0, 0.9);
margin: 0 var(--td-comp-margin-s);
}
.x-slider {
font: var(--td-font-body-medium);
color: var(--td-text-color-primary);
box-sizing: border-box;
margin: 0;
padding: 0;
list-style: none;
height: calc(var(--td-comp-paddingTB-xs) * 2 + var(--td-size-2));
width: 100%;
position: relative;
padding: var(--td-comp-paddingTB-xs) 0;
}
.x-slider__container {
width: 100%;
display: flex;
justify-content: center;
align-items: center;
}
.x-slider__container.is-vertical {
height: 100%;
flex-direction: column;
}
.x-slider__rail {
position: absolute;
width: 100%;
height: var(--td-size-2);
background-color: var(--td-bg-color-secondarycomponent);
transition: 0.2s linear;
border-radius: var(--td-radius-round);
}
.x-slider__rail:hover {
background-color: var(--td-bg-color-secondarycomponent-hover);
}
.x-slider__track {
position: absolute;
height: var(--td-size-2);
background-color: var(--td-brand-color);
right: auto;
border-radius: var(--td-radius-round);
}
.x-slider__step {
position: absolute;
width: 100%;
height: var(--td-size-2);
cursor: pointer;
}
.x-slider__button {
width: var(--td-comp-size-xxxs);
height: var(--td-comp-size-xxxs);
border: 2px solid var(--td-brand-color);
background-color: #fff;
border-radius: var(--td-radius-circle);
transition: 0.2s;
user-select: none;
box-sizing: border-box;
box-shadow: var(--td-shadow-1);
}
.x-slider__button--dragging {
box-shadow: 0 0 0px 2px var(--td-brand-color-focus);
}
.x-slider__button:hover {
background-color: var(--td-gray-color-1);
}
.x-slider__button-wrapper {
position: absolute;
z-index: 2;
top: 50%;
transform: translate(-50%, -50%);
background-color: transparent;
text-align: center;
user-select: none;
line-height: normal;
outline: none;
cursor: pointer;
display: flex;
align-items: center;
}
.x-slider__stop {
position: absolute;
width: 1px;
height: var(--td-size-2);
background-color: var(--td-bg-color-secondarycomponent);
top: 4px;
}
.x-slider__mark {
position: absolute;
top: 2px;
left: 0;
width: 100%;
}
.x-slider__mark-text {
position: absolute;
display: inline-block;
font: var(--td-font-body-small);
color: var(--td-text-color-primary);
top: calc(var(--td-size-2) + var(--td-comp-paddingTB-xs) + 2px);
transform: translateX(-50%);
cursor: pointer;
}
.x-slider__mark-text:first-child {
transform: translateX(0%);
}
.x-slider__mark-text:last-child {
transform: translateX(-100%);
}
.x-slider--vertical {
height: 100%;
padding: 0;
display: flex;
justify-content: center;
position: relative;
}
.x-slider--vertical .x-slider__rail {
width: var(--td-size-2);
height: 100%;
}
.x-slider--vertical .x-slider__track {
width: var(--td-size-2);
top: auto;
}
.x-slider--vertical .x-slider__step {
width: var(--td-size-2);
height: 100%;
}
.x-slider--vertical .x-slider__handle {
margin-top: -6px;
margin-left: -5px;
top: auto;
transform: translateY(50%);
}
.x-slider--vertical .x-slider__mark {
top: 0;
left: 12px;
width: 18px;
height: 100%;
}
.x-slider--vertical .x-slider__stop {
width: var(--td-size-2);
height: 1px;
left: 4px;
background-color: var(--td-bg-color-secondarycomponent);
}
.x-slider--vertical .x-slider__mark-text {
transform: translateY(-50%);
margin-top: 0;
margin-left: var(--td-comp-margin-xxs);
}
.x-slider--vertical .x-slider__button-wrapper {
top: auto;
position: absolute;
z-index: 2;
left: 50%;
transform: translate(-50%, 50%);
background-color: transparent;
text-align: center;
user-select: none;
line-height: normal;
outline: none;
cursor: pointer;
display: flex;
align-items: center;
}
.x-is-disabled {
cursor: not-allowed;
}
.x-is-disabled .x-slider__track {
background-color: var(--td-brand-color-disabled);
}
.x-is-disabled .x-slider__rail {
background-color: var(--td-bg-color-component-disabled);
}
.x-is-disabled .x-slider__handle {
border: 2px solid var(--td-brand-color-disabled);
}
.x-is-disabled .x-slider__button {
border-color: var(--td-brand-color-disabled);
outline: none;
}
.x-is-disabled .x-slider__mark-text {
color: var(--td-text-color-disabled);
cursor: not-allowed;
}
.x-is-disabled .x-slider__button-wrapper {
cursor: not-allowed;
}