181 lines
4 KiB
SCSS
181 lines
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-checkbox {
|
||
|
position: relative;
|
||
|
|
||
|
z-index: 1;
|
||
|
|
||
|
vertical-align: middle;
|
||
|
|
||
|
display: inline-block;
|
||
|
|
||
|
box-sizing: border-box;
|
||
|
width: 100%;
|
||
|
height: $checkbox-label-height;
|
||
|
margin: 0;
|
||
|
padding: 0;
|
||
|
|
||
|
&.is-upgraded {
|
||
|
padding-left: $checkbox-button-size + $checkbox-padding;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
.mdl-checkbox__input {
|
||
|
line-height: $checkbox-label-height;
|
||
|
|
||
|
.mdl-checkbox.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-checkbox__box-outline {
|
||
|
position: absolute;
|
||
|
top: $checkbox-top-offset;
|
||
|
left: 0;
|
||
|
|
||
|
display: inline-block;
|
||
|
|
||
|
box-sizing: border-box;
|
||
|
width: $checkbox-button-size;
|
||
|
height: $checkbox-button-size;
|
||
|
margin: 0;
|
||
|
|
||
|
cursor: pointer;
|
||
|
overflow: hidden;
|
||
|
|
||
|
border: 2px solid $checkbox-off-color;
|
||
|
border-radius: 2px;
|
||
|
|
||
|
z-index: 2;
|
||
|
|
||
|
.mdl-checkbox.is-checked & {
|
||
|
border: 2px solid $checkbox-color;
|
||
|
}
|
||
|
|
||
|
fieldset[disabled] .mdl-checkbox &,
|
||
|
.mdl-checkbox.is-disabled & {
|
||
|
border: 2px solid $checkbox-disabled-color;
|
||
|
cursor: auto;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
.mdl-checkbox__focus-helper {
|
||
|
position: absolute;
|
||
|
top: $checkbox-top-offset;
|
||
|
left: 0;
|
||
|
|
||
|
display: inline-block;
|
||
|
|
||
|
box-sizing: border-box;
|
||
|
width: $checkbox-button-size;
|
||
|
height: $checkbox-button-size;
|
||
|
border-radius: 50%;
|
||
|
|
||
|
background-color: transparent;
|
||
|
|
||
|
.mdl-checkbox.is-focused & {
|
||
|
box-shadow: 0 0 0px ($checkbox-button-size / 2) rgba(0, 0, 0, 0.1);
|
||
|
background-color: rgba(0, 0, 0, 0.1);
|
||
|
}
|
||
|
|
||
|
.mdl-checkbox.is-focused.is-checked & {
|
||
|
box-shadow: 0 0 0px ($checkbox-button-size / 2) $checkbox-focus-color;
|
||
|
background-color: $checkbox-focus-color;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
.mdl-checkbox__tick-outline {
|
||
|
position: absolute;
|
||
|
top: 0;
|
||
|
left: 0;
|
||
|
height: 100%;
|
||
|
width: 100%;
|
||
|
mask: url("#{$checkbox-image-path}/tick-mask.svg?embed");
|
||
|
|
||
|
background: transparent;
|
||
|
@include material-animation-default(0.28s);
|
||
|
transition-property: background;
|
||
|
|
||
|
.mdl-checkbox.is-checked & {
|
||
|
background: $checkbox-color url("#{$checkbox-image-path}/tick.svg?embed");
|
||
|
}
|
||
|
|
||
|
fieldset[disabled] .mdl-checkbox.is-checked &,
|
||
|
.mdl-checkbox.is-checked.is-disabled & {
|
||
|
background: $checkbox-disabled-color url("#{$checkbox-image-path}/tick.svg?embed");
|
||
|
}
|
||
|
}
|
||
|
|
||
|
.mdl-checkbox__label {
|
||
|
position: relative;
|
||
|
cursor: pointer;
|
||
|
font-size: $checkbox-label-font-size;
|
||
|
line-height: $checkbox-label-height;
|
||
|
margin: 0;
|
||
|
|
||
|
fieldset[disabled] .mdl-checkbox &,
|
||
|
.mdl-checkbox.is-disabled & {
|
||
|
color: $checkbox-disabled-color;
|
||
|
cursor: auto;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
.mdl-checkbox__ripple-container {
|
||
|
position: absolute;
|
||
|
z-index: 2;
|
||
|
top: -(($checkbox-ripple-size - $checkbox-label-height) / 2);
|
||
|
left: -(($checkbox-ripple-size - $checkbox-button-size) / 2);
|
||
|
|
||
|
box-sizing: border-box;
|
||
|
width: $checkbox-ripple-size;
|
||
|
height: $checkbox-ripple-size;
|
||
|
border-radius: 50%;
|
||
|
|
||
|
cursor: pointer;
|
||
|
|
||
|
overflow: hidden;
|
||
|
-webkit-mask-image: -webkit-radial-gradient(circle, white, black);
|
||
|
|
||
|
& .mdl-ripple {
|
||
|
background: $checkbox-color;
|
||
|
}
|
||
|
|
||
|
fieldset[disabled] .mdl-checkbox &,
|
||
|
.mdl-checkbox.is-disabled & {
|
||
|
cursor: auto;
|
||
|
}
|
||
|
|
||
|
fieldset[disabled] .mdl-checkbox & .mdl-ripple,
|
||
|
.mdl-checkbox.is-disabled & .mdl-ripple {
|
||
|
background: transparent;
|
||
|
}
|
||
|
}
|