@mussonindustrial/pyro-mui-joy
Version:
A port of Material UI Joy Theme for Ignition by Inductive Automation
153 lines (125 loc) • 4.57 kB
CSS
/* Slider generates a background element that can be used for various purposes. */
.ia-slider {
@include variant-support(Slider);
--joy-Slider-size: max(
42px,
max(var(--joy-Slider-thumbSize), var(--joy-Slider-trackSize))
);
--joy-Slider-trackRadius: var(--joy-Slider-size);
--joy-Slider-markBackground: var(--joy-palette-text-tertiary);
/* Default to medium size */
--joy-Slider-markSize: 2px;
--joy-Slider-trackSize: 6px;
--joy-Slider-thumbSize: 14px;
--joy-Slider-valueLabelArrowSize: 8px;
--joy-Slider-thumbRadius: calc(var(--joy-Slider-thumbSize) / 2);
--joy-Slider-thumbWidth: var(--joy-Slider-thumbSize);
--joy-Slider-thumbBackground: var(--joy-Slider-Color);
--joy-Slider-thumbColor: var(--joy-Slider-Bg);
--joy-Slider-trackColor: var(--joy-Slider-Color);
--joy-Slider-trackBackground: var(--joy-Slider-Bg);
--joy-Slider-trackBorderColor: var(--joy-Slider-Border);
--joy-Slider-railBackground: var(--joy-palette-background-level2);
&[psc='Joy/Variant/plain'],
&[psc='Joy/Variant/outlined'] {
--joy-Slider-thumbColor: var(--joy-palette-background-surface);
--joy-Slider-trackBackground: var(--joy-palette-background-surface);
}
&:hover {
@include component-state(Slider, Hover);
}
&:active {
@include component-state(Slider, Active);
}
.slider:not(.slider-vertical) {
.slider-rail {
height: var(--joy-Slider-trackSize);
}
.slider-track {
height: var(--joy-Slider-trackSize);
width: 100%;
border-radius: var(--joy-Slider-trackRadius) 0 0
var(--joy-Slider-trackRadius);
}
.slider-handle {
margin-left: calc(var(--joy-Slider-thumbWidth) / 2 * -1);
margin-top: calc(var(--joy-Slider-thumbWidth) / 4 * -1);
}
}
.slider.slider-vertical {
.slider-rail {
width: var(--joy-Slider-trackSize);
}
.slider-track {
height: 100%;
width: var(--joy-Slider-trackSize);
border-radius: 0 0 var(--joy-Slider-trackRadius)
var(--joy-Slider-trackRadius);
}
.slider-handle {
margin-left: calc(var(--joy-Slider-thumbWidth) / 4 * -1);
margin-bottom: calc(var(--joy-Slider-thumbWidth) / 2 * -1);
}
}
.slider-rail {
background-color: var(--joy-Slider-railBackground);
border-radius: var(--joy-Slider-trackRadius);
}
.slider-track {
color: var(--joy-Slider-trackColor);
background-color: var(--joy-Slider-trackBackground);
border-width: var(--joy-variant-borderWidth, 0px);
border-style: var(--joy-variant-borderStyle);
border-color: var(--joy-Slider-trackBorderColor);
border-radius: var(--joy-Slider-trackRadius) 0 0
var(--joy-Slider-trackRadius);
}
.slider .slider-handle {
width: var(--joy-Slider-thumbWidth);
height: var(--joy-Slider-thumbSize);
color: var(--joy-Slider-thumbColor);
background-color: var(--joy-Slider-thumbBackground);
border: var(--joy-variant-borderWidth, 0px) solid
var(--joy-Slider-trackBorderColor);
border-radius: var(--joy-Slider-thumbRadius);
box-shadow: var(--joy-Slider-thumbShadow);
background-color: var(--joy-Slider-thumbBackground);
cursor: pointer;
overflow: visible;
&:before {
content: '';
box-sizing: border-box;
display: block;
position: absolute;
background: transparent;
top: 0;
left: 0;
width: 100%;
height: 100%;
border: 2px solid;
border-color: var(--joy-Slider-thumbColor);
border-radius: inherit;
}
}
}
[psc='Joy/Size/sm'] .ia-slider,
[psc='Joy/Size/sm'].ia-slider {
--joy-Slider-markSize: 2px;
--joy-Slider-trackSize: 4px;
--joy-Slider-thumbSize: 10px;
--joy-Slider-valueLabelArrowSize: 6px;
}
[psc='Joy/Size/md'] .ia-slider,
[psc='Joy/Size/md'].ia-slider {
--joy-Slider-markSize: 2px;
--joy-Slider-trackSize: 6px;
--joy-Slider-thumbSize: 14px;
--joy-Slider-valueLabelArrowSize: 8px;
}
[psc='Joy/Size/lg'] .ia-slider,
[psc='Joy/Size/lg'].ia-slider {
--joy-Slider-markSize: 3px;
--joy-Slider-trackSize: 10px;
--joy-Slider-thumbSize: 20px;
--joy-Slider-valueLabelArrowSize: 10px;
}