aboutsummaryrefslogtreecommitdiff
path: root/catapult/third_party/polymer/components/paper-fab/paper-fab.html
diff options
context:
space:
mode:
Diffstat (limited to 'catapult/third_party/polymer/components/paper-fab/paper-fab.html')
-rw-r--r--catapult/third_party/polymer/components/paper-fab/paper-fab.html187
1 files changed, 187 insertions, 0 deletions
diff --git a/catapult/third_party/polymer/components/paper-fab/paper-fab.html b/catapult/third_party/polymer/components/paper-fab/paper-fab.html
new file mode 100644
index 00000000..c7f05783
--- /dev/null
+++ b/catapult/third_party/polymer/components/paper-fab/paper-fab.html
@@ -0,0 +1,187 @@
+<!--
+@license
+Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+-->
+
+<link rel="import" href="../polymer/polymer.html">
+<link rel="import" href="../iron-flex-layout/iron-flex-layout.html">
+<link rel="import" href="../iron-icon/iron-icon.html">
+<link rel="import" href="../paper-behaviors/paper-button-behavior.html">
+<link rel="import" href="../paper-material/paper-material-shared-styles.html">
+<link rel="import" href="../paper-styles/color.html">
+<link rel="import" href="../paper-styles/default-theme.html">
+
+<!--
+Material design: [Floating Action Button](https://www.google.com/design/spec/components/buttons-floating-action-button.html)
+
+`paper-fab` is a floating action button. It contains an image placed in the center and
+comes in two sizes: regular size and a smaller size by applying the attribute `mini`. When
+the user touches the button, a ripple effect emanates from the center of the button.
+
+You may import `iron-icons` to use with this element, or provide a URL to a custom icon.
+See `iron-iconset` for more information about how to use a custom icon set.
+
+Example:
+
+ <link href="path/to/iron-icons/iron-icons.html" rel="import">
+
+ <paper-fab icon="add"></paper-fab>
+ <paper-fab mini icon="favorite"></paper-fab>
+ <paper-fab src="star.png"></paper-fab>
+
+
+### Styling
+
+The following custom properties and mixins are available for styling:
+
+Custom property | Description | Default
+----------------|-------------|----------
+`--paper-fab-background` | The background color of the button | `--accent-color`
+`--paper-fab-keyboard-focus-background` | The background color of the button when focused | `--paper-pink-900`
+`--paper-fab-disabled-background` | The background color of the button when it's disabled | `--paper-grey-300`
+`--paper-fab-disabled-text` | The text color of the button when it's disabled | `--paper-grey-500`
+`--paper-fab` | Mixin applied to the button | `{}`
+`--paper-fab-mini` | Mixin applied to a mini button | `{}`
+`--paper-fab-disabled` | Mixin applied to a disabled button | `{}`
+`--paper-fab-iron-icon` | Mixin applied to the iron-icon within the button | `{}`
+`--paper-fab-label` | Mixin applied to the label within the button | `{}`
+
+@group Paper Elements
+@demo demo/index.html
+-->
+
+<dom-module id="paper-fab">
+ <template strip-whitespace>
+ <style include="paper-material-shared-styles">
+ :host {
+ @apply(--layout-vertical);
+ @apply(--layout-center-center);
+
+ background: var(--paper-fab-background, --accent-color);
+ border-radius: 50%;
+ box-sizing: border-box;
+ color: var(--text-primary-color);
+ cursor: pointer;
+ height: 56px;
+ min-width: 0;
+ outline: none;
+ padding: 16px;
+ position: relative;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ -webkit-user-select: none;
+ user-select: none;
+ width: 56px;
+ z-index: 0;
+
+ /* NOTE: Both values are needed, since some phones require the value `transparent`. */
+ -webkit-tap-highlight-color: rgba(0,0,0,0);
+ -webkit-tap-highlight-color: transparent;
+
+ @apply(--paper-fab);
+ }
+
+ [hidden] {
+ display: none !important;
+ }
+
+ :host([mini]) {
+ width: 40px;
+ height: 40px;
+ padding: 8px;
+
+ @apply(--paper-fab-mini);
+ }
+
+ :host([disabled]) {
+ color: var(--paper-fab-disabled-text, --paper-grey-500);
+ background: var(--paper-fab-disabled-background, --paper-grey-300);
+
+ @apply(--paper-fab-disabled);
+ }
+
+ iron-icon {
+ @apply(--paper-fab-iron-icon);
+ }
+
+ span {
+ width: 100%;
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ text-align: center;
+
+ @apply(--paper-fab-label);
+ }
+
+ :host(.keyboard-focus) {
+ background: var(--paper-fab-keyboard-focus-background, --paper-pink-900);
+ }
+ </style>
+
+ <iron-icon id="icon" hidden$="{{!_computeIsIconFab(icon, src)}}" src="[[src]]" icon="[[icon]]"></iron-icon>
+ <span hidden$="{{_computeIsIconFab(icon, src)}}">{{label}}</span>
+ </template>
+
+ <script>
+ Polymer({
+ is: 'paper-fab',
+
+ behaviors: [
+ Polymer.PaperButtonBehavior
+ ],
+
+ properties: {
+ /**
+ * The URL of an image for the icon. If the src property is specified,
+ * the icon property should not be.
+ */
+ src: {
+ type: String,
+ value: ''
+ },
+
+ /**
+ * Specifies the icon name or index in the set of icons available in
+ * the icon's icon set. If the icon property is specified,
+ * the src property should not be.
+ */
+ icon: {
+ type: String,
+ value: ''
+ },
+
+ /**
+ * Set this to true to style this is a "mini" FAB.
+ */
+ mini: {
+ type: Boolean,
+ value: false,
+ reflectToAttribute: true
+ },
+
+ /**
+ * The label displayed in the badge. The label is centered, and ideally
+ * should have very few characters.
+ */
+ label: {
+ type: String,
+ observer: '_labelChanged'
+ }
+ },
+
+ _labelChanged: function() {
+ this.setAttribute('aria-label', this.label);
+ },
+
+ _computeIsIconFab: function(icon, src) {
+ return (icon.length > 0) || (src.length > 0);
+ }
+ });
+ </script>
+</dom-module>