/** * 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"; // The button component. Defaults to a flat button. .mdl-button { background: transparent; border: none; border-radius: $button-border-radius; color: $button-secondary-color; position: relative; height: $button-height; min-width: $button-min-width; padding: 0 $button-padding; display: inline-block; @include typo-button(); overflow: hidden; will-change: box-shadow, transform; transition: box-shadow 0.2s $animation-curve-fast-out-linear-in, background-color 0.2s $animation-curve-default, color 0.2s $animation-curve-default; outline: none; cursor: pointer; text-decoration: none; text-align: center; line-height: $button-height; vertical-align: middle; &::-moz-focus-inner { border: 0; } &:hover { background-color: $button-hover-color; } &:focus:not(:active) { background-color: $button-focus-color; } &:active { background-color: $button-active-color; } &.mdl-button--colored { color: $button-primary-color-alt; &:focus:not(:active) { background-color: $button-focus-color-alt; } } } input.mdl-button[type="submit"] { -webkit-appearance:none; } // Raised buttons .mdl-button--raised { background: $button-primary-color; @include shadow-2dp(); &:active { @include shadow-4dp(); background-color: $button-active-color; } &:focus:not(:active) { @include focus-shadow(); background-color: $button-active-color; } &.mdl-button--colored { background: $button-primary-color-alt; color: $button-secondary-color-alt; &:hover { background-color: $button-hover-color-alt; } &:active { background-color: $button-active-color-alt; } &:focus:not(:active) { background-color: $button-active-color-alt; } & .mdl-ripple { background: $button-ripple-color-alt; } } } // FABs .mdl-button--fab { border-radius: 50%; font-size: $button-fab-font-size; height: $button-fab-size; margin: auto; min-width: $button-fab-size; width: $button-fab-size; padding: 0; overflow: hidden; background: $button-primary-color; box-shadow: 0 1px 1.5px 0 rgba(0,0,0,0.12), 0 1px 1px 0 rgba(0,0,0,0.24); position: relative; line-height: normal; & .material-icons { position: absolute; top: 50%; left: 50%; transform: translate(- $button-fab-font-size / 2, - $button-fab-font-size / 2); line-height: $button-fab-font-size; width: $button-fab-font-size; } &.mdl-button--mini-fab { height: $button-fab-size-mini; min-width: $button-fab-size-mini; width: $button-fab-size-mini; } & .mdl-button__ripple-container { border-radius: 50%; // Fixes clipping bug in Safari. -webkit-mask-image: -webkit-radial-gradient(circle, white, black); } &:active { @include shadow-4dp(); background-color: $button-active-color; } &:focus:not(:active) { @include focus-shadow(); background-color: $button-active-color; } &.mdl-button--colored { background: $button-fab-color-alt; color: $button-fab-text-color-alt; &:hover { background-color: $button-fab-hover-color-alt; } &:focus:not(:active) { background-color: $button-fab-active-color-alt; } &:active { background-color: $button-fab-active-color-alt; } & .mdl-ripple { background: $button-fab-ripple-color-alt; } } } // Icon buttons .mdl-button--icon { border-radius: 50%; font-size: $button-fab-font-size; height: $button-icon-size; margin-left: 0; margin-right: 0; min-width: $button-icon-size; width: $button-icon-size; padding: 0; overflow: hidden; color: inherit; line-height: normal; & .material-icons { position: absolute; top: 50%; left: 50%; transform: translate(- $button-fab-font-size / 2, - $button-fab-font-size / 2); line-height: $button-fab-font-size; width: $button-fab-font-size; } &.mdl-button--mini-icon { height: $button-icon-size-mini; min-width: $button-icon-size-mini; width: $button-icon-size-mini; & .material-icons { top: ($button-icon-size-mini - $button-fab-font-size) / 2; left: ($button-icon-size-mini - $button-fab-font-size) / 2; } } & .mdl-button__ripple-container { border-radius: 50%; // Fixes clipping bug in Safari. -webkit-mask-image: -webkit-radial-gradient(circle, white, black); } } // Ripples .mdl-button__ripple-container { display: block; height: 100%; left: 0px; position: absolute; top: 0px; width: 100%; z-index: 0; overflow: hidden; .mdl-button[disabled] & .mdl-ripple, .mdl-button.mdl-button--disabled & .mdl-ripple { background-color: transparent; } } // Colorized buttons .mdl-button--primary.mdl-button--primary { color: $button-primary-color-alt; & .mdl-ripple { background: $button-secondary-color-alt; } &.mdl-button--raised, &.mdl-button--fab { color: $button-secondary-color-alt; background-color: $button-primary-color-alt; } } .mdl-button--accent.mdl-button--accent { color: $button-fab-color-alt; & .mdl-ripple { background: $button-fab-text-color-alt; } &.mdl-button--raised, &.mdl-button--fab { color: $button-fab-text-color-alt; background-color: $button-fab-color-alt; } } // Disabled buttons .mdl-button { // Bump up specificity by using [disabled] twice. &[disabled][disabled], &.mdl-button--disabled.mdl-button--disabled { color: $button-secondary-color-disabled; cursor: default; background-color: transparent; } &--fab { // Bump up specificity by using [disabled] twice. &[disabled][disabled], &.mdl-button--disabled.mdl-button--disabled { background-color: $button-primary-color-disabled; color: $button-secondary-color-disabled; @include shadow-2dp(); } } &--raised { // Bump up specificity by using [disabled] twice. &[disabled][disabled], &.mdl-button--disabled.mdl-button--disabled { background-color: $button-primary-color-disabled; color: $button-secondary-color-disabled; @include shadow-2dp(); } } &--colored { // Bump up specificity by using [disabled] twice. &[disabled][disabled], &.mdl-button--disabled.mdl-button--disabled { color: $button-secondary-color-disabled; } } } // Align icons inside buttons with text .mdl-button .material-icons { vertical-align: middle; }