/* Copyright (c) 2014 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.txt The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt 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.txt */ :host { display: inline-block; width: 200px; cursor: default; } #sliderContainer { position: relative; width: calc(100% - 32px); height: 32px; } :host([editable]) #sliderContainer { float: left; width: calc(100% - 72px); } #sliderBar { position: absolute; top: 15px; left: 16px; height: 2px; width: 100%; padding: 8px 0; margin: -8px 0; } .slider-markers { position: absolute; top: 15px; left: 15px; height: 2px; width: calc(100% + 2px); box-sizing: border-box; pointer-events: none; /* background-image: -webkit-linear-gradient(0deg, #ccc, #ccc 1px, transparent 1px, transparent); background-size: 10%; */ } .slider-markers::after, .slider-marker::after { content: ""; display: block; width: 2px; height: 2px; border-radius: 50%; background-color: black; } #sliderBar::shadow #activeProgress { background-color: #3f51b5; } #sliderKnob { position: absolute; left: 0; top: 0; width: 32px; height: 32px; } #sliderKnob.transiting { transition: left 0.08s ease; } #sliderKnob:focus { outline: none; } #sliderKnob.dragging { transition: none; } #sliderKnob.snaps.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: #3f51b5; /* FIXME(ffu): can't use the following. https://github.com/Polymer/platform/issues/53 */ /* transition-property: height, width, background-color, border; transition-duration: 0.1s; transition-timing-function: ease; */ transition: height 0.18s ease, width 0.18s ease, background-color 0.28s ease, border 0.18s ease; } #sliderKnob.expand:not(.pin) > #sliderKnobInner { width: 100%; height: 100%; -webkit-transform: translateZ(0); transform: translateZ(0); } #sliderKnob.ring > #sliderKnobInner { background-color: #fff; border: 2px solid #c8c8c8; } #sliderKnobInner::before { background-color: #3f51b5; } #sliderKnob.pin > #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; } #sliderKnob.pin.ring > #sliderKnobInner::before { background-color: #c8c8c8; } #sliderKnob.pin.expand > #sliderKnobInner::before { -webkit-transform: rotate(-45deg) scale(1) translate(17px, -17px); transform: rotate(-45deg) scale(1) translate(17px, -17px); } #sliderKnob.pin > #sliderKnobInner::after { /* FIXME(ffu): add dummy quotes to workaround https://github.com/Polymer/platform/issues/57 */ content: attr(value) ""; position: absolute; top: 0; left: 0; width: 32px; height: 26px; text-align: center; color: #fff; font-size: 10px; -webkit-transform: scale(0) translate(0); transform: scale(0) translate(0); } #sliderKnob.pin.expand > #sliderKnobInner::after { -webkit-transform: scale(1) translate(0, -17px); transform: scale(1) translate(0, -17px); } .slider-input { width: 40px; height: 32px; float: right; } .slider-input::shadow input { /* FIXME(ffu): should one be able set text-align directly on paper-input? */ text-align: center; } /* disabled state */ :host([disabled]) #sliderContainer { pointer-events: none; } :host([disabled]) { pointer-events: none; } :host([disabled]) #sliderKnob > #sliderKnobInner { width: 12px; height: 12px; background-color: #c8c8c8; border: 2px solid #fff; } :host([disabled]) #sliderContainer > #sliderBar::shadow #activeProgress { background-color: #c8c8c8; }