@opensig/opendesign
Version:
184 lines (163 loc) • 4.95 kB
CSS
.o-slider {
--_input-text-align: center;
--slider-height: 32px;
--slider-runway-wrap-padding: 0 4px;
--slider-runway-wrap-bg: var(--o-color-control4);
--slider-runway-height: 4px;
--slider-bar-height: 4px;
--slider-bar-bg: var(--o-color-control2);
--slider-btn-wrap-width: 60px;
--slider-btn-width: 16px;
--slider-btn-bg: var(--o-color-info1-inverse);
--slider-btn-border: 4px solid var(--o-color-control4);
--slider-btn-shadow: var(--o-shadow-1);
--slider-btn-cursor: pointer;
--slider-circle-width: 6px;
--slider-circle-bg: var(--o-color-main1);
--slider-stop-width: 2px;
--slider-stop-bg: var(--o-color-info4);
--slider-marks-font-size: var(--o-font_size-tip1);
--slider-marks-line-height: var(--o-line_height-tip1);
--slider-marks-gap: 8px;
--slider-input-width: 60px;
--slider-input-unit-gap: 8px;
--slider-popover-font-size: var(--o-font_size-text1);
--slider-popover-line-height: var(--o-line_height-text1);
--slider-unit-font-size: var(--o-font_size-tip2);
--slider-unit-line-height: var(--o-line_height-tip2);
--sldier-unit-color: var(--o-color-info3);
}
.o-slider-with-input {
--slider-runway-wrap-gap: 12px;
}
.o-slider-with-stops {
--slider-bar-bg-image: var(--o-color-main2);
--slider-btn-width: 20px;
--slider-runway-height: 8px;
--slider-bar-height: 10px;
}
.o-slider-disabled {
--slider-btn-cursor: not-allowed;
--slider-circle-bg: var(--o-color-control4);
}
.o-slider-stop-reached {
--slider-stop-bg: var(--o-color-info1-inverse);
}
.o-slider-btn-wrap-hover {
--slider-btn-width: 24px;
}
.o-slider-popover {
--popup-padding: 2px 6px;
}
.o-slider {
display: flex;
align-items: center;
width: 100%;
height: var(--slider-height);
}
.o-slider-runway-wrap {
width: 100%;
margin-right: var(--slider-runway-wrap-gap);
padding: var(--slider-runway-wrap-padding);
background-color: var(--slider-runway-wrap-bg);
border-radius: calc(var(--slider-runway-height) / 2);
}
.o-slider-runway {
position: relative;
height: var(--slider-runway-height);
cursor: var(--slider-btn-cursor);
}
.o-slider-bar {
position: absolute;
top: calc(var(--slider-runway-height) / 2 - var(--slider-bar-height) / 2);
height: var(--slider-bar-height);
background-color: var(--slider-bar-bg);
background-image: var(--slider-bar-bg-image);
border-top-left-radius: calc(var(--slider-bar-height) / 2);
border-bottom-left-radius: calc(var(--slider-bar-height) / 2);
}
.o-slider-btn-wrap {
display: flex;
align-items: center;
justify-content: center;
position: absolute;
z-index: 1;
top: calc(var(--slider-runway-height) / 2 - var(--slider-btn-width) / 2);
width: var(--slider-btn-wrap-width);
transform: translateX(-50%);
transition: top var(--o-duration-m1) var(--o-easing-linear);
user-select: none;
outline: none;
}
.o-slider-btn {
display: flex;
align-items: center;
justify-content: center;
width: var(--slider-btn-width);
height: var(--slider-btn-width);
background-color: var(--slider-btn-bg);
border-radius: 50%;
box-shadow: var(--slider-btn-shadow);
cursor: var(--slider-btn-cursor);
transition: width var(--o-duration-m1) var(--o-easing-linear), height var(--o-duration-m1) var(--o-easing-linear), border-width var(--o-duration-m1) var(--o-easing-linear), box-shadow var(--o-duration-m1) var(--o-easing-linear);
}
.o-slider-btn-hover {
border: var(--slider-btn-border);
box-shadow: var(--slider-btn-shadow);
}
.o-slider-circle {
width: var(--slider-circle-width);
height: var(--slider-circle-width);
background-color: var(--slider-circle-bg);
border-radius: 50%;
}
.o-slider-popover {
font-size: var(--slider-popover-font-size);
line-height: var(--slider-popover-line-height);
}
.o-slider-stop {
position: absolute;
top: calc(var(--slider-runway-height) / 2 - var(--slider-stop-width) / 2);
height: var(--slider-stop-width);
width: var(--slider-stop-width);
background-color: var(--slider-stop-bg);
border-radius: 50%;
transform: translateX(-50%);
}
.o-slider-marks-text {
position: absolute;
margin-top: var(--slider-marks-gap);
font-size: var(--slider-marks-font-size);
line-height: var(--slider-marks-line-height);
transform: translateX(-50%);
}
.o-slider-input-wrap {
flex-shrink: 0;
display: flex;
align-items: center;
}
.o-slider-input {
width: var(--slider-input-width);
}
.o-slider-input-unit {
margin-left: var(--slider-input-unit-gap);
font-size: var(--slider-unit-font-size);
line-height: var(--slider-unit-line-height);
color: var(--sldier-unit-color);
}
@media (max-width: 1680px) {
.o-slider {
--slider-popover-font-size: var(--o-font_size-tip1);
--slider-popover-line-height: var(--o-line_height-tip1);
}
}
@media (max-width: 840px) {
.o-slider {
--slider-btn-width: 24px;
--slider-stop-width: 3px;
}
.o-slider-with-stops {
--slider-runway-height: 12px;
--slider-bar-height: 16px;
}
}