/** @license Copyright (c) 2015 The Polymer Project Authors. All rights reserved. This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE The complete set of authors may be found at http://polymer.github.io/AUTHORS The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS Code distributed by Google as part of the polymer project is also subject to an additional IP rights grant found at http://polymer.github.io/PATENTS */ :host { display: inline-block; width: 200px; cursor: default; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; -webkit-tap-highlight-color: rgba(0, 0, 0, 0); } :host(:not([disabled])) #sliderBar::shadow #activeProgress { background-color: var(--paper-slider-active-color, --google-blue-700); } :host(:not([disabled])) #sliderBar::shadow #secondaryProgress { background-color: var(--paper-slider-secondary-color, --google-blue-300); } :host([disabled]) #sliderBar::shadow #activeProgress { background-color: var(--paper-slider-disabled-active-color, --google-grey-500); } :host([disabled]) #sliderBar::shadow #secondaryProgress { background-color: var(--paper-slider-disabled-secondary-color, --google-grey-300); } :host(:focus) { outline: none; } #sliderContainer { position: relative; width: calc(100% - 32px); height: 32px; } #sliderContainer.editable { float: left; width: calc(100% - 72px); margin: 12px 0; } .bar-container { position: absolute; top: 0; left: 16px; height: 100%; width: 100%; overflow: hidden; } .ring > .bar-container { left: 20px; width: calc(100% - 4px); transition: left 0.18s ease, width 0.18s ease; } .ring.expand:not(.pin) > .bar-container { left: 30px; width: calc(100% - 14px); } .ring.expand.dragging > .bar-container { transition: none; } #sliderBar { position: absolute; top: 15px; left: 0; height: 2px; width: 100%; padding: 8px 0; margin: -8px 0; } .ring #sliderBar { left: -4px; width: calc(100% + 4px); } .ring.expand:not(.pin) #sliderBar { left: -14px; width: calc(100% + 14px); } .slider-markers { position: absolute; top: 15px; left: 15px; height: 2px; width: calc(100% + 2px); box-sizing: border-box; pointer-events: none; } .slider-markers::after, .slider-marker::after { content: ""; display: block; width: 2px; height: 2px; border-radius: 50%; background-color: black; } .transiting #sliderBar::shadow #activeProgress { -webkit-transition: -webkit-transform 0.08s ease; transition: transform 0.08s ease; } #sliderKnob { @apply(--layout-center-justified); @apply(--layout-center); @apply(--layout-horizontal); position: absolute; left: 0; top: 0; width: 32px; height: 32px; } .transiting > #sliderKnob { transition: left 0.08s ease; } #sliderKnob:focus { outline: none; } #sliderKnob.dragging { transition: none; } .snaps > #sliderKnob.dragging { transition: -webkit-transform 0.08s ease; transition: transform 0.08s ease; } #sliderKnobInner { width: 12px; height: 12px; box-sizing: border-box; -moz-box-sizing: border-box; border-radius: 50%; background-color: var(--paper-slider-knob-color, --google-blue-700); transition-property: height, width, background-color, border; transition-duration: 0.1s; transition-timing-function: ease; } .expand:not(.pin) > #sliderKnob > #sliderKnobInner { width: 100%; height: 100%; -webkit-transform: translateZ(0); transform: translateZ(0); } .ring > #sliderKnob > #sliderKnobInner { background-color: transparent; border: 2px solid #c8c8c8; } #sliderKnobInner::before { background-color: var(--paper-slider-pin-color, --google-blue-700); } .pin > #sliderKnob > #sliderKnobInner::before { content: ""; position: absolute; top: 0; left: 0; width: 26px; height: 26px; margin-left: 3px; border-radius: 50% 50% 50% 0; -webkit-transform: rotate(-45deg) scale(0) translate(0); transform: rotate(-45deg) scale(0) translate(0); } #sliderKnobInner::before, #sliderKnobInner::after { transition: -webkit-transform .2s ease, background-color .18s ease; transition: transform .2s ease, background-color .18s ease; } .pin.ring > #sliderKnob > #sliderKnobInner::before { background-color: #c8c8c8; } .pin.expand > #sliderKnob > #sliderKnobInner::before { -webkit-transform: rotate(-45deg) scale(1) translate(17px, -17px); transform: rotate(-45deg) scale(1) translate(17px, -17px); } .pin > #sliderKnob > #sliderKnobInner::after { content: attr(value); position: absolute; top: 0; left: 0; width: 32px; height: 26px; text-align: center; color: var(--paper-slider-font-color, #fff); font-size: 10px; -webkit-transform: scale(0) translate(0); transform: scale(0) translate(0); } .pin.expand > #sliderKnob > #sliderKnobInner::after { -webkit-transform: scale(1) translate(0, -17px); transform: scale(1) translate(0, -17px); } /* editable: paper-input */ .slider-input { width: 40px; float: right; overflow: hidden; } .slider-input::shadow input { /* FIXME(ffu): should one be able set text-align directly on paper-input? */ text-align: center; } /* disabled state */ #sliderContainer.disabled { pointer-events: none; } .disabled > #sliderKnob > #sliderKnobInner { width: 8px; height: 8px; background-color: var(--paper-slider-disabled-knob-color, --google-grey-500); } .disabled.ring > #sliderKnob > #sliderKnobInner { background-color: transparent; } paper-ripple { color: var(--paper-slider-knob-color, --google-blue-700); }