/* ------------------------------------------------------------------------------ * * # NoUI slider * * Styles for NoUI range slider plugin * * Version: 1.2 * Latest update: Mar 20, 2017 * * ---------------------------------------------------------------------------- */ // Functional styling // ------------------------------ // Container .noUi-target { border-radius: 100px; position: relative; direction: ltr; background-color: @gray-lighter; .box-shadow(inset 0 1px 1px fade(#000, 10%)); &, & * { .user-select(none); } } // Base .noUi-base { width: 100%; height: 100%; position: relative; } // Slider origin .noUi-origin { position: absolute; height: 0; width: 0; border-radius: 100px; } // Inherit cursor .noUi-state-drag * { cursor: inherit !important; } // Connector .noUi-connect { position: absolute; right: 0; top: 0; left: 0; bottom: 0; background-color: @color-slate-500; border-radius: 100px; } // Disabled state [disabled] { // Background .noUi-target { .opacity(0.75); } // Handle .noUi-handle { cursor: @cursor-disabled; } } // Orientations // ------------------------------ // Horizontal orientation .noUi-horizontal { height: @slider-base-size; .noUi-handle { top: -(@slider-base-size * 1.5) + (@slider-base-size / 2); left: -(@slider-base-size * 1.5); } &.noUi-extended { padding: 0 @content-padding-base; .noUi-connect { right: -(@content-padding-base); } } // If has pips &.has-pips { margin-bottom: 35px; } } // Vertical orientation .noUi-vertical { display: inline-block; width: @slider-base-size; height: 150px; & + & { margin-left: @content-padding-large; } .noUi-handle { top: -(@slider-base-size * 1.5); left: -(@slider-base-size * 1.5) + (@slider-base-size / 2); } &.noUi-extended { padding: @content-padding-base 0; .noUi-connect { bottom: -(@content-padding-base); } } // If has pips &.has-pips { margin-right: 35px; } } // Handles and cursors // ------------------------------ // Draggable .noUi-dragable { cursor: w-resize; .noUi-vertical & { cursor: n-resize; } } // Handle .noUi-handle { width: (@slider-base-size * 3); height: (@slider-base-size * 3); background-color: #fcfcfc; cursor: pointer; top: -(@slider-base-size); position: relative; z-index: 1; border-radius: 50%; border: 1px solid #bbb; .noUi-stacking & { z-index: 10; // this class is applied to the lower origin when its values is > 50% } // Inner circle &:after { content: ''; display: inline-block; width: @slider-base-size; height: @slider-base-size; position: absolute; top: 50%; left: 50%; margin-top: -(@slider-base-size / 2); margin-left: -(@slider-base-size / 2); background-color: @color-slate-600; border-radius: 50%; } // Hover state &:hover, &:focus { background-color: #f8f8f8; // Mute circle &:after { .opacity(0.9); } } // Active state &:active { background-color: #fefefe; // Mute circle &:after { .opacity(0.9); } } } // White handle .noui-slider-white .noUi-handle:after { content: none; } // Sizing // ------------------------------ // Large .noui-slider-lg { // Handle .noUi-handle { width: (@slider-large-size * 3); height: (@slider-large-size * 3); top: -(@slider-large-size); // Inner circle &:after { width: @slider-large-size; height: @slider-large-size; margin-top: -(@slider-large-size / 2); margin-left: -(@slider-large-size / 2); } } // Horizontal &.noUi-horizontal { height: @slider-large-size; .noUi-handle { left: -(@slider-large-size * 1.5); } } // Vertical &.noUi-vertical { width: @slider-large-size; .noUi-handle { top: -(@slider-large-size * 1.5); left: -(@slider-large-size * 1.5) + (@slider-large-size / 2); } } } // Small and mini have the same handle size .noui-slider-sm, .noui-slider-xs { // Handle .noUi-handle { width: (@slider-small-size * 3); height: (@slider-small-size * 3); top: -(@slider-small-size); // Inner circle &:after { width: @slider-small-size; height: @slider-small-size; margin-top: -(@slider-small-size / 2); margin-left: -(@slider-small-size / 2); } } } // Small .noui-slider-sm { // Horizontal &.noUi-horizontal { height: @slider-small-size; .noUi-handle { top: -(@slider-small-size * 1.5) + (@slider-small-size / 2); left: -(@slider-small-size * 1.5); } } // Vertical &.noUi-vertical { width: @slider-small-size; .noUi-handle { top: -(@slider-small-size * 1.5); left: -(@slider-small-size * 1.5) + (@slider-small-size / 2); } } } // Mini .noui-slider-xs { // Horizontal &.noUi-horizontal { height: @slider-mini-size; .noUi-handle { top: -(@slider-small-size * 1.5) + (@slider-mini-size / 2); left: -(@slider-small-size * 1.5); } } // Vertical &.noUi-vertical { width: @slider-mini-size; .noUi-handle { top: -(@slider-small-size * 1.5); left: -(@slider-small-size * 1.5) + (@slider-mini-size / 2); } } } // Solid slider handle // ------------------------------ .noui-slider-solid { // Handle .noUi-handle { background-color: @gray-light; border-color: @gray-light; .box-shadow(none); // Inner circle &:after { background-color: #fff; .transition(opacity ease-in-out 0.2s); } // Change circle opacity on hover &:hover, &:focus { &:after { .opacity(0.75); } } } // Handle colors &.noui-slider-primary .noUi-handle { background-color: @brand-primary; border-color: @brand-primary; } &.noui-slider-danger .noUi-handle { background-color: @brand-danger; border-color: @brand-danger; } &.noui-slider-success .noUi-handle { background-color: @brand-success; border-color: @brand-success; } &.noui-slider-warning .noUi-handle { background-color: @brand-warning; border-color: @brand-warning; } &.noui-slider-info .noUi-handle { background-color: @brand-info; border-color: @brand-info; } } // Contextual colors // ------------------------------ // Primary .noui-slider-primary { .noUi-connect, &.noUi-connect { background-color: @brand-primary; } } // Danger .noui-slider-danger { .noUi-connect, &.noUi-connect { background-color: @brand-danger; } } // Success .noui-slider-success { .noUi-connect, &.noUi-connect { background-color: @brand-success; } } // Warning .noui-slider-warning { .noUi-connect, &.noUi-connect { background-color: @brand-warning; } } // Info .noui-slider-info { .noUi-connect, &.noUi-connect { background-color: @brand-info; } } // Tooltip // ------------------------------ .noUi-tooltip { display: none; position: absolute; border-radius: @border-radius-base; background: @gray-dark; color: #fff; top: -43px; padding: @padding-base-vertical @padding-base-horizontal; left: 50%; margin-left: -27px; text-align: center; font-size: @font-size-small; width: 54px; &:after { content: ''; width: 0; height: 0; border: 5px solid transparent; border-top-color: @gray-dark; position: absolute; bottom: -10px; left: 50%; margin-left: -5px; } .noUi-handle:hover & { display: block; } } // Pips // ------------------------------ // Base .noUi-pips { position: absolute; color: @text-muted; } // // Values base // // Default .noUi-value { width: 40px; position: absolute; text-align: center; font-size: @font-size-mini; } // Sub .noUi-value-sub { color: #ccc; font-size: @font-size-mini; } // // Markings base // .noUi-marker { position: absolute; background-color: #ccc; } // // Horizontal layout // // Pips .noUi-pips-horizontal { padding-top: 10px; height: 35px; top: 100%; left: 0; width: 100%; } // Values .noUi-value-horizontal { margin-left: -20px; padding-top: 15px; &.noUi-value-sub { padding-top: 10px; } .noUi-rtl & { margin-left: 0; margin-right: -20px; } } // Markers .noUi-marker-horizontal { // Default marker &.noUi-marker { width: 1px; height: 3px; } // Sub marker &.noUi-marker-sub { height: 6px; } // Large marker &.noUi-marker-large { height: 10px; } } // // Vertical layout // // Pips .noUi-pips-vertical { padding-left: 10px; height: 100%; top: 0; left: 100%; } // Values .noUi-value-vertical { width: 15px; margin-left: 15px; margin-top: -6px; .noUi-rtl & { margin-top: 0; margin-bottom: -6px; } } // Markers .noUi-marker-vertical { // Default marker &.noUi-marker { width: 3px; height: 1px; } // Sub marker &.noUi-marker-sub { width: 6px; } // Large marker &.noUi-marker-large { width: 10px; } }