| rev | line source | 
| bsw/jbe@1309 | 1 /** | 
| bsw/jbe@1309 | 2  * Copyright 2015 Google Inc. All Rights Reserved. | 
| bsw/jbe@1309 | 3  * | 
| bsw/jbe@1309 | 4  * Licensed under the Apache License, Version 2.0 (the "License"); | 
| bsw/jbe@1309 | 5  * you may not use this file except in compliance with the License. | 
| bsw/jbe@1309 | 6  * You may obtain a copy of the License at | 
| bsw/jbe@1309 | 7  * | 
| bsw/jbe@1309 | 8  *      http://www.apache.org/licenses/LICENSE-2.0 | 
| bsw/jbe@1309 | 9  * | 
| bsw/jbe@1309 | 10  * Unless required by applicable law or agreed to in writing, software | 
| bsw/jbe@1309 | 11  * distributed under the License is distributed on an "AS IS" BASIS, | 
| bsw/jbe@1309 | 12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | 
| bsw/jbe@1309 | 13  * See the License for the specific language governing permissions and | 
| bsw/jbe@1309 | 14  * limitations under the License. | 
| bsw/jbe@1309 | 15  */ | 
| bsw/jbe@1309 | 16 | 
| bsw/jbe@1309 | 17 @import "../variables"; | 
| bsw/jbe@1309 | 18 @import "../mixins"; | 
| bsw/jbe@1309 | 19 | 
| bsw/jbe@1309 | 20 .mdl-checkbox { | 
| bsw/jbe@1309 | 21   position: relative; | 
| bsw/jbe@1309 | 22 | 
| bsw/jbe@1309 | 23   z-index: 1; | 
| bsw/jbe@1309 | 24 | 
| bsw/jbe@1309 | 25   vertical-align: middle; | 
| bsw/jbe@1309 | 26 | 
| bsw/jbe@1309 | 27   display: inline-block; | 
| bsw/jbe@1309 | 28 | 
| bsw/jbe@1309 | 29   box-sizing: border-box; | 
| bsw/jbe@1309 | 30   width: 100%; | 
| bsw/jbe@1309 | 31   height: $checkbox-label-height; | 
| bsw/jbe@1309 | 32   margin: 0; | 
| bsw/jbe@1309 | 33   padding: 0; | 
| bsw/jbe@1309 | 34 | 
| bsw/jbe@1309 | 35   &.is-upgraded { | 
| bsw/jbe@1309 | 36     padding-left: $checkbox-button-size + $checkbox-padding; | 
| bsw/jbe@1309 | 37   } | 
| bsw/jbe@1309 | 38 } | 
| bsw/jbe@1309 | 39 | 
| bsw/jbe@1309 | 40 .mdl-checkbox__input { | 
| bsw/jbe@1309 | 41   line-height: $checkbox-label-height; | 
| bsw/jbe@1309 | 42 | 
| bsw/jbe@1309 | 43   .mdl-checkbox.is-upgraded & { | 
| bsw/jbe@1309 | 44     // Hide input element, while still making it respond to focus. | 
| bsw/jbe@1309 | 45     position: absolute; | 
| bsw/jbe@1309 | 46     width: 0; | 
| bsw/jbe@1309 | 47     height: 0; | 
| bsw/jbe@1309 | 48     margin: 0; | 
| bsw/jbe@1309 | 49     padding: 0; | 
| bsw/jbe@1309 | 50     opacity: 0; | 
| bsw/jbe@1309 | 51     -ms-appearance: none; | 
| bsw/jbe@1309 | 52     -moz-appearance: none; | 
| bsw/jbe@1309 | 53     -webkit-appearance: none; | 
| bsw/jbe@1309 | 54     appearance: none; | 
| bsw/jbe@1309 | 55     border: none; | 
| bsw/jbe@1309 | 56   } | 
| bsw/jbe@1309 | 57 } | 
| bsw/jbe@1309 | 58 | 
| bsw/jbe@1309 | 59 .mdl-checkbox__box-outline { | 
| bsw/jbe@1309 | 60   position: absolute; | 
| bsw/jbe@1309 | 61   top: $checkbox-top-offset; | 
| bsw/jbe@1309 | 62   left: 0; | 
| bsw/jbe@1309 | 63 | 
| bsw/jbe@1309 | 64   display: inline-block; | 
| bsw/jbe@1309 | 65 | 
| bsw/jbe@1309 | 66   box-sizing: border-box; | 
| bsw/jbe@1309 | 67   width: $checkbox-button-size; | 
| bsw/jbe@1309 | 68   height: $checkbox-button-size; | 
| bsw/jbe@1309 | 69   margin: 0; | 
| bsw/jbe@1309 | 70 | 
| bsw/jbe@1309 | 71   cursor: pointer; | 
| bsw/jbe@1309 | 72   overflow: hidden; | 
| bsw/jbe@1309 | 73 | 
| bsw/jbe@1309 | 74   border: 2px solid $checkbox-off-color; | 
| bsw/jbe@1309 | 75   border-radius: 2px; | 
| bsw/jbe@1309 | 76 | 
| bsw/jbe@1309 | 77   z-index: 2; | 
| bsw/jbe@1309 | 78 | 
| bsw/jbe@1309 | 79   .mdl-checkbox.is-checked & { | 
| bsw/jbe@1309 | 80     border: 2px solid $checkbox-color; | 
| bsw/jbe@1309 | 81   } | 
| bsw/jbe@1309 | 82 | 
| bsw/jbe@1309 | 83   fieldset[disabled] .mdl-checkbox &, | 
| bsw/jbe@1309 | 84   .mdl-checkbox.is-disabled & { | 
| bsw/jbe@1309 | 85     border: 2px solid $checkbox-disabled-color; | 
| bsw/jbe@1309 | 86     cursor: auto; | 
| bsw/jbe@1309 | 87   } | 
| bsw/jbe@1309 | 88 } | 
| bsw/jbe@1309 | 89 | 
| bsw/jbe@1309 | 90 .mdl-checkbox__focus-helper { | 
| bsw/jbe@1309 | 91   position: absolute; | 
| bsw/jbe@1309 | 92   top: $checkbox-top-offset; | 
| bsw/jbe@1309 | 93   left: 0; | 
| bsw/jbe@1309 | 94 | 
| bsw/jbe@1309 | 95   display: inline-block; | 
| bsw/jbe@1309 | 96 | 
| bsw/jbe@1309 | 97   box-sizing: border-box; | 
| bsw/jbe@1309 | 98   width: $checkbox-button-size; | 
| bsw/jbe@1309 | 99   height: $checkbox-button-size; | 
| bsw/jbe@1309 | 100   border-radius: 50%; | 
| bsw/jbe@1309 | 101 | 
| bsw/jbe@1309 | 102   background-color: transparent; | 
| bsw/jbe@1309 | 103 | 
| bsw/jbe@1309 | 104   .mdl-checkbox.is-focused & { | 
| bsw/jbe@1309 | 105     box-shadow: 0 0 0px ($checkbox-button-size / 2) rgba(0, 0, 0, 0.1); | 
| bsw/jbe@1309 | 106     background-color: rgba(0, 0, 0, 0.1); | 
| bsw/jbe@1309 | 107   } | 
| bsw/jbe@1309 | 108 | 
| bsw/jbe@1309 | 109   .mdl-checkbox.is-focused.is-checked & { | 
| bsw/jbe@1309 | 110     box-shadow: 0 0 0px ($checkbox-button-size / 2) $checkbox-focus-color; | 
| bsw/jbe@1309 | 111     background-color: $checkbox-focus-color; | 
| bsw/jbe@1309 | 112   } | 
| bsw/jbe@1309 | 113 } | 
| bsw/jbe@1309 | 114 | 
| bsw/jbe@1309 | 115 .mdl-checkbox__tick-outline { | 
| bsw/jbe@1309 | 116   position: absolute; | 
| bsw/jbe@1309 | 117   top: 0; | 
| bsw/jbe@1309 | 118   left: 0; | 
| bsw/jbe@1309 | 119   height: 100%; | 
| bsw/jbe@1309 | 120   width: 100%; | 
| bsw/jbe@1309 | 121   mask: url("#{$checkbox-image-path}/tick-mask.svg?embed"); | 
| bsw/jbe@1309 | 122 | 
| bsw/jbe@1309 | 123   background: transparent; | 
| bsw/jbe@1309 | 124   @include material-animation-default(0.28s); | 
| bsw/jbe@1309 | 125   transition-property: background; | 
| bsw/jbe@1309 | 126 | 
| bsw/jbe@1309 | 127   .mdl-checkbox.is-checked & { | 
| bsw/jbe@1309 | 128     background: $checkbox-color url("#{$checkbox-image-path}/tick.svg?embed"); | 
| bsw/jbe@1309 | 129   } | 
| bsw/jbe@1309 | 130 | 
| bsw/jbe@1309 | 131   fieldset[disabled] .mdl-checkbox.is-checked &, | 
| bsw/jbe@1309 | 132   .mdl-checkbox.is-checked.is-disabled & { | 
| bsw/jbe@1309 | 133     background: $checkbox-disabled-color url("#{$checkbox-image-path}/tick.svg?embed"); | 
| bsw/jbe@1309 | 134   } | 
| bsw/jbe@1309 | 135 } | 
| bsw/jbe@1309 | 136 | 
| bsw/jbe@1309 | 137 .mdl-checkbox__label { | 
| bsw/jbe@1309 | 138   position: relative; | 
| bsw/jbe@1309 | 139   cursor: pointer; | 
| bsw/jbe@1309 | 140   font-size: $checkbox-label-font-size; | 
| bsw/jbe@1309 | 141   line-height: $checkbox-label-height; | 
| bsw/jbe@1309 | 142   margin: 0; | 
| bsw/jbe@1309 | 143 | 
| bsw/jbe@1309 | 144   fieldset[disabled] .mdl-checkbox &, | 
| bsw/jbe@1309 | 145   .mdl-checkbox.is-disabled & { | 
| bsw/jbe@1309 | 146     color: $checkbox-disabled-color; | 
| bsw/jbe@1309 | 147     cursor: auto; | 
| bsw/jbe@1309 | 148   } | 
| bsw/jbe@1309 | 149 } | 
| bsw/jbe@1309 | 150 | 
| bsw/jbe@1309 | 151 .mdl-checkbox__ripple-container { | 
| bsw/jbe@1309 | 152   position: absolute; | 
| bsw/jbe@1309 | 153   z-index: 2; | 
| bsw/jbe@1309 | 154   top: -(($checkbox-ripple-size - $checkbox-label-height) / 2); | 
| bsw/jbe@1309 | 155   left: -(($checkbox-ripple-size - $checkbox-button-size) / 2); | 
| bsw/jbe@1309 | 156 | 
| bsw/jbe@1309 | 157   box-sizing: border-box; | 
| bsw/jbe@1309 | 158   width: $checkbox-ripple-size; | 
| bsw/jbe@1309 | 159   height: $checkbox-ripple-size; | 
| bsw/jbe@1309 | 160   border-radius: 50%; | 
| bsw/jbe@1309 | 161 | 
| bsw/jbe@1309 | 162   cursor: pointer; | 
| bsw/jbe@1309 | 163 | 
| bsw/jbe@1309 | 164   overflow: hidden; | 
| bsw/jbe@1309 | 165   -webkit-mask-image: -webkit-radial-gradient(circle, white, black); | 
| bsw/jbe@1309 | 166 | 
| bsw/jbe@1309 | 167   & .mdl-ripple { | 
| bsw/jbe@1309 | 168     background: $checkbox-color; | 
| bsw/jbe@1309 | 169   } | 
| bsw/jbe@1309 | 170 | 
| bsw/jbe@1309 | 171   fieldset[disabled] .mdl-checkbox &, | 
| bsw/jbe@1309 | 172   .mdl-checkbox.is-disabled & { | 
| bsw/jbe@1309 | 173     cursor: auto; | 
| bsw/jbe@1309 | 174   } | 
| bsw/jbe@1309 | 175 | 
| bsw/jbe@1309 | 176   fieldset[disabled] .mdl-checkbox & .mdl-ripple, | 
| bsw/jbe@1309 | 177   .mdl-checkbox.is-disabled & .mdl-ripple { | 
| bsw/jbe@1309 | 178     background: transparent; | 
| bsw/jbe@1309 | 179   } | 
| bsw/jbe@1309 | 180 } |