polymer-paper-rails 0.2.5 → 0.2.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (143) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +19 -18
  3. data/app/assets/components/core-a11y-keys/core-a11y-keys.html +4 -4
  4. data/app/assets/components/core-animation/web-animations.html +1 -1
  5. data/app/assets/components/core-collapse/core-collapse.html +1 -1
  6. data/app/assets/components/core-drawer-panel/core-drawer-panel.css +14 -6
  7. data/app/assets/components/core-drawer-panel/core-drawer-panel.html +32 -8
  8. data/app/assets/components/core-dropdown/core-dropdown.html +8 -2
  9. data/app/assets/components/core-icon/core-icon.html +0 -2
  10. data/app/assets/components/core-icons/av-icons.html +2 -9
  11. data/app/assets/components/core-icons/communication-icons.html +39 -42
  12. data/app/assets/components/core-icons/core-icons.html +231 -235
  13. data/app/assets/components/core-icons/device-icons.html +75 -90
  14. data/app/assets/components/core-icons/editor-icons.html +52 -52
  15. data/app/assets/components/core-icons/hardware-icons.html +40 -41
  16. data/app/assets/components/core-icons/image-icons.html +133 -137
  17. data/app/assets/components/core-icons/maps-icons.html +55 -57
  18. data/app/assets/components/core-icons/notification-icons.html +34 -34
  19. data/app/assets/components/core-icons/social-icons.html +23 -37
  20. data/app/assets/components/core-menu/core-menu.html +8 -3
  21. data/app/assets/components/core-menu/core-submenu.html +2 -2
  22. data/app/assets/components/core-overlay/core-key-helper.html +3 -0
  23. data/app/assets/components/core-overlay/core-overlay-layer.html +3 -0
  24. data/app/assets/components/core-overlay/core-overlay.html +20 -4
  25. data/app/assets/components/core-resizable/core-resizable.html +248 -0
  26. data/app/assets/components/core-scroll-header-panel/core-scroll-header-panel.html +14 -3
  27. data/app/assets/components/core-selection/core-selection.html +1 -1
  28. data/app/assets/components/core-selector/core-selector.html +26 -26
  29. data/app/assets/components/core-style/core-style.html +1 -1
  30. data/app/assets/components/core-toolbar/core-toolbar.html +1 -1
  31. data/app/assets/components/paper-button/paper-button-base.html +56 -12
  32. data/app/assets/components/paper-button/paper-button.html +22 -5
  33. data/app/assets/components/paper-checkbox/paper-checkbox.css +65 -184
  34. data/app/assets/components/paper-checkbox/paper-checkbox.html +47 -55
  35. data/app/assets/components/paper-dialog/paper-action-dialog.html +3 -3
  36. data/app/assets/components/paper-dialog/paper-dialog.html +2 -2
  37. data/app/assets/components/paper-dropdown-menu/paper-dropdown-menu.html +4 -1
  38. data/app/assets/components/{core-elements → paper-elements}/metadata.html +0 -0
  39. data/app/assets/components/{core-elements → paper-elements}/paper-elements.html +1 -0
  40. data/app/assets/components/paper-fab/paper-fab.html +2 -2
  41. data/app/assets/components/paper-input/paper-autogrow-textarea.html +8 -3
  42. data/app/assets/components/paper-input/paper-char-counter.html +121 -0
  43. data/app/assets/components/paper-input/paper-input-decorator.css +1 -21
  44. data/app/assets/components/paper-input/paper-input-decorator.html +130 -51
  45. data/app/assets/components/paper-input/paper-input.html +31 -5
  46. data/app/assets/components/paper-item/paper-item.html +1 -2
  47. data/app/assets/components/paper-progress/paper-progress.html +1 -1
  48. data/app/assets/components/paper-radio-button/paper-radio-button.css +16 -12
  49. data/app/assets/components/paper-radio-button/paper-radio-button.html +9 -3
  50. data/app/assets/components/paper-ripple/paper-ripple.html +2 -1
  51. data/app/assets/components/paper-shadow/paper-shadow.css +10 -10
  52. data/app/assets/components/paper-shadow/paper-shadow.html +8 -1
  53. data/app/assets/components/paper-slider/paper-slider.html +28 -4
  54. data/app/assets/components/paper-spinner/paper-spinner.css +35 -23
  55. data/app/assets/components/paper-spinner/paper-spinner.html +46 -5
  56. data/app/assets/components/paper-tabs/paper-tabs.css +5 -0
  57. data/app/assets/components/paper-tabs/paper-tabs.html +32 -7
  58. data/app/assets/components/paper-toggle-button/paper-toggle-button.css +58 -30
  59. data/app/assets/components/paper-toggle-button/paper-toggle-button.html +69 -44
  60. data/app/assets/components/sampler-scaffold/sampler-scaffold.css +1 -1
  61. data/app/assets/components/web-animations-js/web-animations-next-lite.min.js +17 -0
  62. data/app/assets/components/web-animations-js/web-animations-next.min.js +17 -0
  63. data/app/assets/components/web-animations-js/web-animations.min.js +17 -0
  64. data/app/assets/components/webcomponentsjs/CustomElements.js +634 -0
  65. data/app/assets/components/webcomponentsjs/CustomElements.min.js +11 -0
  66. data/app/assets/components/webcomponentsjs/HTMLImports.js +764 -0
  67. data/app/assets/components/webcomponentsjs/HTMLImports.min.js +11 -0
  68. data/app/assets/components/webcomponentsjs/ShadowDOM.js +4277 -0
  69. data/app/assets/components/webcomponentsjs/ShadowDOM.min.js +13 -0
  70. data/app/assets/components/webcomponentsjs/package.json +31 -0
  71. data/app/assets/components/webcomponentsjs/webcomponents-lite.js +1728 -0
  72. data/app/assets/components/webcomponentsjs/webcomponents-lite.min.js +11 -0
  73. data/app/assets/components/webcomponentsjs/webcomponents.js +6114 -0
  74. data/app/assets/components/webcomponentsjs/webcomponents.min.js +14 -0
  75. data/lib/polymer-paper-rails/version.rb +1 -1
  76. metadata +20 -71
  77. data/app/assets/components/core-dropdown/metadata.html +0 -62
  78. data/app/assets/components/core-icons/png-icons.html +0 -19
  79. data/app/assets/components/core-label/core-label.html +0 -124
  80. data/app/assets/components/core-overlay/tests/html/core-overlay-basic.html +0 -127
  81. data/app/assets/components/core-overlay/tests/html/core-overlay-positioning-margin.html +0 -153
  82. data/app/assets/components/core-overlay/tests/html/core-overlay-positioning.html +0 -167
  83. data/app/assets/components/core-overlay/tests/html/core-overlay-scroll.html +0 -130
  84. data/app/assets/components/core-overlay/tests/js/htmltests.js +0 -6
  85. data/app/assets/components/core-overlay/tests/runner.html +0 -14
  86. data/app/assets/components/core-overlay/tests/tests.json +0 -6
  87. data/app/assets/components/core-popup-menu/core-popup-menu.css +0 -28
  88. data/app/assets/components/core-popup-menu/core-popup-menu.html +0 -198
  89. data/app/assets/components/core-popup-menu/core-popup-overlay.html +0 -111
  90. data/app/assets/components/core-popup-menu/metadata.html +0 -62
  91. data/app/assets/components/paper-focusable/paper-focusable.html +0 -146
  92. data/app/assets/components/platform/platform.js +0 -16
  93. data/app/assets/components/web-animations-js/web-animations.js +0 -5529
  94. data/app/assets/components/web-animations-next/Gruntfile.js +0 -279
  95. data/app/assets/components/web-animations-next/History.md +0 -76
  96. data/app/assets/components/web-animations-next/package.json +0 -33
  97. data/app/assets/components/web-animations-next/src/animation-constructor.js +0 -139
  98. data/app/assets/components/web-animations-next/src/animation-node.js +0 -31
  99. data/app/assets/components/web-animations-next/src/animation.js +0 -65
  100. data/app/assets/components/web-animations-next/src/apply-preserving-inline-style.js +0 -192
  101. data/app/assets/components/web-animations-next/src/apply.js +0 -25
  102. data/app/assets/components/web-animations-next/src/box-handler.js +0 -57
  103. data/app/assets/components/web-animations-next/src/color-handler.js +0 -62
  104. data/app/assets/components/web-animations-next/src/deprecation.js +0 -42
  105. data/app/assets/components/web-animations-next/src/dev.js +0 -16
  106. data/app/assets/components/web-animations-next/src/dimension-handler.js +0 -167
  107. data/app/assets/components/web-animations-next/src/effect-callback.js +0 -86
  108. data/app/assets/components/web-animations-next/src/effect.js +0 -110
  109. data/app/assets/components/web-animations-next/src/element-animatable.js +0 -19
  110. data/app/assets/components/web-animations-next/src/font-weight-handler.js +0 -42
  111. data/app/assets/components/web-animations-next/src/group-constructors.js +0 -81
  112. data/app/assets/components/web-animations-next/src/handler-utils.js +0 -177
  113. data/app/assets/components/web-animations-next/src/interpolation.js +0 -49
  114. data/app/assets/components/web-animations-next/src/matrix-decomposition.js +0 -452
  115. data/app/assets/components/web-animations-next/src/matrix-interpolation.js +0 -130
  116. data/app/assets/components/web-animations-next/src/maxifill-player.js +0 -162
  117. data/app/assets/components/web-animations-next/src/normalize-keyframes.js +0 -259
  118. data/app/assets/components/web-animations-next/src/number-handler.js +0 -72
  119. data/app/assets/components/web-animations-next/src/player.js +0 -193
  120. data/app/assets/components/web-animations-next/src/position-handler.js +0 -117
  121. data/app/assets/components/web-animations-next/src/property-interpolation.js +0 -62
  122. data/app/assets/components/web-animations-next/src/property-names.js +0 -35
  123. data/app/assets/components/web-animations-next/src/scope.js +0 -20
  124. data/app/assets/components/web-animations-next/src/shadow-handler.js +0 -108
  125. data/app/assets/components/web-animations-next/src/shape-handler.js +0 -85
  126. data/app/assets/components/web-animations-next/src/tick.js +0 -148
  127. data/app/assets/components/web-animations-next/src/timeline.js +0 -77
  128. data/app/assets/components/web-animations-next/src/timing-utilities.js +0 -242
  129. data/app/assets/components/web-animations-next/src/transform-handler.js +0 -262
  130. data/app/assets/components/web-animations-next/src/visibility-handler.js +0 -29
  131. data/app/assets/components/web-animations-next/target-config.js +0 -124
  132. data/app/assets/components/web-animations-next/target-loader.js +0 -13
  133. data/app/assets/components/web-animations-next/templates/boilerplate +0 -13
  134. data/app/assets/components/web-animations-next/templates/runner.html +0 -26
  135. data/app/assets/components/web-animations-next/templates/web-animations.html +0 -18
  136. data/app/assets/components/web-animations-next/templates/web-animations.js +0 -21
  137. data/app/assets/components/web-animations-next/web-animations-next-lite.dev.html +0 -44
  138. data/app/assets/components/web-animations-next/web-animations-next-lite.dev.js +0 -21
  139. data/app/assets/components/web-animations-next/web-animations-next.dev.html +0 -49
  140. data/app/assets/components/web-animations-next/web-animations-next.dev.js +0 -21
  141. data/app/assets/components/web-animations-next/web-animations.dev.html +0 -44
  142. data/app/assets/components/web-animations-next/web-animations.dev.js +0 -21
  143. data/app/assets/components/web-animations-next/web-animations.html +0 -50
@@ -36,6 +36,11 @@ Use `paper-input-decorator` directly, or see
36
36
  <a href="https://github.com/garstasio/ajax-form">`ajax-form`</a> for a possible solution
37
37
  to submitting a `paper-input`.
38
38
 
39
+ Validation
40
+ ----------
41
+
42
+ Use `paper-input-decorator` if you would like to implement validation.
43
+
39
44
  @group Paper Elements
40
45
  @element paper-input
41
46
  @homepage github.io
@@ -56,7 +61,7 @@ to submitting a `paper-input`.
56
61
  </style>
57
62
 
58
63
  <paper-input-decorator id="decorator" label="{{label}}" floatingLabel="{{floatingLabel}}" value="{{value}}" disabled?="{{disabled}}">
59
- <input is="core-input" value="{{value}}" committedValue="{{committedValue}}" on-change="{{changeAction}}" disabled?="{{disabled}}">
64
+ <input is="core-input" id="input" value="{{value}}" committedValue="{{committedValue}}" on-change="{{changeAction}}" disabled?="{{disabled}}">
60
65
  </paper-input-decorator>
61
66
 
62
67
  </template>
@@ -95,21 +100,42 @@ to submitting a `paper-input`.
95
100
  */
96
101
  disabled: {value: false, reflect: true},
97
102
 
103
+ /**
104
+ * The current value of the input.
105
+ *
106
+ * @attribute value
107
+ * @type String
108
+ * @default ''
109
+ */
98
110
  value: '',
99
111
 
112
+ /**
113
+ * The most recently committed value of the input.
114
+ *
115
+ * @attribute committedValue
116
+ * @type String
117
+ * @default ''
118
+ */
100
119
  committedValue: ''
101
120
 
102
121
  },
103
122
 
123
+ /**
124
+ * Focuses the `input`.
125
+ *
126
+ * @method focus
127
+ */
128
+ focus: function() {
129
+ this.$.input.focus();
130
+ },
131
+
104
132
  valueChanged: function() {
105
133
  this.$.decorator.updateLabelVisibility(this.value);
106
134
  },
107
135
 
108
136
  changeAction: function(e) {
109
- if (!window.ShadowDOMPolyfill) {
110
- // re-fire event that does not bubble across shadow roots
111
- this.fire('change', null, this);
112
- }
137
+ // re-fire event that does not bubble across shadow roots
138
+ this.fire('change', null, this);
113
139
  }
114
140
 
115
141
  });
@@ -82,7 +82,6 @@ Example:
82
82
  }
83
83
 
84
84
  .button-content {
85
- height: 100%;
86
85
  padding: 0.9em 1em;
87
86
  }
88
87
 
@@ -144,4 +143,4 @@ Example:
144
143
 
145
144
  });
146
145
  </script>
147
- </polymer-element>
146
+ </polymer-element>
@@ -21,7 +21,7 @@ progress, such as the buffer level during a streaming playback progress bar.
21
21
 
22
22
  Example:
23
23
 
24
- <paper-progress value="10" secondaryProgesss="30"></paper-progress>
24
+ <paper-progress value="10" secondaryProgress="30"></paper-progress>
25
25
 
26
26
  Styling progress bar:
27
27
 
@@ -50,25 +50,30 @@ subject to an additional IP rights grant found at http://polymer.github.io/PATEN
50
50
  border-radius: 50%;
51
51
  border: solid 2px;
52
52
  border-color: #5a5a5a;
53
+ transition: border-color 0.28s;
54
+ }
55
+
56
+ :host([checked]) #offRadio {
57
+ border-color: #009688;
53
58
  }
54
59
 
55
60
  #onRadio {
56
61
  position: absolute;
57
- top: 0;
58
- left: 0;
59
- width: 16px;
60
- height: 16px;
62
+ top: 4px;
63
+ left: 4px;
64
+ width: 8px;
65
+ height: 8px;
61
66
  border-radius: 50%;
62
- background-color: #0f9d58;
67
+ background-color: #009688;
63
68
  -webkit-transform: scale(0);
64
69
  transform: scale(0);
65
70
  transition: -webkit-transform ease 0.28s;
66
71
  transition: transform ease 0.28s;
67
72
  }
68
73
 
69
- #onRadio.fill {
70
- -webkit-transform: scale(1.1);
71
- transform: scale(1.1);
74
+ :host([checked]) #onRadio {
75
+ -webkit-transform: scale(1);
76
+ transform: scale(1);
72
77
  }
73
78
 
74
79
  #radioLabel {
@@ -89,16 +94,15 @@ subject to an additional IP rights grant found at http://polymer.github.io/PATEN
89
94
  pointer-events: none;
90
95
  }
91
96
 
97
+ :host([disabled]) #offRadio,
92
98
  :host([disabled]) #onRadio {
93
- display: none;
99
+ opacity: 0.33;
94
100
  }
95
101
 
96
102
  :host([disabled]) #offRadio {
97
- opacity: 0.33;
98
103
  border-color: #5a5a5a;
99
104
  }
100
105
 
101
- :host([disabled][checked]) #offRadio {
102
- opacity: 0.33;
106
+ :host([disabled][checked]) #onRadio {
103
107
  background-color: #5a5a5a;
104
108
  }
@@ -32,7 +32,11 @@ To change the radio checked color:
32
32
  paper-radio-button::shadow #onRadio {
33
33
  background-color: #4285f4;
34
34
  }
35
-
35
+
36
+ paper-radio-button[checked]::shadow #offRadio {
37
+ border-color: #4285f4;
38
+ }
39
+
36
40
  To change the ink color for unchecked state:
37
41
 
38
42
  paper-radio-button::shadow #ink {
@@ -133,6 +137,9 @@ To change the radio unchecked color:
133
137
  },
134
138
 
135
139
  tap: function() {
140
+ if (this.disabled) {
141
+ return;
142
+ }
136
143
  var old = this.checked;
137
144
  this.toggle();
138
145
  if (this.checked !== old) {
@@ -145,8 +152,7 @@ To change the radio unchecked color:
145
152
  },
146
153
 
147
154
  checkedChanged: function() {
148
- this.$.onRadio.classList.toggle('fill', this.checked);
149
- this.setAttribute('aria-checked', this.checked ? 'true': 'false');
155
+ this.setAttribute('aria-checked', this.checked ? 'true' : 'false');
150
156
  this.fire('core-change');
151
157
  },
152
158
 
@@ -44,7 +44,8 @@ Styling ripple effect:
44
44
  Note that CSS color property is inherited so it is not required to set it on
45
45
  the `paper-ripple` element directly.
46
46
 
47
- Apply `recenteringTouch` class to make the recentering rippling effect.
47
+ By default, the ripple is centered on the point of contact. Apply `recenteringTouch`
48
+ class to have the ripple grow toward the center of its container.
48
49
 
49
50
  <paper-ripple class="recenteringTouch"></paper-ripple>
50
51
 
@@ -26,41 +26,41 @@ html /deep/ paper-shadow::shadow #shadow-top[animated] {
26
26
  }
27
27
 
28
28
  html /deep/ .paper-shadow-top-z-1 {
29
- box-shadow: 0 2px 10px 0 rgba(0, 0, 0, 0.16);
29
+ box-shadow: none;
30
30
  }
31
31
 
32
32
  html /deep/ .paper-shadow-bottom-z-1 {
33
- box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.26);
33
+ box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.37);
34
34
  }
35
35
 
36
36
  html /deep/ .paper-shadow-top-z-2 {
37
- box-shadow: 0 6px 20px 0 rgba(0, 0, 0, 0.19);
37
+ box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.2);
38
38
  }
39
39
 
40
40
  html /deep/ .paper-shadow-bottom-z-2 {
41
- box-shadow: 0 8px 17px 0 rgba(0, 0, 0, 0.2);
41
+ box-shadow: 0 6px 10px 0 rgba(0, 0, 0, 0.3);
42
42
  }
43
43
 
44
44
  html /deep/ .paper-shadow-top-z-3 {
45
- box-shadow: 0 17px 50px 0 rgba(0, 0, 0, 0.19);
45
+ box-shadow: 0 11px 7px 0 rgba(0, 0, 0, 0.19);
46
46
  }
47
47
 
48
48
  html /deep/ .paper-shadow-bottom-z-3 {
49
- box-shadow: 0 12px 15px 0 rgba(0, 0, 0, 0.24);
49
+ box-shadow: 0 13px 25px 0 rgba(0, 0, 0, 0.3);
50
50
  }
51
51
 
52
52
  html /deep/ .paper-shadow-top-z-4 {
53
- box-shadow: 0 25px 55px 0 rgba(0, 0, 0, 0.21);
53
+ box-shadow: 0 14px 12px 0 rgba(0, 0, 0, 0.17);
54
54
  }
55
55
 
56
56
  html /deep/ .paper-shadow-bottom-z-4 {
57
- box-shadow: 0 16px 28px 0 rgba(0, 0, 0, 0.22);
57
+ box-shadow: 0 20px 40px 0 rgba(0, 0, 0, 0.3);
58
58
  }
59
59
 
60
60
  html /deep/ .paper-shadow-top-z-5 {
61
- box-shadow: 0 40px 77px 0 rgba(0, 0, 0, 0.22);
61
+ box-shadow: 0 17px 17px 0 rgba(0, 0, 0, 0.15);
62
62
  }
63
63
 
64
64
  html /deep/ .paper-shadow-bottom-z-5 {
65
- box-shadow: 0 27px 24px 0 rgba(0, 0, 0, 0.2);
65
+ box-shadow: 0 27px 55px 0 rgba(0, 0, 0, 0.3);
66
66
  }
@@ -64,6 +64,13 @@ Example:
64
64
 
65
65
  },
66
66
 
67
+ /**
68
+ * Set the z-depth of the shadow. This should be used after element
69
+ * creation instead of setting the z property directly.
70
+ *
71
+ * @method setZ
72
+ * @param {Number} newZ
73
+ */
67
74
  setZ: function(newZ) {
68
75
  if (this.z !== newZ) {
69
76
  this.$['shadow-bottom'].classList.remove('paper-shadow-bottom-z-' + this.z);
@@ -76,4 +83,4 @@ Example:
76
83
 
77
84
  });
78
85
  </script>
79
- </polymer-element>
86
+ </polymer-element>
@@ -116,6 +116,12 @@ To change the slider secondary progress bar color:
116
116
  *
117
117
  * @event core-change
118
118
  */
119
+
120
+ /**
121
+ * Fired when the slider's immediateValue changes.
122
+ *
123
+ * @event immediate-value-change
124
+ */
119
125
 
120
126
  /**
121
127
  * Fired when the slider's value changes due to user interaction.
@@ -183,9 +189,17 @@ To change the slider secondary progress bar color:
183
189
  * @type number
184
190
  * @default 0
185
191
  */
186
-
187
192
  maxMarkers: 100,
188
-
193
+
194
+ /**
195
+ * True when the user is dragging the slider.
196
+ *
197
+ * @attribute dragging
198
+ * @type boolean
199
+ * @default false
200
+ */
201
+ dragging: false,
202
+
189
203
  observe: {
190
204
  'step snaps': 'update'
191
205
  },
@@ -227,6 +241,7 @@ To change the slider secondary progress bar color:
227
241
  if (!this.dragging) {
228
242
  this.value = this.immediateValue;
229
243
  }
244
+ this.fire('immediate-value-change');
230
245
  },
231
246
 
232
247
  expandKnob: function() {
@@ -297,7 +312,7 @@ To change the slider secondary progress bar color:
297
312
  var ratio = (e.x - rect.left) / this._w;
298
313
  this.positionKnob(ratio);
299
314
  this.expandJob = this.job(this.expandJob, this.expandKnob, 60);
300
- this.fire('change');
315
+ this.asyncFire('change');
301
316
  },
302
317
 
303
318
  knobTransitionEnd: function(e) {
@@ -307,7 +322,8 @@ To change the slider secondary progress bar color:
307
322
  },
308
323
 
309
324
  updateMarkers: function() {
310
- this.markers = [], l = (this.max - this.min) / this.step;
325
+ this.markers = [];
326
+ var l = (this.max - this.min) / this.step;
311
327
  if (!this.snaps && l > this.maxMarkers) {
312
328
  return;
313
329
  }
@@ -316,10 +332,18 @@ To change the slider secondary progress bar color:
316
332
  }
317
333
  },
318
334
 
335
+ /**
336
+ * Increases value by `step` but not above `max`.
337
+ * @method increment
338
+ */
319
339
  increment: function() {
320
340
  this.value = this.clampValue(this.value + this.step);
321
341
  },
322
342
 
343
+ /**
344
+ * Decreases value by `step` but not below `min`.
345
+ * @method decrement
346
+ */
323
347
  decrement: function() {
324
348
  this.value = this.clampValue(this.value - this.step);
325
349
  },
@@ -134,75 +134,87 @@
134
134
  to { transform: rotate(1080deg); } /* 4 * ARCSIZE */
135
135
  }
136
136
 
137
+ /**
138
+ * HACK: Even though the intention is to have the current .spinner-layer at
139
+ * `opacity: 1`, we set it to `opacity: 0.99` instead since this forces Chrome
140
+ * to do proper subpixel rendering for the elements being animated. This is
141
+ * especially visible in Chrome 39 on Ubuntu 14.04. See:
142
+ *
143
+ * - https://github.com/Polymer/paper-spinner/issues/9
144
+ * - https://code.google.com/p/chromium/issues/detail?id=436255
145
+ */
137
146
  @-webkit-keyframes blue-fade-in-out {
138
- from { opacity: 1; }
139
- 25% { opacity: 1; }
147
+ from { opacity: 0.99; }
148
+ 25% { opacity: 0.99; }
140
149
  26% { opacity: 0; }
141
150
  89% { opacity: 0; }
142
- 90% { opacity: 1; }
143
- 100% { opacity: 1; }
151
+ 90% { opacity: 0.99; }
152
+ 100% { opacity: 0.99; }
144
153
  }
145
154
 
146
155
  @keyframes blue-fade-in-out {
147
- from { opacity: 1; }
148
- 25% { opacity: 1; }
156
+ from { opacity: 0.99; }
157
+ 25% { opacity: 0.99; }
149
158
  26% { opacity: 0; }
150
159
  89% { opacity: 0; }
151
- 90% { opacity: 1; }
152
- 100% { opacity: 1; }
160
+ 90% { opacity: 0.99; }
161
+ 100% { opacity: 0.99; }
153
162
  }
154
163
 
155
164
  @-webkit-keyframes red-fade-in-out {
156
165
  from { opacity: 0; }
157
166
  15% { opacity: 0; }
158
- 25% { opacity: 1; }
159
- 50% { opacity: 1; }
167
+ 25% { opacity: 0.99; }
168
+ 50% { opacity: 0.99; }
160
169
  51% { opacity: 0; }
161
170
  }
162
171
 
163
172
  @keyframes red-fade-in-out {
164
173
  from { opacity: 0; }
165
174
  15% { opacity: 0; }
166
- 25% { opacity: 1; }
167
- 50% { opacity: 1; }
175
+ 25% { opacity: 0.99; }
176
+ 50% { opacity: 0.99; }
168
177
  51% { opacity: 0; }
169
178
  }
170
179
 
171
180
  @-webkit-keyframes yellow-fade-in-out {
172
181
  from { opacity: 0; }
173
182
  40% { opacity: 0; }
174
- 50% { opacity: 1; }
175
- 75% { opacity: 1; }
183
+ 50% { opacity: 0.99; }
184
+ 75% { opacity: 0.99; }
176
185
  76% { opacity: 0; }
177
186
  }
178
187
 
179
188
  @keyframes yellow-fade-in-out {
180
189
  from { opacity: 0; }
181
190
  40% { opacity: 0; }
182
- 50% { opacity: 1; }
183
- 75% { opacity: 1; }
191
+ 50% { opacity: 0.99; }
192
+ 75% { opacity: 0.99; }
184
193
  76% { opacity: 0; }
185
194
  }
186
195
 
187
196
  @-webkit-keyframes green-fade-in-out {
188
197
  from { opacity: 0; }
189
198
  65% { opacity: 0; }
190
- 75% { opacity: 1; }
191
- 90% { opacity: 1; }
199
+ 75% { opacity: 0.99; }
200
+ 90% { opacity: 0.99; }
192
201
  100% { opacity: 0; }
193
202
  }
194
203
 
195
204
  @keyframes green-fade-in-out {
196
205
  from { opacity: 0; }
197
206
  65% { opacity: 0; }
198
- 75% { opacity: 1; }
199
- 90% { opacity: 1; }
207
+ 75% { opacity: 0.99; }
208
+ 90% { opacity: 0.99; }
200
209
  100% { opacity: 0; }
201
210
  }
202
211
 
203
212
  /**
204
213
  * Patch the gap that appear between the two adjacent div.circle-clipper while the
205
214
  * spinner is rotating (appears on Chrome 38, Safari 7.1, and IE 11).
215
+ *
216
+ * Update: the gap no longer appears on Chrome when .spinner-layer's opacity is 0.99,
217
+ * but still does on Safari and IE.
206
218
  */
207
219
  .gap-patch {
208
220
  position: absolute;
@@ -294,18 +306,18 @@
294
306
  to { transform: rotate(-130deg); }
295
307
  }
296
308
 
297
- #spinnerContainer.warmdown {
309
+ #spinnerContainer.cooldown {
298
310
  /* duration: SHRINK_TIME */
299
311
  -webkit-animation: container-rotate 1568ms linear infinite, fade-out 400ms cubic-bezier(0.4, 0.0, 0.2, 1);
300
312
  animation: container-rotate 1568ms linear infinite, fade-out 400ms cubic-bezier(0.4, 0.0, 0.2, 1);
301
313
  }
302
314
 
303
315
  @-webkit-keyframes fade-out {
304
- from { opacity: 1; }
316
+ from { opacity: 0.99; }
305
317
  to { opacity: 0; }
306
318
  }
307
319
 
308
320
  @keyframes fade-out {
309
- from { opacity: 1; }
321
+ from { opacity: 0.99; }
310
322
  to { opacity: 0; }
311
323
  }