Here is an extremely brief overview of my favorite permutation of the web-components idea:
PixelBook - The root element of the application
- Displays the designated "Page" element
- Acts as the primary controller, handling the specifics of basic functions like "Page Turning" and most other logic
- Stores various elements invisibly in storage-divs walled off from the user by hiding them in element's "Shadow DOM" (e.g. Page, ?VarData?, Pix, and Passage/Snippet elements not residing in a Page element)
- Contains and manages a "Log" component that can be displayed for debugging purposes
Log - A normally hidden element that is activated when the application is running in debug-mode so it can store various "LogEntry" elements
LogEntry - Text messages that record debuging data like events, state changes, and error messages
Page - Primary display container for templated application content
Passage - A semantic extension of the "p" element (?additional funtionality?)... Can either exist directly in a Page element or be stored invisibly in the root element for dynamic insertion
Snippet - Serves a function analogous to the Passage element, but extends the "span" method instead for containing short chunks of inline text... Can also exist directly in a Page or be stored for dynamic insertion
I have about a dozen different ideas about how to implement variables... Still batting around the best way to do it. Suggestions and brainstorming is appreciatedPix - An extension of the "img" element with addional functionality?
Tbox - A special extension to the "div" element for additional layout options along with extra functionality like a type-writer effect... Would be useful for "Visual Novel" applications or ones that need that old-school feel. (Might make that also available on passages)
I dunno... Still playing around with different schemes.
Suggestions and/or Ideas, anyone?
* A Note on the state of the available polyfills *
X-Tags appears to be a partial implementation at best
Polymer requires a web-server, so a purely client-side web-app (which is exactly what I want at this stage) is impossible to build with it