mirror of
https://github.com/pretix/pretix.git
synced 2026-05-05 15:14:04 +00:00
388 lines
9.6 KiB
SCSS
388 lines
9.6 KiB
SCSS
/*! =========================================================
|
|
* bootstrap-slider.js
|
|
*
|
|
* Maintainers:
|
|
* Kyle Kemp
|
|
* - Twitter: @seiyria
|
|
* - Github: seiyria
|
|
* Rohit Kalkur
|
|
* - Twitter: @Rovolutionary
|
|
* - Github: rovolution
|
|
*
|
|
* =========================================================
|
|
*
|
|
* bootstrap-slider is released under the MIT License
|
|
* Copyright (c) 2019 Kyle Kemp, Rohit Kalkur, and contributors
|
|
*
|
|
* Permission is hereby granted, free of charge, to any person
|
|
* obtaining a copy of this software and associated documentation
|
|
* files (the "Software"), to deal in the Software without
|
|
* restriction, including without limitation the rights to use,
|
|
* copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
* copies of the Software, and to permit persons to whom the
|
|
* Software is furnished to do so, subject to the following
|
|
* conditions:
|
|
*
|
|
* The above copyright notice and this permission notice shall be
|
|
* included in all copies or substantial portions of the Software.
|
|
*
|
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
|
* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
|
* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
|
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
|
* OTHER DEALINGS IN THE SOFTWARE.
|
|
*
|
|
* ========================================================= */
|
|
|
|
$slider-line-height: 20px !default;
|
|
$slider-border-radius: 4px !default;
|
|
$slider-horizontal-width: 210px !default;
|
|
$slider-vertical-height: 210px !default;
|
|
|
|
// Primary colors
|
|
$slider-primary: null !default;
|
|
@if variable-exists(brand-primary) {
|
|
$slider-primary: $brand-primary !default;
|
|
} @else {
|
|
$slider-primary: #0480BE !default;
|
|
}
|
|
|
|
$slider-primary-top: $slider-primary !default;
|
|
$slider-primary-bottom: darken($slider-primary, 5%) !default;
|
|
$slider-secondary-top: saturate(lighten($slider-primary, 28%), 20%) !default;
|
|
$slider-secondary-bottom: saturate(lighten($slider-primary, 23%), 2%) !default;
|
|
|
|
// grays for slider channel and disabled states
|
|
$slider-gray-1: #BEBEBE !default;
|
|
$slider-gray-2: #DFDFDF !default;
|
|
$slider-gray-3: #E5E5E5 !default;
|
|
$slider-gray-4: #E9E9E9 !default;
|
|
$slider-gray-5: #F5F5F5 !default;
|
|
$slider-gray-6: #F9F9F9 !default;
|
|
|
|
// unicode color for demo page
|
|
$slider-unicode-color: #726204 !default;
|
|
|
|
@mixin slider_background-image($colorstart:#F5F5F5, $colorend:#F9F9F9, $backcolor: #F7F7F7) {
|
|
background-color: $backcolor;
|
|
background-image: -moz-linear-gradient(top, $colorstart, $colorend);
|
|
background-image: -webkit-gradient(linear, 0 0, 0 100%, from($colorstart), to($colorend));
|
|
background-image: -webkit-linear-gradient(top, $colorstart, $colorend);
|
|
background-image: -o-linear-gradient(top, $colorstart, $colorend);
|
|
background-image: linear-gradient(to bottom, $colorstart, $colorend);
|
|
background-repeat: repeat-x;
|
|
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#{$colorstart}', endColorstr='#{$colorend}', GradientType=0);
|
|
}
|
|
|
|
@mixin slider_box-sizing($value) {
|
|
-webkit-box-sizing: $value;
|
|
-moz-box-sizing: $value;
|
|
box-sizing: $value;
|
|
}
|
|
|
|
@mixin slider_box-shadow($value...) {
|
|
-webkit-box-shadow: $value;
|
|
-moz-box-shadow: $value;
|
|
box-shadow: $value;
|
|
}
|
|
|
|
@mixin slider_border-radius($value) {
|
|
-webkit-border-radius: $value;
|
|
-moz-border-radius: $value;
|
|
border-radius: $value;
|
|
}
|
|
|
|
.slider {
|
|
display: inline-block;
|
|
vertical-align: middle;
|
|
position: relative;
|
|
|
|
&.slider-horizontal {
|
|
width: $slider-horizontal-width;
|
|
height: $slider-line-height;
|
|
|
|
.slider-track {
|
|
height: $slider-line-height/2;
|
|
width: 100%;
|
|
margin-top: -$slider-line-height/4;
|
|
top: 50%;
|
|
left: 0;
|
|
}
|
|
|
|
.slider-selection, .slider-track-low, .slider-track-high {
|
|
height: 100%;
|
|
top: 0;
|
|
bottom: 0;
|
|
}
|
|
|
|
.slider-tick,
|
|
.slider-handle {
|
|
margin-left: -$slider-line-height/2;
|
|
|
|
&.triangle {
|
|
position: relative;
|
|
top: 50%;
|
|
transform: translateY(-50%);
|
|
border-width: 0 $slider-line-height/2 $slider-line-height/2 $slider-line-height/2;
|
|
width: 0;
|
|
height: 0;
|
|
border-bottom-color: $slider-primary-bottom;
|
|
margin-top: 0;
|
|
}
|
|
}
|
|
|
|
.slider-tick-container {
|
|
white-space: nowrap;
|
|
position: absolute;
|
|
top: 0;
|
|
left: 0;
|
|
width: 100%;
|
|
}
|
|
|
|
.slider-tick-label-container {
|
|
white-space: nowrap;
|
|
margin-top: $slider-line-height;
|
|
|
|
.slider-tick-label {
|
|
display: inline-block;
|
|
padding-top: $slider-line-height * 1.2;
|
|
text-align: center;
|
|
}
|
|
}
|
|
|
|
&.slider-rtl {
|
|
.slider-track {
|
|
left: initial;
|
|
right: 0;
|
|
}
|
|
|
|
.slider-tick,
|
|
.slider-handle {
|
|
margin-left: initial;
|
|
margin-right: -$slider-line-height/2;
|
|
}
|
|
|
|
.slider-tick-container {
|
|
left: initial;
|
|
right: 0;
|
|
}
|
|
}
|
|
}
|
|
|
|
&.slider-vertical {
|
|
height: $slider-vertical-height;
|
|
width: $slider-line-height;
|
|
|
|
.slider-track {
|
|
width: $slider-line-height/2;
|
|
height: 100%;
|
|
left: 25%;
|
|
top: 0;
|
|
}
|
|
|
|
.slider-selection {
|
|
width: 100%;
|
|
left: 0;
|
|
top: 0;
|
|
bottom: 0;
|
|
}
|
|
|
|
.slider-track-low, .slider-track-high {
|
|
width: 100%;
|
|
left: 0;
|
|
right: 0;
|
|
}
|
|
|
|
.slider-tick,
|
|
.slider-handle {
|
|
margin-top: -$slider-line-height/2;
|
|
|
|
&.triangle {
|
|
border-width: $slider-line-height/2 0 $slider-line-height/2 $slider-line-height/2;
|
|
width: 1px;
|
|
height: 1px;
|
|
border-left-color: $slider-primary-bottom;
|
|
margin-left: 0;
|
|
}
|
|
}
|
|
|
|
.slider-tick-label-container {
|
|
white-space: nowrap;
|
|
|
|
.slider-tick-label {
|
|
padding-left: $slider-line-height * .2;
|
|
}
|
|
}
|
|
|
|
&.slider-rtl {
|
|
.slider-track {
|
|
left: initial;
|
|
right: 25%;
|
|
}
|
|
|
|
.slider-selection {
|
|
left: initial;
|
|
right: 0;
|
|
}
|
|
|
|
.slider-tick,
|
|
.slider-handle {
|
|
&.triangle {
|
|
border-width: $slider-line-height/2 $slider-line-height/2 $slider-line-height/2 0;
|
|
}
|
|
}
|
|
|
|
.slider-tick-label-container {
|
|
.slider-tick-label {
|
|
padding-left: initial;
|
|
padding-right: $slider-line-height * .2;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
&.slider-disabled {
|
|
.slider-handle {
|
|
@include slider_background-image($slider-gray-2, $slider-gray-1, mix($slider-gray-2, $slider-gray-1));
|
|
}
|
|
|
|
.slider-track {
|
|
@include slider_background-image($slider-gray-3, $slider-gray-4, mix($slider-gray-3, $slider-gray-4));
|
|
cursor: not-allowed;
|
|
}
|
|
}
|
|
|
|
input {
|
|
display: none;
|
|
}
|
|
|
|
.tooltip-inner {
|
|
white-space: nowrap;
|
|
max-width: none;
|
|
}
|
|
|
|
.tooltip {
|
|
pointer-events: none;
|
|
|
|
&.top {
|
|
margin-top: -36px;
|
|
}
|
|
}
|
|
|
|
.tooltip-inner {
|
|
white-space: nowrap;
|
|
max-width: none;
|
|
}
|
|
|
|
.hide {
|
|
display: none;
|
|
}
|
|
}
|
|
|
|
.slider-track {
|
|
@include slider_background-image($slider-gray-5, $slider-gray-6, mix($slider-gray-5, $slider-gray-6));
|
|
@include slider_box-shadow(inset 0 1px 2px rgba(0, 0, 0, 0.1));
|
|
@include slider_border-radius($slider-border-radius);
|
|
|
|
position: absolute;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.slider-selection {
|
|
@include slider_background-image($slider-gray-6, $slider-gray-5, mix($slider-gray-6, $slider-gray-5));
|
|
@include slider_box-shadow(inset 0 -1px 0 rgba(0, 0, 0, 0.15));
|
|
@include slider_box-sizing(border-box);
|
|
@include slider_border-radius($slider-border-radius);
|
|
|
|
position: absolute;
|
|
}
|
|
|
|
.slider-selection.tick-slider-selection {
|
|
@include slider_background-image($slider-secondary-top, $slider-secondary-bottom, mix($slider-secondary-top, $slider-secondary-bottom));
|
|
}
|
|
|
|
.slider-track-low, .slider-track-high {
|
|
@include slider_box-sizing(border-box);
|
|
@include slider_border-radius($slider-border-radius);
|
|
|
|
position: absolute;
|
|
background: transparent;
|
|
}
|
|
|
|
.slider-handle {
|
|
@include slider_background-image($slider-primary-top, $slider-primary-bottom, mix($slider-primary-top, $slider-primary-bottom));
|
|
@include slider_box-shadow(inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05));
|
|
|
|
position: absolute;
|
|
top: 0;
|
|
width: $slider-line-height;
|
|
height: $slider-line-height;
|
|
background-color: $slider-primary;
|
|
border: 0px solid transparent;
|
|
|
|
&:hover {
|
|
cursor: pointer;
|
|
}
|
|
|
|
&.round {
|
|
@include slider_border-radius($slider-line-height);
|
|
}
|
|
|
|
&.triangle {
|
|
background: transparent none;
|
|
}
|
|
|
|
&.custom {
|
|
background: transparent none;
|
|
|
|
&::before {
|
|
line-height: $slider-line-height;
|
|
font-size: 20px;
|
|
content: '\2605'; //unicode star character
|
|
color: $slider-unicode-color;
|
|
}
|
|
}
|
|
}
|
|
|
|
.slider-tick {
|
|
@include slider_background-image($slider-gray-5, $slider-gray-6, mix($slider-gray-5, $slider-gray-6));
|
|
@include slider_box-shadow(inset 0 -1px 0 rgba(0, 0, 0, 0.15));
|
|
@include slider_box-sizing(border-box);
|
|
|
|
position: absolute;
|
|
cursor: pointer;
|
|
width: $slider-line-height;
|
|
height: $slider-line-height;
|
|
filter: none;
|
|
opacity: 0.8;
|
|
border: 0px solid transparent;
|
|
|
|
&.round {
|
|
border-radius: 50%;
|
|
}
|
|
|
|
&.triangle {
|
|
background: transparent none;
|
|
}
|
|
|
|
&.custom {
|
|
background: transparent none;
|
|
|
|
&::before {
|
|
line-height: $slider-line-height;
|
|
font-size: 20px;
|
|
content: '\2605'; //unicode star character
|
|
color: $slider-unicode-color;
|
|
}
|
|
}
|
|
|
|
&.in-selection {
|
|
@include slider_background-image($slider-secondary-top, $slider-secondary-bottom, mix($slider-secondary-top, $slider-secondary-bottom));
|
|
opacity: 1;
|
|
}
|
|
}
|
|
|