otsukare Thoughts after a day of work

Flex your box

When talking with Web developers, sometimes the topic of Flexbox implementation pops up. It goes one of two ways.

  • “Why hasn’t Opera implemented Flexbox? It’s already there in other browsers.”
  • “When will W3C catch up with the reality of implementations?”

Depending on your mood of the day, I hit my head against the wall or I take the meditation position of a buddhist monk. The answer is basically Flexbox is not yet finished. Opera waited for the spec to stabilise. Flexbox is implemented in browsers incompatibly, and not according to whatever last version of the specification. Nobody gains from that? W3C is not late but having a specification which is a moving target (Working Drafts).

The issue is that Flexbox is not Flexbox. Opera didn’t rush on implementing the earlier Flexbox drafts. There were competing proposals on the table and it was, in this case, a good move. The current implementations of Flexbox found in other browser vendors were based on the old Working Drafts of the specification. Tab Atkins (Google) is the editor of the Flexbox specification which has changed drastically and in incompatible ways. It is part of the process of Web development which includes testing options and then revising them for better ones. Flexbox is Dead, Long Live Flexbox! by Tab gives an overview of what happened. The irony being that now Flexbox is now closer to the original specification than it was in the last series of drafts.

Well, the experiment has ended. The spec has returned to a form very similar to the original. I’m a little sad about this, but it’s the right choice. Unfortunately, if you limit yourself to making the box-model properties flexible, several useful things are simply impossible, and several others are overly difficult.

Be aware that there are still a few things which are different.

Why do I blog this?

Because there is a fine line in standardization work between something which is really deployed and something which is deployed for testing. When we are advocating for technologies, introducing new concepts, creating demos based on Working Drafts, these are likely to break at a point in time. Some features will be dropped, some will be changed a few times, or the specification and its implementation will be dropped entirely. Web developers are eager to use new shiny things. It is good for having practical Web developers feedback on the technology, but when it comes to production sites, there is a high risk.