Andy Budd is a well-known figure in the world of web development. If you haven’t heard him speak at one of the many conferences he attends (or even the one he helps organise), you may have read his book CSS Mastery or one of the many articles he has written.
Recently we mentioned Andy’s call for a new intermediary version of CSS, which includes all the most commonly implemented features of CSS3. This led to a fair bit of discussion in the community, so we asked Andy for some clarification of his suggestion (there’s more on his own blog too), as well as a few more thoughts on the future of CSS.
You made a case for a CSS2.2, which standardises all the CSS3 features currently implemented in many browsers. Isn’t there a danger that, by creating another new version, CSS3 will be delayed even further? Or that we may end up creating 2.3, 2.4, etc, as other features become more common?
There is no doubt that CSS2.2 would delay the release of CSS3. However as CSS3 is already years behind schedule, I doubt an extra year will make much difference. An interim version of CSS would give developers the tools they need today, and browser manufacturers a stable specification from which to work from. This would then free up time for the W3C to tackle the more esoteric aspects of CSS3 that appear to be holding them back.
You are right that this could lead to further point releases, but I don’t see that as a bad thing. I’d prefer to see features released as soon as they are ready, rather than being held back until the more obscure problems have been solved. Obviously there will still be dependancies, and backwards compatibility issues to consider. However other organisations manage to solve these issues, so I don’t think the problems are insurmountable.
Do you think that the W3C’s path to creating a recommendation is too slow? Should the browser manufacturers implement newer features (even if only with proprietary prefixes) in order for the web development community to get involved with testing and feeding back to the W3C?
The W3C are trying to tackle some very big problems like internationalisation, and big problems take time. I think the W3C basically bit off more than it could chew, and we’re all starting to suffer the consequences.
I don’t think the internal structure, politics and decision making process helps. Each member company has it’s own agenda, while the W3C are keen to promote their own standards like SVG. There are big personalities on the working group, and discussions often get bogged down in the same old arguments. With little in the way of conflict resolution, progress can be excruciatingly slow. I also think that that W3C has been lax getting input from the wider community. This is starting to change, but I fear it’s too little, too late.
As for browser manufactures implementing new features, this opens up some interesting questions and a very large can of worms. I’m all for the browser manufactures including elements of CSS3 into their new releases. In fact, I believe this is an important part of the recommendation process. I’m also not averse to the browser manufacturers implementing brand new features by consensus. What I don’t want to see is a return to the bad old days when new features would be released just to gain market share. Thankfully these days seem to be behind us.
The CSS3 spec allows the use of simple calculated values. Do you think CSS should be expanded to include more elements of scripted languages, such as variables or arrays?
I think the short answer to that is no. CSS was intended to be a simple style language, and while I can see why programmers would like these features, I’m concerned they would make the language even more difficult to learn. Simple calculations solve an existing problem with CSS, while variables simply offer shortcuts for advanced users. If you want the power of a programming language, then use a programming language.
That being said, what I’d really like to see is a parent selector. I’ve been in so many situations where I’ve wanted to style an element based on its contents. For instance, styling a div only if it contained an image element. How cool would that be?
The Advanced Layout module has attracted a lot of excitement, but seems to be a long way off; as it’s quite a radical departure from the current layout module, some browsers may take longer to implement it than others. Do you think there’ll be a long transition period where we have to code pages twice – once for advanced layout, once for current?
It’s possible that some people will code separate stylesheets for separate browsers, but I hope this won’t become common place. Instead, I imagine most people will hold off using these features until they have been implemented by the main browser.
Other than selectors, is there any element of CSS3 currently implemented that you use on a regular basis, or an element that you look forward to using more? Is there some feature you would really like to see used more often?
Opacity is widely supported and something I’ve started using more of in my designs. I’ve also started using border-radius for design elements that can benefit from rounded corners, but where they aren’t strictly necessary. The same is true of multiple background images. Lastly, I’ve started using multi-column layout for small chunks of content that work as a single column, but look nicer in two. Examples of this could be a short list of features or summaries of news items.
However the CSS3 property I’m most looking forward to is the marquee property. Can you imagine the possibilities?
You can skip to the end and leave a response.
[...] conducted a Q&A about the future of CSS with speaker/author/developer/etc Andy Budd, which you can read on CSS3.info [...]
It does worry me that at some point we may be in a situation we were in during the dot com boom. However I am not sure what was worse, the browser wars which lead to rapid development, or the stagnant period after IE won..
I say we all just use web kit, and everything is shared (rendering wise) features can be the selling points, not how things render :)
[...] asked him what he thought of Andy Budd’s call for a CSS2.2 specification, and he said that he was all for it – now that’s an influential [...]
Oh yeah! So people are not using CSS 2 on the right way (the majority of the webdesigners) and Andy thinks in launching CSS 2.2, 2.3 and beyond. Good luck with that. That will only be worst. Why not stick with the CSS 2.0 and wait for the 3.0 to be ready? Even if we need to wait a year.
Why? Just because a year from now if CSS 3 is ready we can tell our peers “Hey guys? CSS 3 is ready. Why not give it a try?”
This is, IMHO, better than to tell them “Hey guys? CSS 2.2 is ready” and a few weeks later “Oops, now is CSS 2.3″ and so on and so on…
Just my 2 cents.
If that will be situation Peter then I agree with CSS 2.1 and beyond. The problem is if the browsers don’t support this new “features”.
Imagine that CSS 2.1 is out. Imagine that IE 7 updates and Firefox updates and Safari, Opera and all major browsers.
Then you’ll start a new site using CSS 2.1. And that’s fine for me that always have the system updated. But what if someone doen’t have? As you know people that still using Mac OS X Panther can’t be using Safari 2. Does Safari 1.4 will be upgraded to support CSS 2.1? I doubt. Now imagine the millions of people still using IE 6.x and IE 5.x
That can be the problem.
What we really need is CSS versions that graceful degradate when the user is browsing using a older browser, but still mantain the design (downgrade to CSS 2) withou the hassle to use several style sheets for that manner.
Is this utopic? Maybe…
That’s the thing about most of the existing CSS 3 features: they are mostly cosmetic, and are more about how pages display. It wouldn’t be the end of the world if a browser couldn’t see opaque backgrounds or curved corners, but the better the browser you have, the better the web looks – if coded correctly, of course.
And also, all of the features in the proposed CSS2.2 standard are implemented in at least one browser already; in many cases, there’s nothing stopping you from using them right now. You would just have to make sure that your code degrades gracefully, and good coding means you shouldn’t need extra stylesheets for that.