material-design-lite/src/radio/_radio.scss

164 lines
3.4 KiB
SCSS

/**
* Copyright 2015 Google Inc. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
@import "../variables";
@import "../mixins";
.mdl-radio {
position: relative;
font-size: $radio-label-font-size;
line-height: $radio-label-height;
display: inline-block;
vertical-align: middle;
box-sizing: border-box;
height: $radio-label-height;
margin: 0;
padding-left: 0;
&.is-upgraded {
padding-left: $radio-button-size + $radio-padding;
}
}
.mdl-radio__button {
line-height: $radio-label-height;
.mdl-radio.is-upgraded & {
// Hide input element, while still making it respond to focus.
position: absolute;
width: 0;
height: 0;
margin: 0;
padding: 0;
opacity: 0;
-ms-appearance: none;
-moz-appearance: none;
-webkit-appearance: none;
appearance: none;
border: none;
}
}
.mdl-radio__outer-circle {
position: absolute;
top: $radio-top-offset;
left: 0;
display: inline-block;
box-sizing: border-box;
width: $radio-button-size;
height: $radio-button-size;
margin: 0;
cursor: pointer;
border: 2px solid $radio-off-color;
border-radius: 50%;
z-index: 2;
.mdl-radio.is-checked & {
border: 2px solid $radio-color;
}
fieldset[disabled] .mdl-radio,
.mdl-radio.is-disabled & {
border: 2px solid $radio-disabled-color;
cursor: auto;
}
}
.mdl-radio__inner-circle {
position: absolute;
z-index: 1;
margin: 0;
top: $radio-top-offset + $radio-inner-margin;
left: $radio-inner-margin;
box-sizing: border-box;
width: $radio-button-size - ($radio-inner-margin * 2);
height: $radio-button-size - ($radio-inner-margin * 2);
cursor: pointer;
@include material-animation-default(0.28s);
transition-property: transform;
transform: scale(0, 0);
border-radius: 50%;
background: $radio-color;
.mdl-radio.is-checked & {
transform: scale(1, 1);
}
fieldset[disabled] .mdl-radio &,
.mdl-radio.is-disabled & {
background: $radio-disabled-color;
cursor: auto;
}
.mdl-radio.is-focused & {
box-shadow: 0 0 0px 10px rgba(0, 0, 0, 0.1);
}
}
.mdl-radio__label {
cursor: pointer;
fieldset[disabled] .mdl-radio &,
.mdl-radio.is-disabled & {
color: $radio-disabled-color;
cursor: auto;
}
}
.mdl-radio__ripple-container {
position: absolute;
z-index: 2;
top: -(($radio-ripple-size - $radio-label-height) / 2);
left: -(($radio-ripple-size - $radio-button-size) / 2);
box-sizing: border-box;
width: $radio-ripple-size;
height: $radio-ripple-size;
border-radius: 50%;
cursor: pointer;
overflow: hidden;
-webkit-mask-image: -webkit-radial-gradient(circle, white, black);
& .mdl-ripple {
background: $radio-color;
}
fieldset[disabled] .mdl-radio &,
.mdl-radio.is-disabled & {
cursor: auto;
}
fieldset[disabled] .mdl-radio & .mdl-ripple,
.mdl-radio.is-disabled & .mdl-ripple {
background: transparent;
}
}