| <!-- |
| Copyright (C) 2016 The Android Open Source Project |
| |
| 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. |
| --> |
| |
| <link rel="import" href="../../../bower_components/polymer/polymer.html"> |
| |
| <link rel="import" href="../../../behaviors/gr-tooltip-behavior/gr-tooltip-behavior.html"> |
| <link rel="import" href="../../../behaviors/keyboard-shortcut-behavior/keyboard-shortcut-behavior.html"> |
| <link rel="import" href="../../../bower_components/paper-button/paper-button.html"> |
| <link rel="import" href="../../../styles/shared-styles.html"> |
| |
| <dom-module id="gr-button"> |
| <template strip-whitespace> |
| <style include="shared-styles"> |
| /* general styles for all buttons */ |
| :host { |
| --background-color: var(--gr-button-background, #fff); |
| --button-color: var(--gr-button-color, var(--color-link)); |
| display: inline-block; |
| font-family: var(--font-family-bold); |
| font-size: var(--font-size-small); |
| position: relative; |
| } |
| :host([hidden]) { |
| display: none; |
| } |
| :host([no-uppercase]) paper-button { |
| text-transform: none; |
| } |
| paper-button { |
| /* paper-button sets this to anti-aliased, which appears different than |
| roboto-medium elsewhere. */ |
| -webkit-font-smoothing: initial; |
| align-items: center; |
| background-color: var(--background-color); |
| color: var(--button-color); |
| display: flex; |
| font-family: inherit; |
| justify-content: center; |
| margin: var(--margin, 0); |
| min-width: var(--border, 0); |
| padding: var(--padding, 5px 10px); |
| @apply --gr-button; |
| } |
| paper-button:hover { |
| background: linear-gradient( |
| rgba(0, 0, 0, .12), |
| rgba(0, 0, 0, .12) |
| ), var(--background-color); |
| } |
| |
| /* Styles for raised buttons specifically */ |
| :host([primary][raised]), |
| :host([secondary][raised]) { |
| --background-color: var(--color-link); |
| --button-color: #fff; |
| } |
| |
| /* Keep below color definition for primary/secondary so that this takes |
| precedence when disabled. */ |
| :host([disabled]) { |
| --background-color: #eaeaea; |
| --button-color: #a8a8a8; |
| cursor: default; |
| } |
| |
| /* Styles for link buttons specifically */ |
| :host([link]) { |
| --background-color: transparent; |
| --margin: 0; |
| --padding: 5px 4px; |
| } |
| :host([disabled][link]) { |
| --background-color: transparent; |
| } |
| :host([link][tertiary]) { |
| --button-color: var(--color-link-tertiary); |
| } |
| |
| /* Styles for the optional down arrow */ |
| :host:not([down-arrow]) .downArrow {display: none; } |
| :host([down-arrow]) .downArrow { |
| border-top: .36em solid #ccc; |
| border-left: .36em solid transparent; |
| border-right: .36em solid transparent; |
| margin-bottom: .05em; |
| margin-left: .5em; |
| transition: border-top-color 200ms; |
| } |
| :host([down-arrow]) paper-button:hover .downArrow { |
| border-top-color: #666; |
| } |
| </style> |
| <paper-button |
| raised="[[!link]]" |
| disabled="[[_computeDisabled(disabled, loading)]]" |
| tabindex="-1"> |
| <slot></slot> |
| <i class="downArrow"></i> |
| </paper-button> |
| </template> |
| <script src="gr-button.js"></script> |
| </dom-module> |