| 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-radio {
 | 
| 
bsw/jbe@1309
 | 
    21   position: relative;
 | 
| 
bsw/jbe@1309
 | 
    22 
 | 
| 
bsw/jbe@1309
 | 
    23   font-size: $radio-label-font-size;
 | 
| 
bsw/jbe@1309
 | 
    24   line-height: $radio-label-height;
 | 
| 
bsw/jbe@1309
 | 
    25 
 | 
| 
bsw/jbe@1309
 | 
    26   display: inline-block;
 | 
| 
bsw/jbe@1309
 | 
    27 
 | 
| 
bsw/jbe@1309
 | 
    28   box-sizing: border-box;
 | 
| 
bsw/jbe@1309
 | 
    29   margin: 0;
 | 
| 
bsw/jbe@1309
 | 
    30   padding-left: 0;
 | 
| 
bsw/jbe@1309
 | 
    31 
 | 
| 
bsw/jbe@1309
 | 
    32   &.is-upgraded {
 | 
| 
bsw/jbe@1309
 | 
    33     padding-left: $radio-button-size + $radio-padding;
 | 
| 
bsw/jbe@1309
 | 
    34   }
 | 
| 
bsw/jbe@1309
 | 
    35 }
 | 
| 
bsw/jbe@1309
 | 
    36 
 | 
| 
bsw/jbe@1309
 | 
    37 .mdl-radio__button {
 | 
| 
bsw/jbe@1309
 | 
    38   line-height: $radio-label-height;
 | 
| 
bsw/jbe@1309
 | 
    39 
 | 
| 
bsw/jbe@1309
 | 
    40   .mdl-radio.is-upgraded & {
 | 
| 
bsw/jbe@1309
 | 
    41     // Hide input element, while still making it respond to focus.
 | 
| 
bsw/jbe@1309
 | 
    42     position: absolute;
 | 
| 
bsw/jbe@1309
 | 
    43     width: 0;
 | 
| 
bsw/jbe@1309
 | 
    44     height: 0;
 | 
| 
bsw/jbe@1309
 | 
    45     margin: 0;
 | 
| 
bsw/jbe@1309
 | 
    46     padding: 0;
 | 
| 
bsw/jbe@1309
 | 
    47     opacity: 0;
 | 
| 
bsw/jbe@1309
 | 
    48     -ms-appearance: none;
 | 
| 
bsw/jbe@1309
 | 
    49     -moz-appearance: none;
 | 
| 
bsw/jbe@1309
 | 
    50     -webkit-appearance: none;
 | 
| 
bsw/jbe@1309
 | 
    51     appearance: none;
 | 
| 
bsw/jbe@1309
 | 
    52     border: none;
 | 
| 
bsw/jbe@1309
 | 
    53   }
 | 
| 
bsw/jbe@1309
 | 
    54 }
 | 
| 
bsw/jbe@1309
 | 
    55 
 | 
| 
bsw/jbe@1309
 | 
    56 .mdl-radio__outer-circle {
 | 
| 
bsw/jbe@1309
 | 
    57   position: absolute;
 | 
| 
bsw/jbe@1309
 | 
    58   top: $radio-top-offset;
 | 
| 
bsw/jbe@1309
 | 
    59   left: 0;
 | 
| 
bsw/jbe@1309
 | 
    60 
 | 
| 
bsw/jbe@1309
 | 
    61   display: inline-block;
 | 
| 
bsw/jbe@1309
 | 
    62 
 | 
| 
bsw/jbe@1309
 | 
    63   box-sizing: border-box;
 | 
| 
bsw/jbe@1309
 | 
    64   width: $radio-button-size;
 | 
| 
bsw/jbe@1309
 | 
    65   height: $radio-button-size;
 | 
| 
bsw/jbe@1309
 | 
    66   margin: 0;
 | 
| 
bsw/jbe@1309
 | 
    67 
 | 
| 
bsw/jbe@1309
 | 
    68   cursor: pointer;
 | 
| 
bsw/jbe@1309
 | 
    69 
 | 
| 
bsw/jbe@1309
 | 
    70   border: 2px solid $radio-off-color;
 | 
| 
bsw/jbe@1309
 | 
    71   border-radius: 50%;
 | 
| 
bsw/jbe@1309
 | 
    72 
 | 
| 
bsw/jbe@1309
 | 
    73   z-index: 2;
 | 
| 
bsw/jbe@1309
 | 
    74 
 | 
| 
bsw/jbe@1309
 | 
    75   .mdl-radio.is-checked & {
 | 
| 
bsw/jbe@1309
 | 
    76     border: 2px solid $radio-color;
 | 
| 
bsw/jbe@1309
 | 
    77   }
 | 
| 
bsw/jbe@1309
 | 
    78 
 | 
| 
bsw/jbe@1309
 | 
    79   fieldset[disabled] .mdl-radio,
 | 
| 
bsw/jbe@1309
 | 
    80   .mdl-radio.is-disabled & {
 | 
| 
bsw/jbe@1309
 | 
    81     border: 2px solid $radio-disabled-color;
 | 
| 
bsw/jbe@1309
 | 
    82     cursor: auto;
 | 
| 
bsw/jbe@1309
 | 
    83   }
 | 
| 
bsw/jbe@1309
 | 
    84 }
 | 
| 
bsw/jbe@1309
 | 
    85 
 | 
| 
bsw/jbe@1309
 | 
    86 .mdl-radio__inner-circle {
 | 
| 
bsw/jbe@1309
 | 
    87   position: absolute;
 | 
| 
bsw/jbe@1309
 | 
    88   z-index: 1;
 | 
| 
bsw/jbe@1309
 | 
    89   margin: 0;
 | 
| 
bsw/jbe@1309
 | 
    90   top: $radio-top-offset + $radio-inner-margin;
 | 
| 
bsw/jbe@1309
 | 
    91   left: $radio-inner-margin;
 | 
| 
bsw/jbe@1309
 | 
    92 
 | 
| 
bsw/jbe@1309
 | 
    93   box-sizing: border-box;
 | 
| 
bsw/jbe@1309
 | 
    94   width: $radio-button-size - ($radio-inner-margin * 2);
 | 
| 
bsw/jbe@1309
 | 
    95   height: $radio-button-size - ($radio-inner-margin * 2);
 | 
| 
bsw/jbe@1309
 | 
    96 
 | 
| 
bsw/jbe@1309
 | 
    97   cursor: pointer;
 | 
| 
bsw/jbe@1309
 | 
    98 
 | 
| 
bsw/jbe@1309
 | 
    99   @include material-animation-default(0.28s);
 | 
| 
bsw/jbe@1309
 | 
   100   transition-property: transform;
 | 
| 
bsw/jbe@1309
 | 
   101   transform: scale3d(0, 0, 0);
 | 
| 
bsw/jbe@1309
 | 
   102 
 | 
| 
bsw/jbe@1309
 | 
   103   border-radius: 50%;
 | 
| 
bsw/jbe@1309
 | 
   104   background: $radio-color;
 | 
| 
bsw/jbe@1309
 | 
   105 
 | 
| 
bsw/jbe@1309
 | 
   106   .mdl-radio.is-checked & {
 | 
| 
bsw/jbe@1309
 | 
   107     transform: scale3d(1, 1, 1);
 | 
| 
bsw/jbe@1309
 | 
   108   }
 | 
| 
bsw/jbe@1309
 | 
   109 
 | 
| 
bsw/jbe@1309
 | 
   110   fieldset[disabled] .mdl-radio &,
 | 
| 
bsw/jbe@1309
 | 
   111   .mdl-radio.is-disabled & {
 | 
| 
bsw/jbe@1309
 | 
   112     background: $radio-disabled-color;
 | 
| 
bsw/jbe@1309
 | 
   113     cursor: auto;
 | 
| 
bsw/jbe@1309
 | 
   114   }
 | 
| 
bsw/jbe@1309
 | 
   115 
 | 
| 
bsw/jbe@1309
 | 
   116   .mdl-radio.is-focused & {
 | 
| 
bsw/jbe@1309
 | 
   117     box-shadow: 0 0 0px 10px rgba(0, 0, 0, 0.1);
 | 
| 
bsw/jbe@1309
 | 
   118   }
 | 
| 
bsw/jbe@1309
 | 
   119 }
 | 
| 
bsw/jbe@1309
 | 
   120 
 | 
| 
bsw/jbe@1309
 | 
   121 .mdl-radio__label {
 | 
| 
bsw/jbe@1309
 | 
   122   cursor: pointer;
 | 
| 
bsw/jbe@1309
 | 
   123 
 | 
| 
bsw/jbe@1309
 | 
   124   fieldset[disabled] .mdl-radio &,
 | 
| 
bsw/jbe@1309
 | 
   125   .mdl-radio.is-disabled & {
 | 
| 
bsw/jbe@1309
 | 
   126     color: $radio-disabled-color;
 | 
| 
bsw/jbe@1309
 | 
   127     cursor: auto;
 | 
| 
bsw/jbe@1309
 | 
   128   }
 | 
| 
bsw/jbe@1309
 | 
   129 }
 | 
| 
bsw/jbe@1309
 | 
   130 
 | 
| 
bsw/jbe@1309
 | 
   131 .mdl-radio__ripple-container {
 | 
| 
bsw/jbe@1309
 | 
   132   position: absolute;
 | 
| 
bsw/jbe@1309
 | 
   133   z-index: 2;
 | 
| 
bsw/jbe@1309
 | 
   134   top: -(($radio-ripple-size - $radio-label-height) / 2);
 | 
| 
bsw/jbe@1309
 | 
   135   left: -(($radio-ripple-size - $radio-button-size) / 2);
 | 
| 
bsw/jbe@1309
 | 
   136 
 | 
| 
bsw/jbe@1309
 | 
   137   box-sizing: border-box;
 | 
| 
bsw/jbe@1309
 | 
   138   width: $radio-ripple-size;
 | 
| 
bsw/jbe@1309
 | 
   139   height: $radio-ripple-size;
 | 
| 
bsw/jbe@1309
 | 
   140   border-radius: 50%;
 | 
| 
bsw/jbe@1309
 | 
   141 
 | 
| 
bsw/jbe@1309
 | 
   142   cursor: pointer;
 | 
| 
bsw/jbe@1309
 | 
   143 
 | 
| 
bsw/jbe@1309
 | 
   144   overflow: hidden;
 | 
| 
bsw/jbe@1309
 | 
   145   -webkit-mask-image: -webkit-radial-gradient(circle, white, black);
 | 
| 
bsw/jbe@1309
 | 
   146 
 | 
| 
bsw/jbe@1309
 | 
   147   & .mdl-ripple {
 | 
| 
bsw/jbe@1309
 | 
   148     background: $radio-color;
 | 
| 
bsw/jbe@1309
 | 
   149   }
 | 
| 
bsw/jbe@1309
 | 
   150 
 | 
| 
bsw/jbe@1309
 | 
   151   fieldset[disabled] .mdl-radio &,
 | 
| 
bsw/jbe@1309
 | 
   152   .mdl-radio.is-disabled & {
 | 
| 
bsw/jbe@1309
 | 
   153     cursor: auto;
 | 
| 
bsw/jbe@1309
 | 
   154   }
 | 
| 
bsw/jbe@1309
 | 
   155 
 | 
| 
bsw/jbe@1309
 | 
   156   fieldset[disabled] .mdl-radio & .mdl-ripple,
 | 
| 
bsw/jbe@1309
 | 
   157   .mdl-radio.is-disabled & .mdl-ripple {
 | 
| 
bsw/jbe@1309
 | 
   158     background: transparent;
 | 
| 
bsw/jbe@1309
 | 
   159   }
 | 
| 
bsw/jbe@1309
 | 
   160 }
 |