Login | Register
My pages Projects Community openCollabNet

Project home

If you were registered and logged in, you could join this project.

Summary CSS for web applications
Category design
License Apache License
Owner(s) tfahrner

This project came about in March 2002 when developers from the Turbine project appropriated the CSS and HTML templates already in use by Scarab and Eyebrowse, which in turn are developed at CollabNet for its SourceCast product, a collaborative development environment built around Tigris and Jakarta technologies. The fact that several projects were using the same resources suggested that a formal sharing arrangement would be a good idea, in replacement of the ad-hoc copying and manual synchronization that had previously prevailed even among the CollabNet-sponsored projects.

The latest stable CSS and image assets are available through the File sharing component. The following items demonstrate their application as a layered system:

  1. HTML usage sampler (simple HTML only)
  2. Sampler with base (Tigris and print) stylesheets applied
  3. Sampler with Tigris and instance-specific extensions (inst.css)

The HTML of all these examples is identical; the delta is all CSS. View source of the usage sampler to learn how to exploit the stylesheets fully. Of course, it takes a while to figure out how not to break things, and more to really make things sing. That's what the mailing lists are for. If you're new to CSS, there are some introductory resources listed a mailing list message.

Work in development - not stable - is staged separately. A major emphasis of work in development is to attain W3C XHTML Strict conformance, retiring many workarounds deployed in earlier versions to prop up Netscape 4.x.

Goals and antigoals

The HTML and CSS system put forth here was designed to meet the following goals, and has evidently succeeded well enough to be copied:

  • Be end-user friendly through speedy loading, consistency, and responsiveness to user prerogatives like font and window management, security settings, etc.
  • Play nice with older and defective user agents, while exploiting the capabilities of modern, standards-conformant UAs like Mozilla
  • Be accessible: conforms to all Section 508 guidelines, and (nearly) achieves WAI Double-A conformance
  • Be reproducible and maintainable through lean, simple, valid markup, relegating all nonessential formatting to the stylesheet
  • Not least: produce good looks as-is, yet remain very easy to customize extensively.

More broadly, among the goals of this project are

  • To advance Web application user interface coding, interaction model, and accessibility standards among open-source projects through code sharing and peer review
  • To document, largely through the accrual of a discussion archive, usage and rationale of the stylesheet and template regime that led to creation of this project
  • To provide stable stylesheet hosting via CVSWeb for ease of development, and also custom DTD hosting to facilitate use of online validation services.

Not among the goals are

  • To promote - much less enforce - a monolithic look & feel for Web applications whose developers are project members. This will be a mark of failure, though perhaps unavoidable in the beginning. The challenge is to accommodate and encourage a robust genetic diversity within the species - i.e. while retaining the ability to share source.
  • To provide general CSS or HTML support, or a forum for discussion of Web authoring issues not closely relevant to the problem space of the source code hosted here. css-discuss and related resources are full of general CSS goodness.
  • To host a production stylesheet server like W3C's.


Daniel Rall created the project, with Todd Fahrner as co-owner. Daniel is the Java guy; Todd is the CSS/HTML guy. This makes Daniel the bigger, more generally useful fish, while Todd is the little fish with interests and skills most narrowly scoped to this project. We stand on giant fins.


p.s: Daniel thought this CSS terminology pointer from the dev mailing list was too important not to put on this page:

   selector { property: value }

   \___________ rule _________/

There, now you don't need to say "CSS tags" ever again.