Christoph ZillgensBack to Home

I‘m an Interface Designer and Web Developer from Germany. Here are some example of my work at my one-man company

Progressive Enhancement is dead

Design for the best browser available, use the latest and greatest techniques and degrade gracefully from there on. Don’t be shy and add JavaScript workarounds for bad browsers.«

Amen. This is what Eric Eggert suggested lately and he is totally right. Don’t spend too much time on making your site look good in IE6 and IE7. They will die. Spend your clients money reasonably, that means in future proof browsers.

-webkit-font-smoothing reloaded

Some time ago Tim van Damme blogged about -webkit-font-smoothing and suggested to use -webkit-font-smoothing: antialiased to improve font rendering in Safari on Mac. At this time Safari 4 was around and it seems like the new Safari 5 has improved on standard font rendering.

To look closer at this (or to look into a louse’s butt, as we say in Germany ;-), I compared Tim’s Safari 4 screenshots he used in his afore mentioned article with a new Safari 5 screenshot from the Mac:

(1) shows the old standard rendering in Safari 4, (2) shows the new standard rendering in Safari 5 and (3) shows the antialiased rendering (that didn’t change from Safari 4 to 5).

I created a test page where you can compare this. I think that now the standard subpixel-antialiased method has some advantages over the antialiased method when it comes to diagonal lines, especially in italic texts or characters like the uppercase M.

So do we still need to change the font-smoothing method to make text look good?

Yes, there is a case where -webkit-font-smoothing:antialiased makes sense, when it comes to light text on dark background.

If you have italic text on dark background, it depends which version is better. Some fonts will render to thin and get unreadable when antialiased is applied. Again, see the test page for this.

Blog redesign romanzenner.com

A couple of weeks ago, my buddy Ro asked me to redesign his Blog. Up to now he used a modified free Wordpress theme that served the purpose. But he wanted an individual theme with more personality and less unnecessary sidebar stuff und clutter filling up the page.

The logo

Roman also wanted a figurative mark and not only a word mark for his personal brand, so I started off with creating a simple figure, containing his initials “r” and “z”, which together form an uppercase “R”.

Zenner Logo

The layout

Then I went on with the website. All I had were some photos from Roman and an uncompleted color scheme idea. The site should be uncluttered, reduced to the necessary things, yet interesting and with a personal touch and shouldn’t by any means look like those business sites.

The basic layout contains two columns, very clean and simple. To get it more interesting and objective I chose the paper metaphor. I changed it on every page to diversify the layout, choosing a pile of paper for the blog section, a bit of a newspaper-look for publications, put in some dog-ear here and there and so on. All in all without destroying the clean look.

Typography

To support the casual look I searched for a fitting font on Typekit, where I found Ronnia, a friendly humanist sans serif by the great guys of typetogether. Currently this font is only viewable on the Mac, PC’s falls back to the more neutral Arial. Depending on future website statistics we consider to use Ronnia also for Windows.

The code

Although there is quite an amount of IE users, Roman had no problem moving forward with the source, so I was able to use HTML5 and some CSS3 here and there. Evereything in Safari and Firefox both on Mac and Windows went well, the only problem – as always – is the Internet Explorer. Here we decided to only support the latest version, IE 8. Versions 6 and 7 get the Universal IE stylesheet by Andy Clarke.

Conclusion

So, a couple of weeks and some all-nighters later , the new website of Roman is finally online. Do you like it? Let me know!

Data URIs make CSS sprites obsolete

Remember that the original problem that CSS sprites solved was having too many HTTP requests for images. Data URIs also solve that problem, and solve it in a much more manageable way. Instead of using a single extra request to get the large sprite image, you use zero extra requests to get the images to use. What’s more, there’s no need to combine all of the images – you can keep the images separate and use them as normal background images.«

Read the full article on Data URI by Nicholas C. Zakas here. I’m not fully convinced if it fits my workflow but it’s really interesting nonetheless.

CSS3 3D bookshelf

When I read Tim van Damme’s great article on »24 ways« about CSS animations last year, I wasn’t only impressed by what he came up with, but also immediately felt that I had to play with stuff like this on my own.

The time was there when I redesigned my blog and I was thinking about a fun way to display my book section. I eventually found a way to pull the books out off the shelf by pure CSS magic.

In this post I gonna show how I did it.

The HTML

Well, as always it is important to have a clean and semantic HTML code:

<div id="shelf">
<ul>
	<li class="book1">
	<a href="#">
		<h2 class="spine">Title of book 1</h2>
		<p class="cover">
		<img src="cover1.jpg"  />
		</p>
	</a>
	</li>
	<li class="book2">
	<a href="#">
		<h2 class="spine">Title of book 2</h2>
		<p class="cover">
		<img src="cover2.jpg" />
		</p>
	</a>
	</li>
</ul>
</div>

Here we have simple list of book titles and their covers. I added more class names than I needed. This helped me to better understand my CSS later on. As you may have seen, I wrapped the »a« element around some block elements which is possible in HTML5.

The CSS magic

There is nothing special about the bookshelf styling itself, so we immediately jump to the interesting part. To be able to add CSS rules that only apply to browsers with support of 3D transforms we start with a media query:

@media (-webkit-transform-3d) {	
	…
	special CSS adjustments go here
	…
}

To understand what media queries do and what they are good for, read this great article on A List Apart.

Next we add a perspective to our »li« element and also define a transition:

li {-webkit-perspective: 5000; -webkit-transition: all 0.5s linear;}

For the »a« element we add this:

a {-webkit-transform-style: preserve-3d; -webkit-transform-origin: 42px;}

You remember the HTML? We wrapped the »a« element around the cover and the spine of the book. By defining »preserve-3d« we keep the 3D effect for the child elements of »a« instead of flatten them. Look a this example to see how it works.

Next, we have to build a real book. Well, a book is approximately a cuboid and the cover and the spine are two faces of this cuboid. So to put them in the correct position we have to move the spine on the z axis (towards the viewer) and to rotate the cover around the y axis:

.spine {-webkit-transform: translateZ(38px);}
.cover {-webkit-transform: rotateY(90deg) translateZ(-19px);}

Now the books are on the shelf and, of course, you can’t see the covers anymore.
To get some action we have to define »:hover« states, now.

We have to do two things: First, pull the book out of the shelf and second, turn the book to see the cover.

Trigger the animation

To make the first step happen, we just scale the whole book on »li:hover«:

li:hover {-webkit-transform:scale(1.3); z-index:1;}

Together with the transition defined for »li« before, we get the illusion of pulling the book towards the viewer.

We can use the child elements of »li« for another animation, namely the turning of the cover. Because this step should start when the book is out of the shelf, we add a delay to the transition:

li:hover a {-webkit-transform: rotateY(-90deg); -webkit-transition-delay:.5s;}

So the turning starts after the book was scaled and it looks like one continuous animation.

Bringing it all together

Here is the whole (simplified) CSS I used within the media query:

@media (-webkit-transform-3d) {
li {-webkit-perspective: 5000; -webkit-transition: all 0.5s linear;}
a {-webkit-transform-style: preserve-3d; -webkit-transform-origin: 42px;}
.spine {-webkit-transform: translateZ(38px);}
.cover {-webkit-transform: rotateY(90deg) translateZ(-19px);}
li:hover {-webkit-transform:scale(1.3); z-index:1;}
li:hover a {-webkit-transform: rotateY(-90deg); -webkit-transition-delay:.5s;}
}

We’re done. The final bookshelf CSS contains some more properties that are neccessary to make it work, but it would’ve been to complicated to explain them all. Watch the book page for the final result.

I hope it wasn’t too hard to understand what happens. If you are interested in things like this you should read the 3D transforms article on the Webkit blog.

Conclusion

First I have to say that I’m impressed by what you can achieve with only a few lines of CSS. Building it with Javascript or Flash would’ve been more complicated, at least for me. Also, this degrades well for less capable browsers, the users just see the covers immediately without animation, that’s all, and it is very accessible for anyone else. Building it on pure HTML makes it also possible to integrate the bookshelf into a CMS, which I did with Textpattern.

On the other hand there are also some downsides, of course. Currently the animation only works in Safari/Webkit on a Mac, even Chrome is not able to handle 3D transforms as I’m writing this post. Sometimes, it can be hard to read the spines whereas covers are more recognisable and easier to remember.

There might be some room for improvements but in the end I think it’s ok to experiment with it. We just scratched the surface of CSS3 and we’re up for some exciting times.

What do you think of the new CSS3 possibilities like animation, transform and transition?

Misleading sign

The dog’s business

Means: If your dog has finished poohing, pooh next to him!

I discovered this sign a while back when I was in Ireland and immediately thought the same as the guy who doodled the person shitting next to the dog. Also, the stylised graphic of the dog is a bit strange.

April showers bring May flowers

Well, it needed more than a few showers and not only April to get this website done. Working on this since February, I finally have an almost finished new Blog. In the end, I bit off more than I could chew because I used this redesign not only as an experiment for designing entirely in the browser, but also to try out new HTML5 and CSS3 features and @font-face-implementation via Typekit, to play with Textpattern’s Multi-Lingual Publishing Pack (MLP) and to integrate a CSS-animated bookshelf. All in all a bit too much, but luckiliy it’s done now.

The most important thing for me the totally flexible layout according to the design of a single page, as you can see on the bookspage, for example. So I’m able to give my articles some individual design love. I going to do this exclusively for longer articles and only if I think it enriches the content.

I separated the content into five categories, beeing articles, notes, links, quotes and images. I hope this tumblelog approach helps me to blog more often and publish smaller things instead of only longer articles.

So, over the weekend I will reward myself with a few beeers. Meanwhile I’m curious to know what your opinion on this website is!

~Cheers

52 weeks of UX

You cannot not communicate. Every behaviour is a kind of communication. Because behaviour does not have a counterpart (there is no anti-behaviour), it is not possible not to communicate.«

With this quote of Paul Watzlawick’s First Axiom of Communication started the Project »52 weeks of UX« back in January, a whole website dedicated to User Experience.

Being realistic … (quote)

From »Oh.Nine« to »Twenty.Ten«

I’m not in the mood of writing at the moment. Sad things happend at the very first day of the year and they don’t seem to turn out well. Thinking about the Web, design and any other business related stuff feels so wrong now. But on the other hand it might be good to fill the empty brain with some positive stuff and to look forward. Well, time to move on, find my way back to everyday life and forget the sorrow—at least for now. So, here comes my review and outlook.

2009 review

The year 2009 passed by really fast. It was my first year of beeing self-employed. I founded a little one-man-company back in January after working a few years in a Full-Service Design Agency. The start went well, but in the middle of the year I felt the problems of the financial crisis, as some projects couldn’t be started. The end of the years was full of work again and so is the beginning of 2010.

Goals for 2010

I think it’s important to define some short-term and some long-term goals for yourself about what you want to achieve in the future. Of course we all want to earn money, but this is no real goal but more a necessity. Goals are important to make sure you are moving in the right direction and it is always motivating to reach a specific goal.

For me it is also important to make my goals (at least the business goals) public, so that I feel somehow forced to try to achieve them or at least to take them more seriously.

  1. Grow the business

    Of course, this is every business man’s goal. But for me this means—besides earnig more money—to try to get more and more job offers so that I can select the ones that are best for me and my portfolio.

  2. Redesign my business site

    I designed my current business website zillgensdesign.de within a few days after many false attempts. It fullfilled its needs during the first months but I think it is not reflecting me, my business and my clients in the way I want it to be. I also want to attach an english version to my site.

  3. Improve networking

    I don’t like the term “networking”. Perhaps this is due to fact that I’m not good at it. I’m often too shy to talk to people I don’t know and I also have to spread the word about my business a bit more.

  4. Meet (more) real people

    Working from home has the disadvantage of feeling alone sometimes. To outweigh this I attended a few conferences last year where I met some really amazing people. This is refreshing and I hope to meet those guys again in 2010 and do more travelling, too.

  5. Focus more on blogging

    Well, this is a bigger part as it includes many single steps like improving my branding, realign the design, focus on high quality content, write better english and so on. I only have a few visitors on my blog at the moment, since I just started back in November. I’m excited about how this evolves during the year. I also joined project52 to force myself to write on a regular basis.

So, that’s it, for the moment.

Update May ’10

I took a long break since January 2010 and one of the things I failed at already is project52. But as others pointed out, I want to write when I like to and not neccessarily every week.