You rarely ever see websites with a UI that has the same skin as the operating system. But, desktop application rarely ever change skins. Why do custom-skins work so well for webpages but not for desktop applications?
2I have a question about your question - how exactly could a website have a UI matching the operating system?– Charles BoyungAug 13, 2010 at 16:29
I think that is an historic thing, newer desktop apps are actually very likely to have a custom skin.
I think the reasons are:
Web browser's default style is useless (it's ugly and not very usable) and differs between browsers so you can't actually use it.
Web sites (and as an extension web apps) are much more likely to have an graphic designer involved in the development process than desktop apps (this is probably no longer true).
Desktop app's controls are extremely hard to re-skin (with newer platforms this is definitely no longer true)
I personally develop and sell a desktop app with a custom UI.
6Actually, it isn't really a historic thing. In general desktop apps have a common look to them because most OS's (and I'm going to include mobile OS's as well) have UI guidelines that the OS maker recommends you follow. There are definitely guidelines for Windows, OSX, Windows Phone, iOS and Android. Also, desktop app controls are not hard to re-skin, at least not in the Windows and OSX worlds, and haven't been for many, many years. Aug 13, 2010 at 16:31
3@Charles Boyung - While not hard, they are harderer for the most part. WPF controls are trivial to skin, but try doing the same thing in WinForms. Aug 14, 2010 at 1:47
@Robert Fraser - I spent lots of years skinning controls in winforms - VB, MFC, .Net. Not really all that hard. Aug 15, 2010 at 16:15
4The reason that most desktop apps aren't "skinnable" is because it's a really stupid idea. Consistency is much better. And most user-generated "themes" are horribly unusable and ugly.– ZifreAug 29, 2010 at 21:10
The reason is web pages start out as a blank white rectangle. There are actually default styles that each browser implements (thus the prevalence of a reset.css in many sites). I only have experience developing WinForms and WPF applications (on windows), so it is from that point of view that my answer comes. WinForms is notoriously hard to skin, because beyond simple settings the controls that windows provides are not skin-able unless you override the OnPaint() event and write your own rendering code. this is significantly harder than producing a css file that changes the background color and font. quickly changing these properties on traditional WinForms globally is a major PITA. The ability to write a "reset.css" for WinForms does not exist, thus many developers decided to stick with plain old windows default control color.
Websites have custom looks because, as others have answered, they pretty much have to.
Desktop apps, on the other hand, are most likely to conform to the OS "skin" (as you put it) because the makers of said OS provide UI guidelines - recommendations on how you make your apps for their platform. Windows has them, OSX has them, and most of the mobile platforms have them as well (Windows Phone, iOS and Android for sure). I'm not sure if Linux has any guidelines because I haven't built Linux apps, but based on the completely disparate interfaces I've seen in just about every Linux app I use, I would guess that they do not have guidelines, at least not at the level of detail as other OS's.
1Linux does not have guidelines, but that's fine because Linux doesn't include a particular GUI environment. Some of the graphical environments designed for Linux do provide guidelines; KDE/Qt and Gnome/GTK+ both have sets of increasingly unified applications. Take a look at a default Ubuntu install some time -- most of the standard apps have a common look. Aug 18, 2010 at 21:27
@Steve - That may be true for the apps that are built for/part of a specific install, but what about third-party apps? There is no consistency among those apps at all. Aug 19, 2010 at 15:25
1Pretty much all Linux apps are third party apps. No single entity has design control over them or even over all/most of the apps that are included by default in a particular distribution. In spite of this, the more "mainstream" apps do share design and style. Such apps exist for the primary tasks most people perform with a computer (web, documents, communication,...). Old/specialized apps may deviate from the conventions, but the same problem exists on Windows and Mac. Aug 19, 2010 at 16:35
Here is one of the more prominent style guidelines for Linux apps: library.gnome.org/devel/hig-book/2.30/hig-book.html Aug 19, 2010 at 16:38
Custom skins work well for web applications because...
- It is the convention for that context
- There isn't a better alternative (browser incompatibilities being what they are)
- Web-based UI tends to be sparse and simple
- Users are often potential customers, so marketing has increased importance
But custom skins do not work well in general because...
- They destroy consistency
- Most of them suck (we can't all afford graphic designers)
- They may increase development (not just design!) costs
- Complete, bug-free, self-consistent, usable, aesthetically pleasing styles (and custom widgets) are difficult to create (see 1-3)
- Web applications need to provide consistent branding between different operating systems.
- Since most webapps are still loosely CRUD-based, they can afford to customise their UIs more without getting in the way.
- Desktop apps are generally used for longer periods of time, and for more advanced tasks (e.g. development tools, video editing software), for that, custom skins just get in the way and branding is more likely to alienate the user. They also often need to behave similarly to competitors to make it easier for users to transition from another application. Desktop applications with simpler UIs (such as media players) are more likely to use/support custom skins.
Having designed extensively for both at the enterprise-level the answer is simple - cost. If executives were shown demos of desktop products with a heavily customized look and feel and told the cost was minimal most would scramble to find a way to insert the corporate colors/logo/fonts/etc. anywhere they could. There are a myriad of development/ux reasons for and against this disparity, but ultimately it's a matter of cost.
A desktop application is mainly about providing some functionality. While a a web page does branding, provide information and functionality. I think you can compare it to say operating the functions on a car. You want things to work and look in as standard fashion as possible. This corresponds to a desktop app. While a web page is more like a magazine where you want to create an attractive layout, pictures etc to entice the reader.
Now these two worlds are merging in a way, web pages are increasingly getting more app like functionality but they are still stuck in the "magazine" thinking way and unlike the desktop there is nothing built into the browser or web specifications that make web apps have a standard look and feel.
I would say the problem is that web apps are still very immature compared to desktop apps.