| 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 
 | 
| 
bsw/jbe@1309
 | 
    18 @import "../variables";
 | 
| 
bsw/jbe@1309
 | 
    19 @import "../mixins";
 | 
| 
bsw/jbe@1309
 | 
    20 
 | 
| 
bsw/jbe@1309
 | 
    21 .mdl-switch {
 | 
| 
bsw/jbe@1309
 | 
    22   position: relative;
 | 
| 
bsw/jbe@1309
 | 
    23 
 | 
| 
bsw/jbe@1309
 | 
    24   z-index: 1;
 | 
| 
bsw/jbe@1309
 | 
    25 
 | 
| 
bsw/jbe@1309
 | 
    26   vertical-align: middle;
 | 
| 
bsw/jbe@1309
 | 
    27 
 | 
| 
bsw/jbe@1309
 | 
    28   display: inline-block;
 | 
| 
bsw/jbe@1309
 | 
    29 
 | 
| 
bsw/jbe@1309
 | 
    30   box-sizing: border-box;
 | 
| 
bsw/jbe@1309
 | 
    31   width: 100%;
 | 
| 
bsw/jbe@1309
 | 
    32   height: $switch-label-height;
 | 
| 
bsw/jbe@1309
 | 
    33   margin: 0;
 | 
| 
bsw/jbe@1309
 | 
    34   padding: 0;
 | 
| 
bsw/jbe@1309
 | 
    35 
 | 
| 
bsw/jbe@1309
 | 
    36   overflow: visible;
 | 
| 
bsw/jbe@1309
 | 
    37 
 | 
| 
bsw/jbe@1309
 | 
    38   &.is-upgraded {
 | 
| 
bsw/jbe@1309
 | 
    39     padding-left: $switch-track-length - 8px;
 | 
| 
bsw/jbe@1309
 | 
    40   }
 | 
| 
bsw/jbe@1309
 | 
    41 
 | 
| 
bsw/jbe@1309
 | 
    42   // avoids blue box around switch
 | 
| 
bsw/jbe@1309
 | 
    43   -webkit-touch-callout: none;
 | 
| 
bsw/jbe@1309
 | 
    44   -webkit-user-select: none;
 | 
| 
bsw/jbe@1309
 | 
    45   -moz-user-select: none;
 | 
| 
bsw/jbe@1309
 | 
    46   -ms-user-select: none;
 | 
| 
bsw/jbe@1309
 | 
    47   user-select: none;
 | 
| 
bsw/jbe@1309
 | 
    48 }
 | 
| 
bsw/jbe@1309
 | 
    49 
 | 
| 
bsw/jbe@1309
 | 
    50 .mdl-switch__input {
 | 
| 
bsw/jbe@1309
 | 
    51   line-height: $switch-label-height;
 | 
| 
bsw/jbe@1309
 | 
    52 
 | 
| 
bsw/jbe@1309
 | 
    53   .mdl-switch.is-upgraded & {
 | 
| 
bsw/jbe@1309
 | 
    54     // Hide input element, while still making it respond to focus.
 | 
| 
bsw/jbe@1309
 | 
    55     position: absolute;
 | 
| 
bsw/jbe@1309
 | 
    56     width: 0;
 | 
| 
bsw/jbe@1309
 | 
    57     height: 0;
 | 
| 
bsw/jbe@1309
 | 
    58     margin: 0;
 | 
| 
bsw/jbe@1309
 | 
    59     padding: 0;
 | 
| 
bsw/jbe@1309
 | 
    60     opacity: 0;
 | 
| 
bsw/jbe@1309
 | 
    61     -ms-appearance: none;
 | 
| 
bsw/jbe@1309
 | 
    62     -moz-appearance: none;
 | 
| 
bsw/jbe@1309
 | 
    63     -webkit-appearance: none;
 | 
| 
bsw/jbe@1309
 | 
    64     appearance: none;
 | 
| 
bsw/jbe@1309
 | 
    65     border: none;
 | 
| 
bsw/jbe@1309
 | 
    66   }
 | 
| 
bsw/jbe@1309
 | 
    67 }
 | 
| 
bsw/jbe@1309
 | 
    68 
 | 
| 
bsw/jbe@1309
 | 
    69 .mdl-switch__track {
 | 
| 
bsw/jbe@1309
 | 
    70   background: $switch-off-track-color;
 | 
| 
bsw/jbe@1309
 | 
    71   position: absolute;
 | 
| 
bsw/jbe@1309
 | 
    72   left: 0;
 | 
| 
bsw/jbe@1309
 | 
    73   top: $switch-track-top;
 | 
| 
bsw/jbe@1309
 | 
    74   height: $switch-track-height;
 | 
| 
bsw/jbe@1309
 | 
    75   width: $switch-track-length;
 | 
| 
bsw/jbe@1309
 | 
    76   border-radius: $switch-track-height;
 | 
| 
bsw/jbe@1309
 | 
    77 
 | 
| 
bsw/jbe@1309
 | 
    78   cursor: pointer;
 | 
| 
bsw/jbe@1309
 | 
    79 
 | 
| 
bsw/jbe@1309
 | 
    80   .mdl-switch.is-checked & {
 | 
| 
bsw/jbe@1309
 | 
    81     background: $switch-track-color;
 | 
| 
bsw/jbe@1309
 | 
    82   }
 | 
| 
bsw/jbe@1309
 | 
    83 
 | 
| 
bsw/jbe@1309
 | 
    84   fieldset[disabled] .mdl-switch,
 | 
| 
bsw/jbe@1309
 | 
    85   .mdl-switch.is-disabled & {
 | 
| 
bsw/jbe@1309
 | 
    86     background: $switch-disabled-track-color;
 | 
| 
bsw/jbe@1309
 | 
    87     cursor: auto;
 | 
| 
bsw/jbe@1309
 | 
    88   }
 | 
| 
bsw/jbe@1309
 | 
    89 }
 | 
| 
bsw/jbe@1309
 | 
    90 
 | 
| 
bsw/jbe@1309
 | 
    91 .mdl-switch__thumb {
 | 
| 
bsw/jbe@1309
 | 
    92   background: $switch-off-thumb-color;
 | 
| 
bsw/jbe@1309
 | 
    93   position: absolute;
 | 
| 
bsw/jbe@1309
 | 
    94   left: 0;
 | 
| 
bsw/jbe@1309
 | 
    95   top: $switch-thumb-top;
 | 
| 
bsw/jbe@1309
 | 
    96   height: $switch-thumb-size;
 | 
| 
bsw/jbe@1309
 | 
    97   width: $switch-thumb-size;
 | 
| 
bsw/jbe@1309
 | 
    98   border-radius: 50%;
 | 
| 
bsw/jbe@1309
 | 
    99 
 | 
| 
bsw/jbe@1309
 | 
   100   cursor: pointer;
 | 
| 
bsw/jbe@1309
 | 
   101 
 | 
| 
bsw/jbe@1309
 | 
   102   @include shadow-2dp();
 | 
| 
bsw/jbe@1309
 | 
   103 
 | 
| 
bsw/jbe@1309
 | 
   104   @include material-animation-default(0.28s);
 | 
| 
bsw/jbe@1309
 | 
   105   transition-property: left;
 | 
| 
bsw/jbe@1309
 | 
   106 
 | 
| 
bsw/jbe@1309
 | 
   107   .mdl-switch.is-checked & {
 | 
| 
bsw/jbe@1309
 | 
   108     background: $switch-thumb-color;
 | 
| 
bsw/jbe@1309
 | 
   109     left: $switch-track-length - $switch-thumb-size;
 | 
| 
bsw/jbe@1309
 | 
   110 
 | 
| 
bsw/jbe@1309
 | 
   111     @include shadow-3dp();
 | 
| 
bsw/jbe@1309
 | 
   112   }
 | 
| 
bsw/jbe@1309
 | 
   113 
 | 
| 
bsw/jbe@1309
 | 
   114   fieldset[disabled] .mdl-switch,
 | 
| 
bsw/jbe@1309
 | 
   115   .mdl-switch.is-disabled & {
 | 
| 
bsw/jbe@1309
 | 
   116     background: $switch-disabled-thumb-color;
 | 
| 
bsw/jbe@1309
 | 
   117     cursor: auto;
 | 
| 
bsw/jbe@1309
 | 
   118   }
 | 
| 
bsw/jbe@1309
 | 
   119 }
 | 
| 
bsw/jbe@1309
 | 
   120 
 | 
| 
bsw/jbe@1309
 | 
   121 .mdl-switch__focus-helper {
 | 
| 
bsw/jbe@1309
 | 
   122   position: absolute;
 | 
| 
bsw/jbe@1309
 | 
   123   top: 50%;
 | 
| 
bsw/jbe@1309
 | 
   124   left: 50%;
 | 
| 
bsw/jbe@1309
 | 
   125 
 | 
| 
bsw/jbe@1309
 | 
   126   transform: translate(-$switch-helper-size / 2, -$switch-helper-size / 2);
 | 
| 
bsw/jbe@1309
 | 
   127 
 | 
| 
bsw/jbe@1309
 | 
   128   display: inline-block;
 | 
| 
bsw/jbe@1309
 | 
   129 
 | 
| 
bsw/jbe@1309
 | 
   130   box-sizing: border-box;
 | 
| 
bsw/jbe@1309
 | 
   131   width: $switch-helper-size;
 | 
| 
bsw/jbe@1309
 | 
   132   height: $switch-helper-size;
 | 
| 
bsw/jbe@1309
 | 
   133   border-radius: 50%;
 | 
| 
bsw/jbe@1309
 | 
   134 
 | 
| 
bsw/jbe@1309
 | 
   135   background-color: transparent;
 | 
| 
bsw/jbe@1309
 | 
   136 
 | 
| 
bsw/jbe@1309
 | 
   137   .mdl-switch.is-focused & {
 | 
| 
bsw/jbe@1309
 | 
   138     box-shadow: 0 0 0px (($switch-ripple-size - $switch-helper-size) / 2)
 | 
| 
bsw/jbe@1309
 | 
   139         rgba(0, 0, 0, 0.1);
 | 
| 
bsw/jbe@1309
 | 
   140     background-color: rgba(0, 0, 0, 0.1);
 | 
| 
bsw/jbe@1309
 | 
   141   }
 | 
| 
bsw/jbe@1309
 | 
   142 
 | 
| 
bsw/jbe@1309
 | 
   143   .mdl-switch.is-focused.is-checked & {
 | 
| 
bsw/jbe@1309
 | 
   144     box-shadow: 0 0 0px (($switch-ripple-size - $switch-helper-size) / 2)
 | 
| 
bsw/jbe@1309
 | 
   145         $switch-faded-color;
 | 
| 
bsw/jbe@1309
 | 
   146     background-color: $switch-faded-color;
 | 
| 
bsw/jbe@1309
 | 
   147   }
 | 
| 
bsw/jbe@1309
 | 
   148 }
 | 
| 
bsw/jbe@1309
 | 
   149 
 | 
| 
bsw/jbe@1309
 | 
   150 .mdl-switch__label {
 | 
| 
bsw/jbe@1309
 | 
   151   position: relative;
 | 
| 
bsw/jbe@1309
 | 
   152   cursor: pointer;
 | 
| 
bsw/jbe@1309
 | 
   153   font-size: $switch-label-font-size;
 | 
| 
bsw/jbe@1309
 | 
   154   line-height: $switch-label-height;
 | 
| 
bsw/jbe@1309
 | 
   155   margin: 0;
 | 
| 
bsw/jbe@1309
 | 
   156   left: 24px;
 | 
| 
bsw/jbe@1309
 | 
   157 
 | 
| 
bsw/jbe@1309
 | 
   158   fieldset[disabled] .mdl-switch,
 | 
| 
bsw/jbe@1309
 | 
   159   .mdl-switch.is-disabled & {
 | 
| 
bsw/jbe@1309
 | 
   160     color: $switch-disabled-thumb-color;
 | 
| 
bsw/jbe@1309
 | 
   161     cursor: auto;
 | 
| 
bsw/jbe@1309
 | 
   162   }
 | 
| 
bsw/jbe@1309
 | 
   163 }
 | 
| 
bsw/jbe@1309
 | 
   164 
 | 
| 
bsw/jbe@1309
 | 
   165 .mdl-switch__ripple-container {
 | 
| 
bsw/jbe@1309
 | 
   166   position: absolute;
 | 
| 
bsw/jbe@1309
 | 
   167   z-index: 2;
 | 
| 
bsw/jbe@1309
 | 
   168   top: -($switch-ripple-size - $switch-label-height) / 2;
 | 
| 
bsw/jbe@1309
 | 
   169   left: $switch-thumb-size / 2 - $switch-ripple-size / 2;
 | 
| 
bsw/jbe@1309
 | 
   170 
 | 
| 
bsw/jbe@1309
 | 
   171   box-sizing: border-box;
 | 
| 
bsw/jbe@1309
 | 
   172   width: $switch-ripple-size;
 | 
| 
bsw/jbe@1309
 | 
   173   height: $switch-ripple-size;
 | 
| 
bsw/jbe@1309
 | 
   174   border-radius: 50%;
 | 
| 
bsw/jbe@1309
 | 
   175 
 | 
| 
bsw/jbe@1309
 | 
   176   cursor: pointer;
 | 
| 
bsw/jbe@1309
 | 
   177 
 | 
| 
bsw/jbe@1309
 | 
   178   overflow: hidden;
 | 
| 
bsw/jbe@1309
 | 
   179   -webkit-mask-image: -webkit-radial-gradient(circle, white, black);
 | 
| 
bsw/jbe@1309
 | 
   180 
 | 
| 
bsw/jbe@1309
 | 
   181   transition-duration: 0.40s;
 | 
| 
bsw/jbe@1309
 | 
   182   transition-timing-function: step-end;
 | 
| 
bsw/jbe@1309
 | 
   183   transition-property: left;
 | 
| 
bsw/jbe@1309
 | 
   184 
 | 
| 
bsw/jbe@1309
 | 
   185   & .mdl-ripple {
 | 
| 
bsw/jbe@1309
 | 
   186     background: $switch-color;
 | 
| 
bsw/jbe@1309
 | 
   187   }
 | 
| 
bsw/jbe@1309
 | 
   188 
 | 
| 
bsw/jbe@1309
 | 
   189   fieldset[disabled] .mdl-switch,
 | 
| 
bsw/jbe@1309
 | 
   190   .mdl-switch.is-disabled & {
 | 
| 
bsw/jbe@1309
 | 
   191     cursor: auto;
 | 
| 
bsw/jbe@1309
 | 
   192   }
 | 
| 
bsw/jbe@1309
 | 
   193 
 | 
| 
bsw/jbe@1309
 | 
   194   fieldset[disabled] .mdl-switch & .mdl-ripple,
 | 
| 
bsw/jbe@1309
 | 
   195   .mdl-switch.is-disabled & .mdl-ripple {
 | 
| 
bsw/jbe@1309
 | 
   196     background: transparent;
 | 
| 
bsw/jbe@1309
 | 
   197   }
 | 
| 
bsw/jbe@1309
 | 
   198 
 | 
| 
bsw/jbe@1309
 | 
   199   .mdl-switch.is-checked & {
 | 
| 
bsw/jbe@1309
 | 
   200     left: $switch-track-length - $switch-ripple-size / 2 -
 | 
| 
bsw/jbe@1309
 | 
   201         $switch-thumb-size / 2;
 | 
| 
bsw/jbe@1309
 | 
   202   }
 | 
| 
bsw/jbe@1309
 | 
   203 }
 |