$handle-size: 14px; .ct-slider { position: relative; user-select: none; height: 18px; cursor: pointer; border-radius: 2px; margin-inline-end: $handle-size; &:before { position: absolute; content: ''; top: calc(50% - 1px); inset-inline-start: 0; width: calc(100% + #{$handle-size}); height: 2px; border-radius: inherit; background: var(--backgroundColor, #ced1d4); } span { position: absolute; inset-block: 0; inset-inline-start: var(--position); margin: auto 0; width: $handle-size; height: $handle-size; border-radius: 100%; background: var(--ui-accent-color); transition: box-shadow 0.1s ease, background 0.1s ease; outline: none; &:hover, &:focus, &:active { box-shadow: 0px 0px 0px 2px var(--ui-accent-color), 0px 8px 15px 0px rgba(0, 0, 0, 0.25); } &:active { background: #fff; } } div { position: absolute; top: calc(50% - 1px); inset-inline-start: 0; height: 2px; padding-inline-end: #{calc($handle-size / 2)}; background: var(--ui-accent-color); border-radius: inherit; } } .ct-option-slider { display: grid; grid-template-columns: 1fr 75px; align-items: center; grid-column-gap: 12px; // sides [class*='placement'] { flex: 0 0 15px; display: flex; margin-inline-end: 5%; .shape { opacity: 0.15; fill: #000000; } .shape-active { fill: #0073aa; } } .placement-right svg { transform: rotate(90deg); } .placement-bottom svg { transform: rotate(180deg); } .placement-left svg { transform: rotate(270deg); } } // slider steps .ct-slider[data-steps] { div { display: none; } section { display: flex; align-items: center; justify-content: space-between; position: absolute; inset-inline-start: 0; bottom: -7px; height: 5px; opacity: 0.5; pointer-events: none; width: calc(100% + #{$handle-size}); i { display: flex; align-items: center; justify-content: center; position: relative; width: 5px; height: 5px; font-style: normal; &:before { position: absolute; content: ''; width: inherit; height: 1px; background: currentColor; } &.zero:before { transform: rotate(90deg); } &.plus:after { position: absolute; content: ''; width: 1px; height: inherit; background: currentColor; } } // positive &.positive { .minus { display: none; } .zero:before { inset-inline-end: -2px; } } } }