/* * Copyright (C) 2016 Apple Inc. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ .slider { position: relative; } .slider > .custom-slider, .slider > input { position: absolute; left: 0; width: 100%; } .slider > .custom-slider { pointer-events: none; top: 5.5px; height: 5px; } .slider > .custom-slider > * { position: absolute; } .slider > .custom-slider > .fill { top: 0; height: 100%; border-radius: 4.5px; mix-blend-mode: plus-lighter; } .slider > .custom-slider > .track { left: 0; width: 100%; background-color: rgba(255, 255, 255, 0.1); } .slider > .custom-slider > .primary { left: 0; background-color: rgba(255, 255, 255, 0.35); } .slider > .custom-slider > .secondary { background-color: rgba(255, 255, 255, 0.08); } .slider > .custom-slider > .knob { top: -2px; width: 9px; height: 9px; border-radius: 50%; background-color: white; transform: translateX(-50%); } .slider > input { top: 0; margin: 0; height: 100%; background-color: transparent; -webkit-appearance: none !important; /* Disabling this for now because the outline is visualy inconsistent with the button focus state. Tracking at https://bugs.webkit.org/show_bug.cgi?id=174906 */ outline: none; } .ios .slider > input { /* On iOS only, we want to only capture events on the thumb and not the track. */ pointer-events: none; /* Make sure we don't show any UI as we drag the scrubber on iOS. */ -webkit-user-select: none !important; -webkit-touch-callout: none !important; -webkit-tap-highlight-color: transparent; } .slider > input::-webkit-slider-thumb { width: 9px; height: 100%; border: none; box-shadow: none; background-color: transparent; -webkit-appearance: none !important; pointer-events: all; } /* When disabled, we only want to show the track and turn off interaction. */ .slider.disabled > input, .slider.disabled > .custom-slider > .primary, .slider.disabled > .custom-slider > .secondary, .slider.disabled > .custom-slider > .knob { display: none; } /* Increase the touch region for the thumb on iOS */ .ios .slider > input { /* We need to extend the slider to ensure the padded thumb is tracking along the same width as the custom slider rendering. */ width: calc(100% + 16px); height: calc(100% + 10px); transform: translate(-8px, -5px); } .ios .slider > input::-webkit-slider-runnable-track { /* We need to force the height to be 100% as on some pages the height would be 0 otherwise, see . */ height: 100%; } .ios .slider > input::-webkit-slider-thumb { padding: 0 8px; box-sizing: content-box; }