Releases
This document lists the notable changes across the entirety of the project, including polyfill repos, tools, projects, and UI elements.
v0.5.5
Released 2015-02-17. See the full list of changes.
v0.5.4
Released 2015-01-23. See the full list of changes.
v0.5.3
Released 2015-01-21. See the full list of changes.
v0.5.2
Released 2014-12-11. See the full list of changes.
v0.5.1
Released 2014-11-13. See the full list of changes.
v0.5.0
Released 2014-11-11. See the full list of changes.
v0.4.2
Released 2014-10-02. See the full list of changes.
v0.4.1
Released 2014-09-18. See the full list of changes.
v0.4.0
Released 2014-08-27. See the full list of changes.
v0.4.1
Released 2014-09-18. See the full list of changes.
v0.4.0
Released 2014-08-27. See the full list of changes.
v0.3.5
Released 2014-08-08. See the full list of changes.
v0.3.4
Released 2014-07-11. See the full list of changes.
v0.3.3
Released 2014-06-19. See the full list of changes.
v0.3.2
Released 2014-06-09. See the full list of changes.
v0.3.1
Released 2014-05-30. See the full list of changes.
v0.3.0
Released 2014-05-27. See the full list of changes.
v0.2.4
Released 2014-05-12. See the full list of changes.
v0.2.3
Released 2014-04-18. See the full list of changes.
v0.2.2
Released 2014-03-31. See the full list of changes.
v0.2.1
Released 2014-03-07. See the full list of changes.
v0.2.0
Released 2014-02-14. See the full list of changes.
Happy Valentine’s Day. We ♥ web components!
2014-01-27
See the full list of changes.
2014-01-16
See the full list of changes.
2014-01-09
See the full list of changes.
2013-12-11
See the full list of changes.
2013-11-27
See the full list of changes.
2013-10-25
See the full list of changes.
2013-10-10
See the full list of changes.
2013-10-03
See the full list of changes.
2013-09-12
See the full list of changes.
2013-09-05
See the full list of changes.
2013-08-29
See the full list of changes.
2013-08-16
download this version or see the full list of changes.
Note: This was a hotfix release to fix a problem in Chrome 28 where document.createElement('nav', undefined)
result returns undefined
.
2013-08-15
download this version or see the full list of changes.
Polymer
General
“MDV” has been broken up into several new repositories to sepearate out the prollyfills from the Polymer pieces. New repos:
- polymer-expressions - Polymer’s template binding syntax.
- NodeBind - prollyfill for
Node.bind()
- TemplateBinding - prollyfill for Template Bindings.
- observe-js - library for observing Arrays, Objects, and PathValues
Changes
- Polymer’s
Loader
has been renamed toPolymerLoader
in preparation for ES6 Modules (commit)
Features
created()
replaces theready()
lifecycle callback in thePolymer()
constructor.ready()
is still supported for backwards compatibility (commit)<polymer-element noscript>
is back (commit). See registering an element.
Elements & Projects
polymer-elements
<polymer-anchor-position>
-><polymer-anchor-point>
(commit)<polymer-signals>
now bubbleson-*
events properly (commit)
polymer-ui-elements
- Added WIP
<polymer-ui-breadcrumbs>
(commit) - Fixed #12 -
<polymer-ui-accordion multi>
overreacts to click events <polymer-ui-overlay>
allows overridez-index
(commit)
Platform
Custom Elements
noscript
works etter with the polyfill (commit)- Support type-extension form of
document.createElement()
(commit) HTMLELementElement
implementation was removed as per spec removal (commit)
Shadow DOM
- Attribute dirtying is now smarter (commit)
2013-08-08
download this version or see the full list of changes.
Polymer
General
Features
- Native Custom Elements are on by default if they’re feature detected. Enable
them in Chrome Canary under
about:flags
.
Changes
?register
flag now forces Custom Elements polyfill. It used to turn the native API on (commit)
Core
polymer.min.js
builds now have a@version
string in the file (commit)- Fixed #230 - events on distributed nodes aren’t bubbled to parent nodes under Shadow DOM polyfill.
- Extended elements fully register before their extendees do (commit)
- HTMLImports polyfill defers processing of
<polymer-element>
s untilHTMLImportsLoaded
is fired (commit)
Elements & Projects
polymer-elements
<polymer-grid>
supports external items (commit)- Re-factoring (commit) and fixes (commit) for using
<polymer-overlay>
under the polyfills.
polymer-ui-elements
- Added
<polymer-ui-arrow>
(commit) - Added
<polymer-ui-dialog>
demos that use native<dialog>
(commit) <polymer-ui-overlay>
got an optional backdrop (commit)
Platform
MDV
- Added
Template.clear()
for unrolling bindings (commit) - Path in
bind(name, model, path)
is now optional and defaults to empty string (commit) createBinding()
has been removed (commit)- Support empty
if
(commit)
Shadow DOM
- Add support for
document.documentElement.appendChild
(commit) - Lifecycle callbacks,
document.register()
, Range, and the.form
property have been wrapped and properly work under the polyfill now (commit, commit, commit, commit)
2013-08-02
download this version or see the full list of changes.
Polymer
General
Changes
- Auto-registrationn of
<polymer-element>
s (e.g. not needing<script>Polymer()</script>
) has been temporarily removed due to timing issue with the way native Custom Elements (will) work.
Features
- Changes to bound property values now reflected back out to the HTML attribute. Note, properties that are objects are not reflected back. Fixes #188.
- Experimental support for native Custom Elements using
document.register()
. Enable inabout:flags
) and use the ?register flag. - Custom element
entered/leftDocument()
callbacks are not supported.inserted/removed
are still supoorted for backwards compatibility (commit)
Core
- Using
Polymer.register()
now throws a deprecation warning (commit) - Improved IE10 compatibility (commit, commit)
Elements & Projects
polymer-elements
- Added
<polymer-grid-layout>
(commit) - Added
<polymer-shared-lib>
, element for loading libraries (commit) - Added
<polymer-flex-panel>
, a flexbox container (commit) - Added overlay animations to
<polymer-overlay>
(commit) - Begins of
<polymer-list>
(commit) - Better multi-selection support in
<polymer-selector>
(commit) <polymer-meta>
now allows for different types of data (commit)
polymer-ui-elements
- Added
<polymer-ui-menu-button>
, a button which can have menu-items inside it that appears in an overlay menu when the button is selected (commit) - Added
<polymer-ui-overlay>
(commit) - Added another version of
<polymer-ui-overlay>
that uses<dialog>
polyfill (commit) - Renamed
<polymer-ui-list-item>
to<polymer-ui-field>
(commit)
more-elements
- Added
<google-map>
(commit)
Platform
- Ensure ShadowRoots have
.host
and.olderShadowRoot
properties (commit) - The polling handler Polymer uses in MDV (when
Object.observe()
is not available) has been exposed (commit)
Custom Elements
- Native Custom Elements are opt-in via
?register
flag. - Custom Elements observation now handles
.olderShadowRoot
s (commit)
Pointer Gestures
- Add
.detail
to tap gesture. Gives click count. (commit)
Shadow DOM
2013-07-11
See the full list of changes.
Polymer
General
All hail <polymer-element>
!
Declaring elements is now <polymer-element name="tag-name">
(was <element name="tag-name">
).
Elements are now auto registered, so a script tag is no longer required:
<polymer-element name="tag-name">
<template>...</template>
</polymer-element>
Features
More complex elements are registered with Polymer('tag-name', {prototype})
(was Polymer.register(this, {prototype})
). This allows for more flexible script decoupling:
<script src>
works now<script>
can come before or inside the element, but not after
Changes
- Script scope is no longer special (e.g.
this
no longer refers to the element). - Closures are not longer supported for private variables. Private vars should be done with the standard methods like anonymous self calling functions.
Core
.resetStyleInheirtance
can now be defined on the element’s prototype (commit)- Shadow DOM shhim styling has been moved into platform as
ShadowCSS
(commit)
Platform
- Polyfill
<template>
/<element>
styling not use!important
. Fixes #191. - Add
array()
andforEach()
toNodeList
,NamedNodeMap
,HTMLCollection
(commit)
Custom Elements
- Script execution is more specific to JS (commit)
HTML Imports
- Scripts within
<template>
content are now executed. Fixes #22. - Non-JS script tags are no longer parsed (commit)
MDV
- CompoundBindings have been sped up (commit, commit)
- Binds have a more consistent API (commit)
- Initial work on MDV benchmarking (commit)
- Ensure
getInstanceModel()
is only called when a new instance will be created. Allows for the common case of inserting an instance via aDocumentFragment
(commit)
Pointer Events
- Use ES6
Map
where available (commit) allShadows()
method added to find all shadow roots (commit)- Handle IE 11 use of string
.pointerType
(commit) - Don’t override native
PointerEvent
(commit) - Use
shadow.olderShadowRoot
when possible. Fixes #81. - Touch will try to use
touch-action
or use the oldMutationObserver
method (commit)
Shadow DOM
Event.path
always originates from the target (commit)- Fixed issue where FF24 doesn’t support
document.createEvent('FocusEvent')
(commit)
Elements & Projects
polymer-elements
- Added
<polymer-overlay>
(commit) - Added
<polymer-key-helper>
(commit) - Added
<polymer-file>
(commit) - Added
<polymer-animation>
elements (commit) - Added
<polymer-media-query>
(commit) - Added
<polymer-selector>
(commit)
polymer-ui-elements
- Added
<polymer-ui-accordian>
(commit) - Added
<polymer-ui-splitter>
(commit) - Added responsive design to toolbar (commit)
2013-06-17
Notice: This release contains important changes to the structure of the project.
The repo structure was “flattened” such that platform
and polymer
repos no
longer contain submodules. Instead, the dependencies need to be checked out as siblings.
For example, platform
now expects HTMLImports
, CustomElements
, PointerEvents
, MDV
, ShadowDOM
, etc. to be siblings. polymer
expects to be siblings with all of them. Unless you’re
working directly on Polymer, it’s safe to stick with polymer-all
.
Polymer
General
- The Bower component has been updated to reflect this release.
- Polymer-based TodoMVC app (source) was published.
- MDV Expression Syntax is on by default (commit). No changes are necessary for your current usage of templates. New features include support for inline math expressions, named scoping, and more. Read more.
- To reduce memory leaks, elements created 1.) in JavaScript (e.g.
document.createElement('x-foo')
) and 2.) not in the DOM will lose their bindings, asynchronously. (commit)- If you want an element to remain active when it’s not in the
document
(e.g. it keeps its MDV bindings and*Changed
methods), you must callthis.cancelUnbindAll()
after it’s been created or removed. Theready()
callback is a good place for creation time. - If you call
cancelUnbindAll()
and never put the element back in the DOM, it is your responsibility to eventually callthis.unbindAll()/asyncUnbindAll()
. Otherwise, you will leak memory.
- If you want an element to remain active when it’s not in the
Core
- Arrays and Objects are supported as attributes (commit)
- Polyfill support for
:scope
instead of@host
(commit) - Style are correctly applied to type extension custom elements (e.g.
[is="x-foo"]
) (commit) - The other lifecycle callbacks (
inserted
,removed
,attributeChanged
) can be setup in thePolymer.register()
call in addition toready
. Note: these names are shorter than the spec’s API.
Platform
Custom Elements
See the full list of changes.
- Support non-enumerable properties defined on
HTMLElement
prototypes (commit) - Boostrap on
DOMContentLoaded
instead ofwindow.load
. Go immediately ifdocument.readyState === 'complete'
(commit) .constructor
references correct name defined in<element>
’scontructor
attribute (commit)- Update to new source map syntax (from
//@
to//#
) (commit)
HTML Imports
See the full list of changes.
- Loading now kicks off immediately if
document.readyState === 'complete'
(commit) - Do not load external stylesheets that are not in
<element>
. Also support external stylesheets inside of<template>
(commit) - Update to new source map syntax (from
//@
to//#
) (commit)
MDV
See the full list of changes.
- Support binding to
HTMLSelectElement.selectedIndex
(commit) HTMLTemplateElement.createInstance()
now takes model & syntax string (e.g.template.createInstance(model, 'MDV')
) (commit)- Implement two-way binding to
HTMLTextArea.value
(commit) - Named scopes are supported (e.g.
<template repeat="{{item in items}}">
) (commit). Read more. - Implement MDV Syntax expressions (commit)
- Allow
<template if="{{expr}}">
to be equivalent to<template bind if="{{expr}}">
(commit)
Pointer Events
See the full list of changes.
- Split mouse/touch/MS events into their own modules (commit)
- Touches that fall off the screen are handled more gracefull (commit)
Shadow DOM
See the full list of changes.
- Alias
.createShadowRoot()
to.webkitCreateShadowRoot()
(commit) - Remove
shadowRoot.insertionParent
per spec (common) - Implement
event.path
(commit)
Elements & Projects
- Added
<polymer-meta>
for storing metadata (commit) - Added
<polymer-ui-ratings>
(commit) - Added
<polymer-ui-toggle-button>
(commit) -
Added
<polymer-ui-tabs>
(commit) - Initial work on Polymer Elements Playground
- Added port of Memory Game
2013-06-05
Polymer
See the full list of changes.
asend()
is deprecated. Please useasyncFire()
instead (commit)asyncMethod()
now usesrequestAnimationFrame()
if no timeout duration is given (commit)- Support was added for
event.path
(commit, commit) - Support for “Polymer” custom MDV syntax (commit, commit, commit)
- More explicit anti-FOUC prevention (commit)
- Process of putting template content into shadowRoots was changed to prevent 404 requests (commit). Fixes #153
Platform
See the full list of changes.
HTML Imports
See the full list of changes.
- Use
DOMContentLoaded
instead ofwindow.onload
to trigger importing (commit) - Added
.status === 0
check for imports to work in Cordova and acrossfile://
(commit) - Expose
HTMLImports.xhr
hook (commit)
Elements & Projects
polymer-elements
- Added
<polymer-page>
element (commit) - Added
<polymer-view-source-link>
element (commit) - Added
<polymer-localstorage>
(commit) - Version of
<polymer-layout>
that uses CSS flexbox (commit) - Added
<polymer-ui-sidebar-menu>
(formerly known as ribbon) (commit) -
Added
<polymer-ui-icon>
example file (commit) - Initial commit of Gallery (commit)
2013-05-15
This release mainly contained important platform fixes for IE and Firefox.
See the full list of changes.
Platform
Custom Elements
HTML Imports
MDV
- Correct event type for checkbox bindings (commit)
HTML Imports
- Only enable cache busting in debug mode (commit)
Shadow DOM
- Fixed #151 -
HTMLLegendElement
issue in FF21.
Pointer Events/Gestures
- Fix for
<button>
in IE (commit)
2013-05-13
Notice: This release contains important changes to the structure of the project.
Project renamed to Polymer! https://github.com/polymer
2013-05-09
Polymer
See the full list of changes.
-
Project has a build status at http://build.chromium.org/p/client.toolkit/waterfall and tests are being run on Browserstack (commit)
-
Base example components were removed and separated into their own
toolkit-ui
repo, while thetoolkit-elements
repo contains non-visual elements. -
A sandbox tool was added to projects.
Elements and animations
-
New
g-overlay
element with web animations (commit) andg-tabspanel
(commit) -
Added
g-fadein
,g-fadeout
animations (commit) andg-shake
, a configurable shake animation (commit)
Features & bug fixes
-
Element registration now puts a
.elementElement
property on the prototpe to reference the<element>
(commit) -
pseudo-scoping now works on Firefox and IE where
cssRule.selectorText
is readonly (commit) -
Attributes de-serialization is more predicable. For example, numbers are treated as numbers, srings as strings, dates as
Date
, etc. (commit, commit, commit) -
MDV v3 is now turned on by default.
-
Toolkit.getBinding(element, name)
no longer generates an exception if element is null [commit)
Platform
Custom Elements
See the full list of changes.
-
Implement life cycle callbacks (inserted|removed|attributeChanged) using MutationObsevers. Note: you can no longer add lifecycle callbacks to a
lifecycle
object. They must be on the prototpye. (commit) -
document.register()
only triggers document-wide upgrade when called after initial load is complete (commit) -
document.register()
tests were updated to align with spec changes (commit) -
Added support for native
document.webkitRegister()
(if available) (commit) -
attributeChanged
callback only fires when attribute has actually been modified (commit) -
<style>
elements are now (correctly) ignored if they’re in the main document (commit)
HTML Imports
See the full list of changes
-
HTMLImports.getDocumentUrl()
added (commit) -
HTMLImports.readyTime
added for primative timing data [commit) -
Caching is configurable with
.cache
[commit)
MDV
See the full list of changes
-
Now using ChangeSummary v3 (commit)
-
Removed
.effectiveContent
API (commit) -
Removed
HTMLTemplateElement.bindTree
in favor oftemplate.model
(commit) -
Exposed
HTMLTemplateElement.parseAndBind_
(commit) -
Implemented
.getInstanceModel
for returning the model associated with a template (commit)
Pointer Events / Gestures
See the full list of changes here and here.
-
touch-action: user
is an alias fortouch-action: none
(commit) -
Fix
pointercapture
throws on IE10 (commit) -
Expose
.clientXY
,.pageXY
,.screenXY
of track gestures. (commit)
Shadow DOM
See the full list of changes
-
Implemented
.querySelector|All()
and.getElementById()
(commit, commit) -
Implemented
.elementFromPoint
fordocument
and ShadowRoot (commit) -
Wrapped
MutationRecord
interface now that Blink has it. (commit) -
document.write()
is now overriden and wrapped in the polyfill (commit)
2013-04-17
Toolkit
- If you’re writing a Toolkit component, there’s
no longer need to include
webcomponents.js
alongsidetoolkit.js
.toolkit.js
now loadswebcomponents.js
under the hood.
Platform
CustomElements
- The
constructor
attribute is now supported (commit)
HTML Imports
-
Fixed issue with imports loaded at the same url would not have the content associated with them (commit)
-
Polyfill now correctly checks for
HTMLTemplateElement
before using it (commit) -
If
HTMLTemplateElement.bootstrap
is available, then bootstrap templates in imported documents. (commit)
2013-04-11
Notice: This release contains important changes to the structure of the project.
- The
toolkit
repository now brings in theplatform
repository as a submodule. - Until now, the dev branch has been the development branch and master has been the stable release. Now, the stable branch is the default “stable” codebase. master branches are the in-development tip of tree. The stable branch is also the default view on Github.
Toolkit
g-component.html
no longer exists as the Tookit kernel. It has been replaced with loading intoolkit.js
instead.- Added
debug
runtime flags to conditionally load debug version ofwebcomponents.js
.
2013-02-25
Toolkit
-
Changed “toolkit/src” folder name to “toolkit/components”. Update your source paths accordingly.
-
Introduced
selectedClass
property to g-selector component. (commit) -
g-selector now sends an
activate
event which is fired whenever an item is activated (can occur when the currently selected item is activated). Theselect
event is fired only when the selected item changes. (commit) -
g-menu-button: the menu now closes in response to the selector’s activate event (commit)
-
g-selection: selecting the same item is now a no-op (commit)
-
Added support for 2-way bindings on input elements (commit)
-
g-ajax: Response is bindable; params can be set as json or object.
-
g-panels: Added
autoselect
property that controls if keys/swipes can select panels; addedcanselect
event to control if a panel can be selected.
Platform
-
Landed version 2 of the Shadow DOM shim. See the pull request for details.
-
ShadowRoot now installs shadow reference on
node.webkitShadowRoot
, as per spec. Fixes #68. (commit) -
Loader: allow stylesheets and scripts in components defined in document. (commit)
Tools
- Shadow DOM inspector
Added a tool for inspecting Shadow DOM trees. You can invoke the tool via
window.sinspect(node)
, wherenode
is the element to start inspecting from. If not specified then it will usedocument.body
.
To use the tool, open the JavaScript console and type sinspect()
.
Note: The tool opens in a pop-up window so you may have to unblock it.