|  | SkyElement | 
|  | === | 
|  |  | 
|  | SkyElement is the framework for creating...yup...Sky Elements. It take heavy | 
|  | inspriation from [Polymer](www.polymer-project.org) and isn't very fully | 
|  | featured...yet | 
|  |  | 
|  | Declaring an element | 
|  | -------- | 
|  | ```HTML | 
|  | <import src="../path/to/sky-element.sky" as="SkyElement" /> | 
|  | <template> | 
|  | <my-other-element>Hello, {{ place }}</my-other-element> | 
|  | </template> | 
|  | <script> | 
|  | // SkyElement takes a single object as it's only parameter | 
|  | SkyElement({ | 
|  | name: 'my-element', // required. The element's tag-name | 
|  | attached: function() { | 
|  | this.place = 'World'; | 
|  | }, // optional | 
|  | detached: function() {}, // optional | 
|  | attributeChanged: function(attrName, newValue, oldValue) {} // optional | 
|  | }); | 
|  | </script> | 
|  | ``` | 
|  |  | 
|  | Note that an element's declared ShadowDOM is the previous `<template>` | 
|  | element to the `<script>` element which defines the element. | 
|  |  | 
|  | Databinding | 
|  | -------- | 
|  | SkyElement's databinding support is derived from Polymer's. At the moment, | 
|  | there are some key differences: | 
|  |  | 
|  | There is not yet support for | 
|  | * Declarative event handlers | 
|  | * Inline expressions | 
|  | * Self-observation (e.g. `fooChanged()` gets invoked when `this.foo` is changed) | 
|  | * Computed properties (e.g. the computed block) | 
|  | * Conditional attributes (e.g. `<my-foo checked?="{{ val }}"`) | 
|  |  | 
|  | Also, because there are so few built-in elements in Sky, the default behavior | 
|  | of HTMLElement with bindings is to assign to the property. e.g. | 
|  |  | 
|  | ```HTML | 
|  | <my-foo bar="{{ bas }}"> | 
|  | ``` | 
|  |  | 
|  | Will not `setAttribute` on the `my-foo`, instead it will assign to the `bar` | 
|  | property of `my-foo`. There are two exceptions to this: `class` & `style` -- | 
|  | those still`setAttribute`. |