HTML5 For Web Designers by Jeremy Keith and CSS3 For Web Designers by Dan Cederholm are both A Book Apart books. Even though I just recently read Introducing HTML5 and The Book of CSS3, I wanted to see how HTML5 and CSS3 would be presented “for web designers”. Introducing HTML5 and The Book of CSS3 go through many new aspects of HTML5 and CSS3, both usable and not quite ready, and they are both really helpful in getting a good grasp of the big picture for both of them. They both go through different categories of new features, with explanations and some basic examples for each. They read a bit like textbooks to me, though.
HTML5 For Web Designers and CSS3 For Web Designers take more practical, use-right-now approaches. They don’t necessarily try to thoroughly cover all the new features, but present the ones that are stable enough for you to use right now. And both books are so short! They were easy reads and the authors have really friendly tones. I’m hoping the other A Book Apart books are similar!
HTML5 For Web Designers starts off with “A Brief History of Markup”. Some of it is similar to what Introducing HTML5 mentions, but I also learned new things. It takes a very humorous tone – I liked the following:
After HTML 4.01, the next revision to the language was called XHTML 1.0. The X stood for “eXtreme” and web developers were required to cross their arms in an X shape when speaking the letter.
No, not really. The X stood for “eXtensible” and arm crossing was entirely optional. (page 2)
The chapter “The Design of HTML5” was interesting to me, because it gives a background that is more that just historical facts – it gives a glimpse into the reasoning and principles behind people’s thoughts. For instance, it talks about some of the WHATWG’s design principles used to guide the development of HTML5. One that caught my interest was “Priority of constituencies”, which, according to the book, says: “In case of conflict, consider users over authors over implementers over specifiers over theoretical purity” (page 10). So apparently HTML5 is, at the core, designed for the users. I often assume this is true for many things, when in fact they are not at all… It’s nice to know HTML5 really is designed that way!
In talking about the very loose syntax of HTML5, I came across this paragraph:
If you’re looking for a cheap evening’s entertainment, get an array of programmers into the same room and utter the words “significant white space.” You can then spend hours warming yourself by the ensuing flame war. (jpage 15)
First of all, I probably enjoyed the phrase “array of programmers” too much. Second, it made me try to clarify my own thoughts on white space. I haven’t yet seriously used a language in which white space is significant (such as Python), so I can’t clearly say what I think about that, but I do know that I really like patterns and structures – any time I code, I try to make my style as consistent as possible everywhere. I feel like theoretically I would enjoy the strictness of significant white space, but in reality I would probably get pissed off that my code broke due to something tiny I didn’t feel was important at all.
One thing I thought was interesting is the author’s approach to canvas. I’ve seen people all over the internet so excited about it, treating it like the best thing ever… but this author is not quite as enamored with it, due to its lack of accessibility (page 27). It’s interesting that he considers that more important than all the “cool stuff” canvas can do.
Another thing I found interesting is when the author is discussing calendar widgets. He says, “…calendar widgets all do the same thing, but you’ll find that they’re implemented slightly differently on each site. A native calendar widget would smooth away the inconsistencies and reduce cognitive load during the date-picking process” (page 51). To me though, I feel like it would be weird because a native widget would be styled by the browser, and may not fit with the overall design of a site. Which is “better”? It seems like something would be inconsistent for the user either way, so is there really a “better” way, or is it okay either way?
I actually enjoyed CSS3 For Web Designers more than HTML5 For Web Designers. The tone is also friendly and humorous, but the approach the author takes to examples is a lot easier to relate to and more interesting. Also, he (Dan Cederholm) apparently coined the term “bulletproof web design” and created Dribbble (foreword)!
I like his humor a lot – “We created support groups for designers emotionally scarred by inexplicable Internet Explorer bug” (page 2). He also has an interesting take on the critical and non-critical aspects of a site’s visual experience. According to him, branding, usability, accessibility, and layout are critical, while interaction, visual rewards, feedback, and movement are non-critical (page 5). I had never though of splitting aspects of a site in those ways, but with his categorizations, his critical and non-critical aspects mostly make sense to me. I am surprised that branding is critical (though perhaps he is talking about business sites, while I mostly think of personal sites), and feedback is non-critical (I had figured that would be part of usability).
I liked the way he presented examples, and he takes a very practical, learn-by-trying approach. For instance, when talking about timing functions in transitions, he says, “If you slept through geometry in high school like I did, don’t worry. I recommend simply plugging in each of these timing function values to see how they differ” (page 20). The examples were really fun to follow and made a lot of sense, because he related them all to a fictional case study (page 29). In fact, he made the fake site available: Things We Left On The Moon.
The author brings up a good question – do websites need to be experienced exactly the same way in every browser (page 35)? His answer is no. From what I understand, he believes that the most basic functionality should work in every browser, but extras on top of that are not required, and you should design your site so that it degrades gracefully. For example, if a browser can’t display the transition of text from one color to another, fine! Just have it change color – the transition is not so important. I think that I agree with him, although I may not agree with which exactly what aspects he thinks are important.
Also, fun fact I learned from the book – parallax scrolling originated in an arcade game (page 84)!
It may seem like I recommend every book I read ever, but that might also be because I give up and don’t finish books I wouldn’t recommend. I definitely recommend these two books. Originally I had been debating whether I should purchase them or not, since I already had the other books about HTML5 and CSS3. I’m glad I did though, because although a lot of topics discussed were similar, they were approached in very different ways and I definitely learned new things. I really like the short and quick “learn what you can use now” approach that A Book Apart books seem to take. I’ll probably end up getting more of them (I already have Responsive Web Design!)