The Principle of Divergence

08.17.10

CSS3 and HTML5 are innovations to be practiced and mastered. And, while best practices like graceful degradation and progressive enhancement will continue guide implementation, I don’t think that the principles of separation will.

I have always been one to support the separation of content, presentation, and behavior. But, HTML5 and CSS3 are blurring the lines. For example, there has been a convergence on the behavioral layer; now that we have inline form validation alongside CSS transforms and transitions.

A few purists, I’m sure, will be outraged by what I’m saying. But, if the truth be told, the pseudo class hover has been triggered by user action for quite a while. That is, behavior within presentation.

From the CSS specification, “Interactive user agents sometimes change the rendering in response to user actions. CSS provides three pseudo-classes for common cases.”

This has made me question the principle behind separation of content, presentation and design. And, as I have investigated the idea behind separation, inspiring as it is, I have not found it to be practical.

Separation is a novel idea. It has guided the design style of many amazing programmers and artists. It has led to numerous beautiful and functional websites. But, this segregation of content, presentation and behavior is, as I have found it, much like XHTML 2: little more than an idealistic view worth stemming from.

It is time to leave this ideology behind us. It has served its purpose practically and well. Times are changing and new technologies are piping a different tune: divergence.

It is time to start diverging, not separating.

Part TwoDivergence explained

3 Responses

  1. Jeremy Keith says:

    Interesting. Back in 2004 I wrote “:hover considered harmful” which was a tongue-in-cheek look at the blurring of the lines between presentation and behaviour: http://adactio.com/journal/857

    Now, with transitions and transforms, that line has been blurred a lot more.

    I like the idea of thinking of the layers of web development in terms of divergence. The problem, as I see it, is that we don’t currently have a good *declarative* way of specifying event-triggered behaviours. We can either do it in JavaScript (which isn’t declarative so has a correspondingly higher learning curve) or we can do it in CSS (which is frankly a bit of a fudge for a technology that’s supposed to be about presentation). So, if anything, what’s needed is yet more divergence: a fourth way technology that combines the power of JavaScript with the declarative ease of CSS.

    However, it’s very hard to get people to adopt a new technology so I don’t envision a new stem working out.

  2. Kevin says:

    I’m really quite pestered by the whole separation deal. I just wish there was a better way to deal with these up coming technologies. I feel we need to figure this thing out before we start getting to far. I don’t want the font tag to come back. But, I do want innovation to continue.

    I want to face this issue before I’m forced to. I simply think some of us are ignoring it right now.

    Still, the separation of content, presentation, and behavior is dieing. We need to start thinking about how we approach web development realistically if we want to keep up, and that is going to take so pondering. If divergence is the answer than great. But its an unrefined idea and not much of a foundation to stand on yet.

    I plan to figure this thing out. There is a lot more to be done here.

  3. Kevin says:

    I have refined what divergence means to me here: http://inteldesigner.com/2010/code/what-is-divergence

Comment Guidelines

Although I always welcome words of thanks on Twitter please use comments to share your thoughts, questions, feelings and opinions. Thank you for your support in making this blog more engaging.

Join the conversation