Why the new components in Flash 9 will rock or "Styles are evil and must die. Long live skins!" (And yes, this is the longest blog post title ever, so sue me.) [Please don't really sue me, it's not nice and I was just kidding, and anyway, I'm sure that someone, somewhere has written a longer title for a blog post. Right? I mean they must have. Surely!]

Styles in Flash look great in tutorials and are used as an example of Flash supporting standards ("ah, but Flash supports CSS!") and are, well, about as useful as a chocolate teapot. Why? Three reasons:

  1. They're not visual. A style is comprised of text and numbers. Not pixels and colors
  2. They require programming skills. This means that programmers end up implementing styles, not graphic designers or illustrators.
  3. They are not customizable enough for real-world needs.

In other words, styles over-complicate and under-deliver. Real-world projects demand skinning, not styling. So that's why I'm really excited that the new component set that is being developed for the next version of Flash will make skinning easy as pie (although I've always found pie quite difficult myself).

It was revealed at the keynote at FlashForward Austin that Grant Skinner is working with Metaliq to bring a version of his component set to Flash 9. The components that will be included in the next version of Flash are going to be based on the components that were originally called GLIC and are now known as the mCOM components. What's great about them is that Grant built them to be lightweight and easily skinnable. Skinning the components is as easy as specifying movie clips from your library for the various parts of a component. In other words, it's just as it should be.

I hope that the next version of Flex will feature similar skinning support for all graphic assets of all components. In fact, I wouldn't shed a tear if styling was removed altogether from the component set. It takes up a large amount of space and is, for all intents and purposes, useless. If I want to change the color of the default skin in a component set, for example, I can use the Bitmap classes to apply color transformations on them.

Skinning, not styling is the way forward and I'm very happy to see this issue being addressed in the next version of Flash. I hope the same will hold true for the next version Flex too.