On using OS-styled themes in Web Applications (or "In support of Halo")

In our RIA consulting work, we often get requests to skin an application's components to fit the "look and feel" of a specific operating system (can you guess which one?) Yes, you guessed it, Windows XP.

The issue with this is that supporting a WinXP theme brings along with it WinXP OS expectations with regards to how the components should function. i.e., If it looks like WinXP, it better work like WinXP.

As you know there are certain limitations that WUI (Web User Interface) clients have when compared to GUI (Graphical User Interface) applications. The most prominent of these stem from the fact that a WUI application runs within a GUI application (the browser) as opposed to being a standalone OS application. The standard user expectation here is that the WUI application is a document or screen within an application. This alone affects the range of what can be achieved with regards to the behavior of certain components with a WUI. (It is also easier to lose the user due to this additional layer that does not exist in standard GUI applications.)

I cannot, for example, have a window within my WUI be dragged outside of the application bounds, although I can do this with a GUI interface. Also, certain V2 components behave differently from their WinXP and OS X counterparts. For example, the scrollbar is a hybrid Win/Mac scrollbar that hides the scroll buttons when not needed like the Mac yet places the scroll buttons on the extreme edges of the track like Windows. Imagine what would happen if you were to skin the scrollbar to be indistinguishable from the WinXP scrollbar: The scroll buttons would disappear when there is no content to scroll, leading to calls to your support center: "I broke the scrollbar -- the buttons disappeared!".

Having a theme that resembles what a user would perceive as belonging to a modern UI without having it resemble the theme of any particular OS to the point that it could be confused with it (and thus carry along OS expectations that the components cannot meet) is A Very Good Idea (tm). That is what Halo does. (And, not surprisingly, the look and feel of Opal is also based on this principle.)

For related information, read through the second part of our Opal RIA case study on Flash Ant: Design decisions and emerging usability patterns. This issue, for example, falls neatly into the "Don't Sell What You Can't Deliver" patternette.