Up front notice: I am neither the designer nor the developer of the window chrome in Windows Vista.
I have been using Windows Vista Beta 2 as my primary operating system since it was released. My overall impression so far: it is really, really tight. Sure, there are still some warts. Sure, I have to relearn a number of things that at one point I could do without thinking. But overall, it really feels good.
Of course, my purpose in posting is not to shower praise on the product. Give it a try yourself and form your opinions. Rather, I wanted to take one small aspect of the design and dissect it from my own, very personal, point of view. It illustrates to me very clearly how important the little details are in implementing a great design.
One of the most clearly (bad pun, I know) visible aspects of the UI design is that the windows are partially transparent. Not quite transparent, really – they actually distort the image behind them (using pixel shaders). However, as soon as you maximize a window, the transparency goes away. Why?
Windows Vista Beta 2 Glass Windows: Maximized (top) and Normal (bottom)
To understand this decision, it is important to think about the story that the designers are trying to tell with the glass windows. What is their purpose? Is it just to look cool? In this case, looking cool is certainly part of the story, but I suspect the real intention here is to keep the window chrome out of the way. This story is completely consistent with the behavior we are seeing. When in normal mode, the window chrome (which we add on to windows) gives you access to key window management functionality, but other than that it just just extra stuff that blocks your view of other items on your desktop. By making it get out of the way somewhat, it blocks those items less. However, if it were completely transparent or undistorted, then you could see the items behind it a little bit too clearly, thus raising their importance so they begin to get in the way. It is a delicate balance – reduce the heaviness of the chrome, but don’t reduce it so much that other items start to become distractions. Whether they have it perfectly balanced is in the eye of the beholder, and in fact the control panel will let you tweak that balance if they didn’t nail it to your liking.
When you maximize a window, however, you are communicating a very different intent. You no longer need to have the ability to maneuver windows around with these light weight frames. How do we know that? Because you can’t maneuver windows around while they are maximized! If the window chrome started showing what was behind that window, it would add new things to get in the way, with no real purpose for showing these things as a means of getting out of the way. Reducing the brightness and removing the transparency when maximized is a clever way of following the same principal – the window chrome should be secondary to the content of that window. It should stay out of the way in the most appropriate way, based on the user’s intent. Clever.
Clever, but not perfect.
If it were perfect, you see, nobody would ever ask that question, because it would be inherently obvious what was happening and why.
How could it better communicate the rationale? My first thought – what if it animated? As it is right now (which, admittedly, could be due to some very early WDDM drivers), the window chrome literally snaps from glass to opaque. What if this were animated? Then, we could see what was happening and increase our likelihood of understanding correctly. If the alpha faded away and the luminance decreased smoothly, then it might do a better job of sending the message, “Hey, I see that there is no more reason for me to show you what is behind me, so I’ll go ahead and get out of the way now.”
When I think of animation, this is the type of communication that I think it is best used for. Yes, with Windows Presentation Foundation, you can make buttons bounce arbitrarily around the screen with almost no code. But why would you ever want that? However, when you use animation to communicate rather than just look cool, then you have hit the sweet spot.
What else do I find imperfect? This is a bit more subtle, and deals with my personal response to the user interface.
The human mind is optimized for pattern matching. We are consistently anthropomorphising, consistently seeing metaphors. When I maneuver glass windows around my desktop, I don’t just see the pixels. I personally see (feel?) an application drawing surface resting on a very high quality glass frame in 3-dimensional space. I really like the feel of the material that my brain is inferring. It feels expensive. When I maximize a window, it literally feels to me as if it has changed material. The texture is different. Rather than this expensive glass, now it feels more like plastic. Even more, I begin to see the pixels at the top of the frame as pixels instead of as natural shading and highlighting, causing me to stop suspending my disbelief in the metaphor my mind has created.
My logical mind tells me that the “texture” my brain is seeing is caused by the pixel shaders, and not by anything that is explicitly rendered on the chrome. As soon as you take the pixel shaders away (for a sound design reason, mind you), how can you maintain that sense of texture? I don’t know. What I do know, however, is that I like the “feel” of that chrome enough that it changes my behavior. Rather than maximize my windows, which leaves me with the cheap plasticy frame with pixels drawn on it, I leave my windows restored and just stretch them to fill my desktop. I like the feel of the material that much.
What can I learn from this? First, you can see just how important it is to tell a story and communicate. The window chrome in Windows Vista Beta 2 tells such a story. Animation can help tell that story, and it should be used when it has the power to communicate. Most importantly, I learned never to underestimate how emotions can influence the experience of your user interface. It is more than about pixels. It is about manipulating an experience and leveraging the pattern seeking tendencies of the human brain to make people feel good about software (or, at a minimum, avoid making them feel bad). Logic does not always trump emotions.