Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(9)

Unified Diff: third_party/polymer/components/paper-toggle-button/paper-toggle-button.html

Issue 582873003: Polymer elements added to third_party/polymer. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/polymer/components/paper-toggle-button/paper-toggle-button.html
diff --git a/third_party/polymer/components/paper-toggle-button/paper-toggle-button.html b/third_party/polymer/components/paper-toggle-button/paper-toggle-button.html
new file mode 100644
index 0000000000000000000000000000000000000000..7a4b107f530640424087092f3190859cadf7f35d
--- /dev/null
+++ b/third_party/polymer/components/paper-toggle-button/paper-toggle-button.html
@@ -0,0 +1,125 @@
+<!--
+Copyright (c) 2014 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
+-->
+
+<!--
+`paper-toggle-button` provides a ON/OFF switch that user can toggle the state
+by tapping or by dragging the swtich.
+
+Example:
+
+ <paper-toggle-button></paper-toggle-button>
+
+Styling toggle button:
+
+To change the ink color for checked state:
+
+ paper-toggle-button::shadow paper-radio-button::shadow #ink[checked] {
+ color: #4285f4;
+ }
+
+To change the radio checked color:
+
+ paper-toggle-button::shadow paper-radio-button::shadow #onRadio {
+ background-color: #4285f4;
+ }
+
+To change the bar color for checked state:
+
+ paper-toggle-button::shadow #toggleBar[checked] {
+ background-color: #4285f4;
+ }
+
+To change the ink color for unchecked state:
+
+ paper-toggle-button::shadow paper-radio-button::shadow #ink {
+ color: #b5b5b5;
+ }
+
+To change the radio unchecked color:
+
+ paper-toggle-button::shadow paper-radio-button::shadow #offRadio {
+ border-color: #b5b5b5;
+ }
+
+To change the bar color for unchecked state:
+
+ paper-toggle-button::shadow #toggleBar {
+ background-color: red;
+ }
+
+@group Paper Elements
+@element paper-toggle-button
+@homepage github.io
+-->
+
+<link rel="import" href="../paper-radio-button/paper-radio-button.html">
+
+<polymer-element name="paper-toggle-button" attributes="checked" role="button" aria-pressed="false" tabindex="0">
+<template>
+
+ <link rel="stylesheet" href="paper-toggle-button.css">
+
+ <div id="toggleContainer">
+
+ <div id="toggleBar" checked?="{{checked}}"></div>
+
+ <paper-radio-button id="toggleRadio" toggles checked="{{checked}}"
+ on-trackstart="{{trackStart}}" on-trackx="{{trackx}}" on-trackend="{{trackEnd}}"></paper-radio-button>
+
+ </div>
+
+</template>
+<script>
+
+ Polymer('paper-toggle-button', {
+
+ /**
+ * Fired when the checked state changes.
+ *
+ * @event change
+ */
+
+ /**
+ * Gets or sets the state, `true` is checked and `false` is unchecked.
+ *
+ * @attribute checked
+ * @type boolean
+ * @default false
+ */
+ checked: false,
+
+ trackStart: function(e) {
+ this._w = this.$.toggleBar.offsetLeft + this.$.toggleBar.offsetWidth;
+ e.preventTap();
+ },
+
+ trackx: function(e) {
+ this._x = Math.min(this._w,
+ Math.max(0, this.checked ? this._w + e.dx : e.dx));
+ this.$.toggleRadio.classList.add('dragging');
+ var s = this.$.toggleRadio.style;
+ s.webkitTransform = s.transform = 'translate3d(' + this._x + 'px,0,0)';
+ },
+
+ trackEnd: function() {
+ var s = this.$.toggleRadio.style;
+ s.webkitTransform = s.transform = null;
+ this.$.toggleRadio.classList.remove('dragging');
+ this.checked = Math.abs(this._x) > this._w / 2;
+ },
+
+ checkedChanged: function() {
+ this.setAttribute('aria-pressed', Boolean(this.checked));
+ this.fire('change');
+ }
+
+ });
+
+</script>
+</polymer-element>

Powered by Google App Engine
This is Rietveld 408576698