Not to detract from the creativity here, but the id attribute specifies its element's unique identifier[1]. Strictly speaking, this should never happen:
"strictly speaking" is right. It's invalid but all major browsers will handle the code just fine. Browsers are pretty damn forgiving.
It's also an easy mistake to make. All someone has to do is create an element with an ID in a child template without checking to see if that ID is already used in a parent template.
Is it possible to enable some switch in Chrome to force the browser to render only correct code in dev mode? This would catch me making mistakes that otherwise go unnoticed.
On the note of forgiving browsers, I love how they are a very accepting interpreter of information, much like a human listening to someone's broken English and still understanding what is being said.
I don't think any Javascript is in use at all here, but if it were I would not expect errors but instead simply unexpected behaviour as browsers tend to just try do something if what you are asking isn't clear (for instance if a jquery selector returns nothing, any changes you chain after the call just apply to that nothing instead of complaining that they expect to have some nodes to act on).
Multiple elements with the same ID is wrong of course, so you can't guarantee what will happen if you use and ID based selector: three equally (in)correct interpretations would be "act on the first element you find with that ID", "act on all elements with that ID", and "error because we don't expect to find more than one". By breaking the standard you are exposing yourself to undefined behaviour - the browser can do what it likes and each environment might do something different.
This is nuts -- but sadly dancing Bender is not too practical. (Unless the dancing trend catches on and GitHub releases the dancing Octocat to production...)
For more practical CSS madness, I'd recommend Ana Tudor's creations[1]. She had a cool talk at CSSConf.eu about the math behind building some of her CSS creations.[2]
I've seen her work posted around before, and always found myself really impressed. Thanks for the link to that video, I think it may have sparked an interest in geometry for me.
And I disagree about the practicality of a dancing bender. It's a tech demo if nothing else. I can picture a future where things like this are much easier to accomplish in CSS and we move on from using traditional images.
Yeah, I don't want to be critical -- just wanted to point to some other lower-level shapes that might be easier for others to learn from and build upon. 100% believe we need more dancing characters, not less.
A lot of the neat features used in demo's like this (although I haven't checked this ones code specifically yet) often rely on prefixed features and the like; it's more for showing what could be, rather than what is per se.
For those of you who are bound to ask the point, this is pure hacking. You are given a technology and you produce a result, sometimes for the fun of it! Thanks for this! I learned a bit.
I love when people see the potential to use HTML structure as a makeshift DAG. Similarly, once the DOM got fully grokked in the mid-2000s, it was if the web changed overnight. From flat documents to a flexible graph. And to do this without JS? We're talking no actual imperative code here, just dead structure and presentation markup.
This is one of the first CSS animations I've seen that works flawlessly for me, at least on the iPhone. I also noticed the non-unique ID attrs as is noted below, but let's be real. With that amount of CSS to conceive of and write, would you really glance twice at the twenty lines of HTML you're using as a fly-by-night DAG? For a non-commercial passion project? The creator of this was in the ZONE!
The pure insanity makes me grin and long for the pre-teen days where there was time for this. All the ANSI art, the HyperCard stacks, the strange games made using dirt-cheap language implementations. Sigh, but a nice sigh. Also makes me damn grateful for open source and standards.
This is really neat. I'm really interested in seeing how all these new fancy CSS3/HTML5 features shape the evolution of casual online games. Back in the day it was either static images, like the Neopets sort of thing (which are still pretty common with young kids I think - Webkinz is a cash cow and that site looks straight out of my childhood), or slow awful Flash games that usually didn't have any data persistence. Even if this Bender example is kind of hacky as other comments are indicating, the possibilities still seem pretty limitless.