This is a Custom Element , provided in the HTML5 API for Web Components .
Today most browsers still do not support natively, not least because many of the parts that make up the Web Components are still being written.
This component you found uses the Polymer Project , developed by Google, which runs on most modern browsers (less Opera 12), in addition to the polyfill features provided by the platform.js
that makes up the Polymer, it contains other very interesting features that make it very similar to AngularJS and even easier to develop, features like TemplateBinding and others, making use of [Object.observer][5]
, template element of various features of the next generation of HTML5 APIs.
You can also include Custom Elements using HTMLImports , of course, in order to work in your browser you will need polyfill for this, > platform .
These elements can still have their resources, css, and other things isolated from their DOM, using ShadowDOM , which basically generates a document inside the element, in order to make its internal elements isolated.
There is already a canvas element , which is focused on drawing / image processing with 2D and 3D context. But perhaps its citation is related to some other type of interface that refers to canvas as a component. But in the case of HTML5 is as I explained earlier are custom elements.
To learn more, I recommend this Zeno Rocha's lecture which is beyond all inspiring.
And as a curiosity Mozilla also made a project based on the source code of Polymer, but only with the basics of Custom Elements, called X -Tags , is compatible with a larger number of browsers, but does not support HTMLImports, only to custom elements in a slightly modified form of the official API.