View Full Version : CSS for Applications
6th October 2004, 10:19 AM
There has been a lot of talk and celebration about CSS and the idea of seperation of content and design. This allows web developers to program the functionanlity of the site while the designers can work the design seperately and simutaneously. It also allows the technical programmer to do what (s)he does best leaving the design to a professional artist/designer. This seperation has another benefit. It allows a website to have multiple stylesheets making easy to switch to a different design at will without the hassle of recoding. In short, CSS has revolutionized the look and feel of web.
It would be nive if the same principal was applied to application development. One of the most common complaints about Free Open Source Software is that it usually has a terrible interface designed by the technical developers that created it. There have been attempt to combat this problem with things like the Human Interface Guidelines developed by GNOME. Glade gives the designer the ability to visually desgin the interface without knowledge of programming, but you still have the problem of having the design being integrated into the program's code. This slows your ability to change the design without having to go through the developer.
CSS for applications would be just as revoluzionary for applications as it was for the web. Some may say it isn't necessary with the simy dynamic interfaces we have today that let you add button and apply different themes, but these are only so flexible. With a complete seperation of functionality and desing, the application could be developed twice as fast. This is probably not feasible becuase most applications are programmed in languages the require compiling to run. These languages would require you to compile the design as well. Thats why this approach has only been applied to scripting languages like PHP. Are there any efferts to address this problem, or is it not a concern for most programmners? Would an idea like this even be possible?
6th October 2004, 11:52 AM
applications written in XUL will be really hot for just this reason... cross-platform, XML interfaces, styled with CSS, etc etc... couple of examples
I think I've seen others... I really want to find a nice example I saw the other day but can't remember where
6th October 2004, 08:28 PM
If you've ever used kopete, you can theme the conversation window using xslt. I like this idea very much, it makes it customizable. I no longer use kopete, because it's not as advanced as gaim, and I use gnome, so gaim fits in better. This may not be the same kind of thing, but it's a program that allows editing of the interface in a more advanced way.
I think it would be a good idea to have multiple people working on programs, some who design, and some who do the code chomping. I think I'm better at the interface of things than I am at actually programming. Of course I'm only a freshman Computer Science major, so I hope to get better in the next 4 years or so. And, even though I may consider myself a good interface designer, I'm no artist, so I've never had much luck at making good icons.
I really do like this idea of CSS customization of programs.
6th October 2004, 08:48 PM
I don't think that CSS is so revolutionary... it is design describing language but speaking of web you mean (IMHO) separation of the data/content/logical part from visualisation/look - this is acomplished having few layers of design: data/logic layer, cache layer and visualisation layer. it is more of templates, generating content (HTML with different styles for print, web, disabled ppl, PDFS, XML feeds and so on) from underlaying engines and visualising it with some tool. it is not abuot CSS only... CSS only describes (thinking of webpage) something that already have been visualized to some markup language...
with this in mind it is also no such thing like CSS for applications (website is an application also) - it is far too complex than having only few styles. it includes layers and so on... the idea itself is quite good but I cannot find much useful uses of this... I understand having different presentation for disabled people... but it will not solve the problem of bad interface design as another (meaning this "CSS for user apps" thing) design can also be poor so nothing revolutionary here :)
IMHO instead of developing ways to create loads of different interfaces for the same underlaying app we should focus more on making one but good interface, and maybe then we may start making another ;)
BTW GNOME IMHO has great interface design... especially high contrast vision/bigger for people having sight problem is quite good. acctually compared with Windows UI's it is far more advanced as themes do not only widgets sizes and fonts but also toolbars, stock icons etc. - I haven't see something like that in Windows... also comparing varirty of applications for Windows with several for GNOME I think GNOME is far mor consistent among these (few) applications than Windows among loads of its applications... think f.e. about programs given with hardware (f.e. audio mixers) on Windows - they usualy (despite looking as crap, with crappy bitmap theme which gets broken if you change default font...) don't match Windows look (and sometimes even feel!) at all...
6th October 2004, 10:12 PM
My main reason for this would be the seperation of the design and the program's functionality. That way you can let the developers make and excellent feature rich stable program and have a seperate design team make and excellent intuitive interface. This should end the problem of the application being made by developers for developers, like OOo (at least that's what the users say).
6th October 2004, 10:47 PM
this is already done and it is called modular design and in fact it is best design IMHO... Linux is modular, Apache is modular - you only use that modules you need, also developement can be split in teams which work on modules, AbiWord does it also... excelent example of your vision is VideoLAN project - VideoLAN uses modules for everything, you have main module, OS specific modules, you have modules for inputing data (decoding multimedia etc.), modules for output (audio and video outputs) and finally interface modules - thus VideoLAN (same framework) can be used with different interfaces like GNOME interface, Qt interface, curses interface, web interface, wxWindows interface, Win32 interface (not on Linux) and so on...
it is already done :) problem is that few projects use such design...
as for OOo - every app need to mature. OOo 1.x is a little rough but it is still a very useful program I use it in office for dozens of workstations. we don't need to spend loads of money for MS Office licenses and users still can get their work done much the same like with MS Office (in fact they don't use more than 5% of features)... so I mean OOo is very good program it has threaten MS despite of lacking in UI (OOo Office functions, file format and so on is quite OK for me), wait for 2.0 version with revamped interface and footprint - it will be a (MS) killer ;) add to it standardization on OOo format (and thus no longer problems with MS Office compatibility since MS Office must support standardized formats (goverments want them - this is important) to be in game)...
7th October 2004, 05:49 AM
I don't see CSS as it is right now in program interfaces. It does a good job of seperating data from it's presentation. XUL, yes.
I agree that seperating the core functions from the interface is a good idea. It enables flexability. For example you can choose the command line program, or a graphical interface to it. nmap is a good example.
8th October 2004, 12:47 AM
I think it would be a good idea to seperate the color from the theme, and have color themes available. A "color scheme" in the theme chooser. What do you think??
Oh, and this could be a css file to edit it, but probably not. So, this really doesn't have to do with css very much. Oh well
28th April 2005, 05:03 PM
Superbnerd, if I can recall, most (if not the entire) Firefox interface and extension interfaces are made using CSS. It requires a lot of CSS coding, but has the similar benefits of modification and adaptation that you can obtain from web-based CSS design.
1st May 2005, 03:00 AM
I hate to disappoint some of y'all, but separation of the viewable pieces from the computation pieces is old news: it's called the MVC pattern (Model-View-Controller) and is used extensively in Java, especially for browser-based applications. C#/.Net, obviously, makes use of the same pattern.
The issue for the existing applications is that it's a real PITA to go back and re-write the entire application to use the pattern effectively, if it can be done at all. It's definitely "non-trivial" and it's not entirely an intuitive approach for UI applications. Window managers already do this somewhat.
vBulletin® v3.8.7, Copyright ©2000-2013, vBulletin Solutions, Inc.