Cascading Style Sheets (CSS) is a technology which allows personalized presentation styles of document contents. It is based in textual source code which has influence on the visual style and presentation of HTML and XML documents. This includes ways of assigning layout and style properties, such as font types and sizes, for different types of document components when they are presented. As having a long adoption rate from specification (CSS 1 : 1996, CSS 2 : 1998) to be fully supported by web browsers (2000 & 2006 for CSS2) it is predictable that CSS 3 modules like Backgrounds and Colors, Media Queries, and Multi-column Layout will come in no short time from now (2012), although many web sites today use CSS heavily. Through the years, the need for high-level presentation objects like grids and common layouts, leaded to the creation of CSS libraries called CSS frameworks to help web programmers in composing more attractive web sites in a rapid way.
The objective is to complete an initial CSS framework in Smalltalk (Phantasia) with CSS Template
objects. Phantasia avoids to learn CSS syntax, and with proper completion could obtain a rich object model of CSS objects beyond the specification limits, suitable to edition through Smalltalk code. High-level template objects could include navigational ones like lists, menus, or palettes, useful in wizards. Presentational objects like template layouts, which are already implemented by external CSS libraries like Blueprint, and scale to whole CSS templates including reports, galleries, etc.
The model should be independent of web framework so it could be re-used in Seaside, Aida, Iliad or other future web frameworks.
Benefits to the Student
The student will learn how to build and extend a model for a limited textual technology (CSS), from the low level objects like CSS functions to high level objects like Positioners. The student could apply the results of his work to several popular Smalltalk web frameworks.
Benefits to the Community
The Smalltalk community working with web technologies will be tremendously favoured by having ready-made CSS objects to incorporate easily in their web applications.