The Core Style Project

Note: this document has been out of date since 13 April 1998. It remains available for background information on the project now being staged here.

Abstract

The Core Style Project proposes a modular architecture for Web stylesheets. It builds upon the CSS1 Base Stylesheet, now incorporated into the CSS2 Recommendation draft. The project aims to promote cascadability among Web stylesheets of diverse origins by providing style authors with generic yet attractive models and bases for their own elaboration. It provides four CSS1 stylesheets ("families"), each composed of five modules. Each family addresses all elements of the HTML 4.0 DTD, declaring values for all CSS1 properties. The project also suggests a "class/id namespace library" for enriching HTML semantics without sacrificing interoperability. The modules group CSS1 properties into stylistically useful units, and are formally parallel across families. This parallelism encourages swapping of modules, permitting well over a thousand "bastard" permutations, with astronomical possibilities arising as alternate modules are added to the core.

Status

This project is part of the W3C Style Activity, being developed by Verso. When stable, it will reside on W3C servers as a resource for Web authors and implementors, where it will be maintained and expanded as support for CSS progresses.

Currently, the basic "left hand side" or selector architecture across families has stabilized conceptually, but is subject to adjustment based on testing and feedback. The "right hand side" property values, affecting the final look and feel of the families, have not yet stabilized, though certain modules tend to be more finished than others.

Apart from general testing, tuning, and documentation, the most significant work remaining lies in the refinement of server-based means to prevent unfortunate results in early CSS implementations. This entails conditionalizing the serving of modules or subsections of modules based on the requesting UA's ability to handle them. Such conditionalization permits "hack-free" use of the style families with the Netscape Navigator 4.0.x and Microsoft Internet Explorer 3.0.x browsers.

Modules and families

The CSS1 properties have been collected into the following modules. The module names are linked to examples for reference:

Body type
Declares the faces, relative sizes, and weights of all text elements not addressed by the Header type module. Implementation shortcomings prevent this module from being served to the Microsoft Internet Explorer 3.0x, 4.0 for Macintosh, and Netscape Navigator 4.0x browsers.
Margins
Declares only the margins on the BODY element. The Microsoft Internet Explorer 4.0 for Macintosh browser receives only one of the four core modules.
Composition
Consists of two sub-modules: vertical and horizontal space. Declares the margin, border, padding, and line-height properties of all elements. Not served to the Microsoft Internet Explorer 3.0x, 4.0 for Macintosh, and Netscape Navigator 4.0x browsers.
Header type
Declares the faces, relative sizes, and weights of the Hn, DT and TH elements. Not served to the Microsoft Internet Explorer 3.0x, 4.0 for Macintosh, and Netscape Navigator 4.0x browsers.
Affordances
Declares the functional and phrasal semantics differentiation scheme, isolating major color and typographical contrast issues. Contains the suggested class/id namespace library.

These modules, forming the families Alacrity, Brevity, Celerity, and Dexterity, create the following matrix:

Alacrity Brevity Celerity Dexterity
1. Margins 1A 1B 1C 1D
2. Affordances 2A 2B 2C 2D
3. Header type 3A 3B 3C 3D
4. Body type 4A 4B 4C 4D
5. Composition 5A 5B 5C 5D

As noted elsewhere, the grid is likely to grow in a more organic, non-orthogonal fashion in future, adding several "orphan" modules for greater variety of effect.

Test documents

Below are generic HTML documents linked to the style families in development. All are copies of documents being maintained elsewhere by their respective authors. Permission has been granted to use these documents for demonstration purposes only. Though some common markup habits don't fare well - such as using <p> as a separator instead of a container - it is a vindication of the principles behind HTML that these documents lend themselves to such comprehensive restyling without modification beyond links to a stylesheet.

To see live modular swapping in WinIE4, see also Gordon Blackstock's exciting DHTML application of the project's modular architecture.

Unstyled test documents ...linked to style families
XML, Java, and the Future of the Web, by Jon Bosak Alacrity Brevity Celerity Dexterity
A simple test document Alacrity Brevity Celerity Dexterity
The HTML 4.0 Recommendation (draft) Alacrity Brevity Celerity Dexterity
Shame and War Revisited, by Philip Greenspun Alacrity Brevity Celerity Dexterity
The CSS1 Recommendation Alacrity Brevity Celerity Dexterity
A well-formed HTML document Alacrity Brevity Celerity Dexterity
WD-font Alacrity Brevity Celerity Dexterity
Warren Steel's Web Hints for Authors Alacrity Brevity Celerity Dexterity
Jukka Korpela's Review of HTML 4 Alacrity Brevity Celerity Dexterity