123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367 |
- @mixin slider() {
- $slider-track-thickness: 2px !default;
- $slider-anchor-thickness: 1px !default;
- $slider-tick-thickness: 1px !default;
- $slider-tick-length: 5px !default;
- $slider-ticks-z-index: 0;
- $slider-thumb-size: 16px !default;
- $slider-thumb-offset: ($slider-thumb-size * 0.5) - 1 !default;
- $slider-thumb-hover-scale: 1.2 !default;
- $slider-thumb-size--hover: $slider-thumb-size * $slider-thumb-hover-scale !default;
- $slider-thumb-offset--hover: ($slider-thumb-size--hover * 0.5) - 1 !default;
- .esri-slider {
- direction: ltr;
- display: flex;
- height: 100%;
- width: 100%;
- -webkit-user-select: none;
- user-select: none;
- }
- .esri-disabled {
- .esri-slider__content,
- .esri-slider__min,
- .esri-slider__max {
- opacity: 0.4;
- }
- .esri-slider__thumb {
- &:hover {
- transform: none;
- border-color: $button-color;
- cursor: default;
- }
- }
- .esri-slider__label {
- &:hover {
- cursor: default;
- }
- }
- .esri-slider__segment {
- &:hover {
- cursor: default;
- }
- }
- .esri-slider {
- &--horizontal,
- &--vertical {
- .esri-slider__segment--interactive {
- &:hover {
- cursor: default;
- }
- }
- }
- }
- }
- .esri-slider--reversed.esri-slider--horizontal {
- flex-direction: row-reverse;
- }
- .esri-slider--reversed.esri-slider--vertical {
- flex-direction: column;
- }
- .esri-slider--horizontal {
- flex-direction: row;
- .esri-slider__content {
- height: auto;
- }
- .esri-slider__track {
- height: $slider-track-thickness;
- width: 100%;
- }
- .esri-slider__segment--interactive {
- &:hover {
- cursor: ew-resize;
- }
- }
- .esri-slider__anchor {
- height: 100%;
- width: $slider-anchor-thickness;
- }
- .esri-slider__label {
- left: -50px;
- margin: 0 $side-spacing--three-quarters;
- top: -30px;
- text-align: center;
- }
- .esri-slider__label-input {
- text-align: center;
- }
- .esri-slider__max,
- .esri-slider__min {
- flex: 0 0 auto;
- margin: auto;
- height: auto;
- width: 50px;
- }
- .esri-slider__ticks {
- left: 0;
- margin: $cap-spacing--three-quarters 0 0 0;
- top: 100%;
- width: 100%;
- }
- .esri-slider__tick {
- height: $slider-tick-length;
- width: $slider-tick-thickness;
- }
- .esri-slider__tick-label {
- margin-top: $cap-spacing--plus-half;
- }
- }
- .esri-slider--vertical {
- flex-direction: column-reverse;
- .esri-slider__content {
- flex-direction: column;
- width: auto;
- }
- .esri-slider__track {
- flex: 1 0 0px;
- flex-direction: column;
- height: 100%;
- width: $slider-track-thickness;
- }
- .esri-slider__segment--interactive {
- &:hover {
- cursor: ns-resize;
- }
- }
- .esri-slider__anchor {
- height: $slider-anchor-thickness;
- width: 100%;
- }
- .esri-slider__label {
- left: 20px;
- text-align: left;
- top: -10px;
- }
- .esri-slider__max,
- .esri-slider__min {
- margin: auto;
- width: 100%;
- }
- .esri-slider__max {
- flex: 0 0 22px;
- }
- .esri-slider__min {
- flex: 0 0 22px;
- }
- .esri-slider__ticks {
- left: 100%;
- margin: 0 0 0 $side-spacing--three-quarters;
- top: 0;
- }
- .esri-slider__tick {
- height: $slider-tick-thickness;
- width: $slider-tick-length;
- }
- .esri-slider__tick-label {
- margin-left: 30px;
- }
- }
- .esri-slider__content {
- display: flex;
- flex: 1 0 auto;
- line-height: 0;
- margin: auto;
- position: relative;
- align-items: center;
- justify-content: center;
- z-index: 0;
- }
- .esri-slider__track {
- background-color: $border-color--contrast;
- display: inline-block;
- touch-action: none;
- position: relative;
- }
- .esri-slider__segment {
- height: 100%;
- left: 0;
- position: absolute;
- top: 0;
- touch-action: none;
- transform-origin: 0 0;
- width: 100%;
- will-change: transform;
- &:hover {
- cursor: pointer;
- }
- }
- .esri-slider__anchor {
- background-color: $background-color--inverse;
- position: absolute;
- touch-action: none;
- -webkit-user-select: none;
- user-select: none;
- &:focus {
- .esri-slider__thumb,
- .esri-slider__label {
- outline: inherit;
- }
- }
- }
- .esri-slider__anchor--moving {
- .esri-slider__label {
- &:hover {
- cursor: grabbing;
- }
- }
- .esri-slider__label--interactive {
- &:hover {
- cursor: grabbing;
- }
- }
- &:focus {
- .esri-slider__thumb {
- border: 3px solid $button-color--hover;
- cursor: grabbing;
- }
- }
- }
- .esri-slider__thumb {
- background-color: $background-color;
- border: 2px solid $button-color;
- border-radius: $slider-thumb-size;
- height: $slider-thumb-size;
- left: -$slider-thumb-offset;
- position: absolute;
- top: -$slider-thumb-offset;
- touch-action: none;
- width: $slider-thumb-size;
- transition: all 125ms ease-in-out;
- z-index: $slider-ticks-z-index + 1; // Make sure the thumb goes on top of the ticks
- &:hover {
- border-color: $button-color--hover;
- border-width: 3px;
- height: $slider-thumb-size--hover;
- left: -$slider-thumb-offset--hover;
- top: -$slider-thumb-offset--hover;
- width: $slider-thumb-size--hover;
- cursor: pointer; // Fallback for IE11
- cursor: grab;
- }
- }
- .esri-slider__label {
- line-height: 22px;
- min-width: 80px;
- position: absolute;
- &:hover {
- cursor: pointer; // Fallback for IE11
- cursor: grab;
- }
- }
- .esri-slider__label--interactive,
- .esri-slider__max--interactive,
- .esri-slider__min--interactive {
- &:hover {
- cursor: pointer;
- text-decoration: underline;
- }
- }
- .esri-slider__label-input {
- position: relative;
- width: 100%;
- z-index: $slider-ticks-z-index + 1;
- }
- .esri-slider__extra-content {
- display: inline-block;
- }
- .esri-slider__max,
- .esri-slider__min {
- height: 22px;
- line-height: 22px;
- text-align: center;
- display: flex;
- align-items: center;
- justify-content: center;
- }
- .esri-slider__max--interactive,
- .esri-slider__min--interactive {
- &:hover {
- background-color: $background-color--offset;
- }
- }
- .esri-slider__range-input {
- padding: 1px 0;
- text-align: center;
- width: 100%;
- }
- .esri-slider__ticks {
- display: inline-block;
- height: 100%;
- position: absolute;
- z-index: $slider-ticks-z-index;
- }
- .esri-slider__tick {
- background: $border-color--contrast;
- position: absolute;
- }
- .esri-slider__tick-label {
- position: absolute;
- width: max-content;
- }
- [dir="rtl"] {
- .esri-slider__label,
- .esri-slider__max,
- .esri-slider__min,
- .esri-slider__tick-label {
- direction: rtl;
- unicode-bidi: plaintext;
- }
- .esri-slider__range-input,
- .esri-slider__label-input {
- unicode-bidi: plaintext;
- }
- }
- }
- /*
- #22969 - Focus outline does not appear as expected in Edge
- Slider includes thumb/label elements in anchor focus outline when 'handle' is focused
- Default browser style for focus outline is not included on parent element in Edge
- This means using 'outline: inherit' on thumb/label elements does nothing
- ... unless we define an outline on the parent
- */
- @supports (-ms-ime-align: auto) {
- .esri-slider {
- &__anchor {
- &:focus {
- outline: 1px dotted black;
- }
- }
- }
- }
- @if $include_Slider == true {
- @include slider();
- }
|