blob: 11e771b41952b1d6f2bc7b38537f91be9d3af2fd [file] [log] [blame]
<!--
@license
Copyright (c) 2016 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="../paper-behaviors/paper-ripple-behavior.html">
<!--
The following custom properties and mixins are also available for styling:
Custom property | Description | Default
----------------|-------------|----------
`--paper-icon-button-light-ripple` | Mixin applied to the paper ripple | `{}`
@group Paper Elements
@element paper-icon-button-light
@demo demo/paper-icon-button-light.html
-->
<dom-module id="paper-icon-button-light">
<template strip-whitespace>
<style>
:host {
vertical-align: middle;
color: inherit;
outline: none;
width: 24px;
height: 24px;
background: none;
margin: 0;
border: none;
padding: 0;
position: relative;
cursor: pointer;
/* NOTE: Both values are needed, since some phones require the value to be `transparent`. */
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
-webkit-tap-highlight-color: transparent;
}
:host([disabled]) {
color: #9b9b9b;
pointer-events: none;
cursor: auto;
}
paper-ripple {
opacity: 0.6;
color: currentColor;
@apply(--paper-icon-button-light-ripple);
}
</style>
<content></content>
</template>
<script>
Polymer({
is: 'paper-icon-button-light',
extends: 'button',
behaviors: [
Polymer.PaperRippleBehavior
],
listeners: {
'down': '_rippleDown',
'up': '_rippleUp',
'focus': '_rippleDown',
'blur': '_rippleUp',
},
_rippleDown: function() {
this.getRipple().uiDownAction();
},
_rippleUp: function() {
this.getRipple().uiUpAction();
},
/**
* @param {...*} var_args
*/
ensureRipple: function(var_args) {
var lastRipple = this._ripple;
Polymer.PaperRippleBehavior.ensureRipple.apply(this, arguments);
if (this._ripple && this._ripple !== lastRipple) {
this._ripple.center = true;
this._ripple.classList.add('circle');
}
}
});
</script>
</dom-module>