element-ui
Version:
A Component Library for Vue.js.
208 lines (186 loc) • 4.88 kB
CSS
@charset "UTF-8";
@import "./input-number.css";
@import "./tooltip.css";
@import "./common/var.css";
@component-namespace el {
@b slider {
@utils-clearfix;
@e runway {
width: 100%;
height: var(--slider-height);
margin: var(--slider-margin);
background-color: var(--slider-runway-background-color);
border-radius: var(--slider-border-radius);
position: relative;
cursor: pointer;
vertical-align: middle;
&.show-input {
margin-right: 160px;
width: auto;
}
&.disabled {
cursor: default;
.el-slider__bar, .el-slider__button {
background-color: var(--slider-disable-color);
}
.el-slider__button-wrapper {
&:hover,
&.hover {
cursor: not-allowed;
}
&.dragging {
cursor: not-allowed;
}
}
.el-slider__button {
&:hover,
&.hover,
&.dragging {
transform: scale(1);
}
&:hover,
&.hover {
cursor: not-allowed;
}
&.dragging {
cursor: not-allowed;
}
}
}
}
@e input {
float: right;
margin-top: 3px;
}
@e bar {
height: var(--slider-height);
background-color: var(--slider-main-background-color);
border-top-left-radius: var(--slider-border-radius);
border-bottom-left-radius: var(--slider-border-radius);
position: absolute;
}
@e button-wrapper {
size: var(--slider-button-wrapper-size);
position: absolute;
z-index: 1001;
top: var(--slider-button-wrapper-offset);
transform: translateX(-50%);
background-color: transparent;
text-align: center;
user-select: none;
@utils-vertical-center;
.el-tooltip {
vertical-align: middle;
display: inline-block;
}
&:hover,
&.hover {
cursor: grab;
}
&.dragging {
cursor: grabbing;
}
}
@e button {
size: var(--slider-button-size);
background-color: var(--slider-main-background-color);
border-radius: 50%;
transition: .2s;
user-select: none;
&:hover,
&.hover,
&.dragging {
transform: scale(1.5);
background-color: var(--slider-button-hover-color);
}
&:hover,
&.hover {
cursor: grab;
}
&.dragging {
cursor: grabbing;
}
}
@e stop {
position: absolute;
size: var(--slider-height);
border-radius: var(--border-radius-circle);
background-color: var(--slider-stop-background-color);
transform: translateX(-50%);
}
@when vertical {
position: relative;
.el-slider__runway {
width: 4px;
height: 100%;
margin: 0 16px;
}
.el-slider__bar {
width: 4px;
height: auto;
border-radius: 0 0 3px 3px;
}
.el-slider__button-wrapper {
top: auto;
left: var(--slider-button-wrapper-offset);
transform: translateY(50%);
}
.el-slider__stop {
transform: translateY(50%);
}
&.el-slider--with-input {
padding-bottom: calc(var(--input-large-height) + 22px);
.el-slider__input {
overflow: visible;
float: none;
position: absolute;
bottom: 22px;
width: 36px;
margin-top: 15px;
.el-input__inner {
text-align: center;
padding-left: 5px;
padding-right: 5px;
}
.el-input-number__decrease,
.el-input-number__increase
{
top: var(--input-small-height);
margin-top: -1px;
border: var(--input-border);
line-height: 20px;
box-sizing: border-box;
transition: var(--border-transition-base);
}
.el-input-number__decrease {
width: 18px;
right: 18px;
border-bottom-left-radius: var(--input-border-radius);
}
.el-input-number__increase {
width: 19px;
border-bottom-right-radius: var(--input-border-radius);
& ~ .el-input .el-input__inner {
border-bottom-left-radius: 0;
border-bottom-right-radius: 0;
}
}
&:hover {
.el-input-number__decrease,
.el-input-number__increase
{
border-color: var(--input-hover-border);
}
}
&:active {
.el-input-number__decrease,
.el-input-number__increase
{
border-color: var(--input-focus-border);
}
}
}
}
}
}
}