@geoffcox/sterling-svelte-themes
Version:
A modern theme for the sterling-svelte component library.
189 lines (158 loc) • 3.74 kB
CSS
.sterling-slider {
box-sizing: border-box;
outline: none;
padding: 0;
overflow: visible;
display: grid;
transition:
background-color 250ms,
color 250ms,
border-color 250ms;
}
.sterling-slider.horizontal {
height: 2em;
}
.sterling-slider.vertical {
height: 100%;
width: 2em;
}
/* ----- container ----- */
.sterling-slider .container {
position: relative;
}
.sterling-slider.horizontal .container {
margin: 0 0.75em;
}
.sterling-slider.vertical .container {
margin: 0.75em 0;
}
/* ----- track ----- */
.sterling-slider .track {
position: absolute;
background: var(--stsv-common__background-color--secondary);
transition:
background-color 250ms,
color 250ms,
border-color 250ms;
}
.sterling-slider.horizontal .track {
left: 0;
right: 0;
top: 50%;
height: 3px;
transform: translate(0, -50%);
}
.sterling-slider.vertical .track {
bottom: 0;
left: 50%;
top: 0;
transform: translate(-50%, 0);
width: 3px;
}
/* ----- fill ----- */
.sterling-slider .fill {
background: var(--stsv-common__color);
position: absolute;
transition:
background-color 250ms,
color 250ms,
border-color 250ms;
}
.sterling-slider.horizontal .fill {
height: 3px;
top: 50%;
transform: translate(0, -50%);
width: var(--valueOffset);
}
.sterling-slider.horizontal:not(.reverse) .fill {
left: 0;
}
.sterling-slider.horizontal.reverse .fill {
right: 0;
}
.sterling-slider.vertical .fill {
left: 50%;
transform: translate(-50%, 0);
width: 3px;
height: var(--valueOffset);
}
.sterling-slider.vertical:not(.reverse) .fill {
bottom: 0;
}
.sterling-slider.vertical.reverse .fill {
top: 0;
}
/* ----- thumb ----- */
.sterling-slider .thumb {
background-color: var(--stsv-button__background-color);
border-color: var(--stsv-button__border-color);
border-radius: 10000px;
border-style: solid;
border-width: var(--stsv-button__border-width);
box-sizing: border-box;
color: var(--stsv-button__color);
cursor: pointer;
display: block;
font: inherit;
height: 1.5em;
overflow: hidden;
outline: none;
padding: 0;
text-decoration: none;
transition:
background-color 250ms,
color 250ms,
border-color 250ms;
white-space: nowrap;
position: absolute;
width: 1.5em;
}
.sterling-slider.horizontal:not(.reverse) .thumb {
top: 50%;
transform: translate(-50%, -50%);
left: var(--valueOffset);
}
.sterling-slider.horizontal.reverse .thumb {
top: 50%;
transform: translate(50%, -50%);
right: var(--valueOffset);
}
.sterling-slider.vertical:not(.reverse) .thumb {
left: 50%;
transform: translate(-50%, 50%);
bottom: var(--valueOffset);
}
.sterling-slider.vertical.reverse .thumb {
left: 50%;
transform: translate(-50%, -50%);
top: var(--valueOffset);
}
.sterling-slider:not(.disabled) .thumb:hover {
background-color: var(--stsv-button__background-color--hover);
border-color: var(--stsv-button__border-color--hover);
color: var(--stsv-button__color--hover);
}
.sterling-slider:not(.disabled) .thumb:active {
background-color: var(--stsv-button__background-color--active);
border-color: var(--stsv-button__border-color--active);
color: var(--stsv-button__color--active);
}
.sterling-slider:not(.disabled).using-keyboard:focus-visible .thumb {
outline-color: var(--stsv-common__outline-color);
outline-offset: 0;
outline-style: solid;
outline-width: var(--stsv-common__outline-width);
}
.sterling-slider.no-value .thumb {
display: none;
}
/* ----- reduced motion ----- */
@media (prefers-reduced-motion) {
.sterling-slider,
.sterling-slider .track,
.sterling-slider .fill,
.sterling-slider .thumb,
.sterling-slider .thumb::after {
transition: none;
}
}