/* 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; white-space: nowrap; } :host(:focus) { outline: 0; } #checkboxContainer { position: relative; width: 18px; height: 18px; cursor: pointer; -webkit-transform: translateZ(0); transform: translateZ(0); } #checkboxContainer.labeled { display: inline-block; vertical-align: middle; } #ink { position: absolute; top: -15px; left: -15px; width: 48px; height: 48px; color: #5a5f5a; } #ink[checked] { color: #0f9d58; } #checkbox { position: absolute; box-sizing: border-box; top: 0px; left: 0px; width: 18px; height: 18px; border: solid 2px; border-color: #5a5a5a; pointer-events: none; } /* checkbox checked animations */ #checkbox.checked.box { border: solid 2px; -webkit-animation: box-shrink 140ms ease-out forwards; animation: box-shrink 140ms ease-out forwards; } @-webkit-keyframes box-shrink { 0% { -webkit-transform: rotate(0deg); top: 0px; left: 0px; width: 18px; height: 18px; } 100% { -webkit-transform: rotate(45deg); top: 13px; left: 5px; width: 4px; height: 4px; } } @keyframes box-shrink { 0% { transform: rotate(0deg); top: 0px; left: 0px; width: 18px; height: 18px; } 100% { transform: rotate(45deg); top: 13px; left: 5px; width: 4px; height: 4px; } } #checkbox.checked.checkmark { border-left: none; border-top: none; -webkit-animation: checkmark-expand 140ms ease-out forwards; animation: checkmark-expand 140ms ease-out forwards; } @-webkit-keyframes checkmark-expand { 0% { -webkit-transform: rotate(45deg); top: 13px; left: 5px; width: 4px; height: 4px; } 100% { -webkit-transform: rotate(45deg); top: -4px; left: 6px; width: 10px; height: 21px; border-right-width: 2px; border-bottom-width: 2px; } } @keyframes checkmark-expand { 0% { transform: rotate(45deg); top: 13px; left: 5px; width: 4px; height: 4px; } 100% { transform: rotate(45deg); top: -4px; left: 6px; width: 10px; height: 21px; border-right-width: 2px; border-bottom-width: 2px; } } #checkbox.checked { -webkit-transform: rotate(45deg); transform: rotate(45deg); top: -4px; left: 6px; width: 10px; height: 21px; border-top: none; border-left: none; border-right-width: 2px; border-bottom-width: 2px; border-color: #0f9d58; } /* checkbox unchecked animations */ #checkbox.unchecked.checkmark { -webkit-transform: rotate(45deg); transform: rotate(45deg); border-left: none; border-top: none; -webkit-animation: checkmark-shrink 140ms ease-out forwards; animation: checkmark-shrink 140ms ease-out forwards; } @-webkit-keyframes checkmark-shrink { 0% { top: -4px; left: 6px; width: 10px; height: 21px; border-right-width: 2px; border-bottom-width: 2px; } 100% { top: 13px; left: 5px; width: 4px; height: 4px; } } @keyframes checkmark-shrink { 0% { top: -4px; left: 6px; width: 10px; height: 21px; border-right-width: 2px; border-bottom-width: 2px; } 100% { top: 13px; left: 5px; width: 4px; height: 4px; } } #checkbox.unchecked.box { -webkit-animation: box-expand 140ms ease-out forwards; animation: box-expand 140ms ease-out forwards; } @-webkit-keyframes box-expand { 0% { -webkit-transform: rotate(45deg); top: 13px; left: 5px; width: 4px; height: 4px; } 100% { -webkit-transform: rotate(0deg); top: 0px; left: 0px; width: 18px; height: 18px; } } @keyframes box-expand { 0% { transform: rotate(45deg); top: 13px; left: 5px; width: 4px; height: 4px; } 100% { transform: rotate(0deg); top: 0px; left: 0px; width: 18px; height: 18px; } } /* label */ #checkboxLabel { position: relative; display: inline-block; vertical-align: middle; padding-left: 8px; white-space: normal; pointer-events: none; } #checkboxLabel[hidden] { display: none; } /* disabled state */ :host([disabled]) { pointer-events: none; } :host([disabled]) #checkbox { opacity: 0.33; border-color: #5a5a5a; }