Index

# backlog

author: | $LastChangedBy: cthedot $
date: | $LastChangedDate: 2007-11-25 19:15:02 +0100 (So, 25 Nov 2007) $
version: | $LastChangedRevision: 700 $

Contents

- backlog
  - improvements
    - test improvements
    - @unknown
    - CSS2Properties
    - @namespace
    - CSSValue
      - serializer
    - performance
  - new features
    - Selector
    - serializer
    - rbga()
    - Properties
    - LinkStyle, DocumentStyle

## improvements

### test improvements

prio: | 1

- Token.EOF handle in all classes for end of stylesheet

  > User agents must close all open constructs (for example: blocks, parentheses, brackets, rules, strings, and comments) at the end of the style sheet.

- line/col reporting tests

- tests with almost all details with comments

- check escape handling:

      \\@a \\{ \\: : \\; ; \\} }
      .\1 is valid selector

- csshack tests, see online tables (comment hack?)

- test tigris.css

- implement testsuite on HTML? http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/xhtml/index.html

- CSSStyleSheet.setSerializer()

- CSSStyleSheet.setSerializerPref()

### @unknown

prio: | 2

needs to be parsed properly, check for open blocks () [] {}, etc

### CSS2Properties

prio: | 2

needs to be implemented fully, setting of margin: 1px sets actually marginTop, marginLeft etc

### @namespace

prio: | 3

- stylesheet:
    - tests for undeclared prefixes in stylerules, mediarule
    - use parentRule or parentStyleSheet to look for @namespace!
    - remove from stylesheet!

- CSSRule.nsvalid ?

### CSSValue

prio: | 3

this feature may be implemented later as CSSOM defines the complete thing differently

implement RGBColor, Rect and Counter

#### serializer

- add preference option how color values should be serializer:

  ser.prefs.COLORS_HEX, also the DEFAULT?

    e.g. #123, so short form is possible ignored for rgba()

  ser.prefs.COLORS_HEXFULL

    e.g. #112233, so always 6digit hex ignored for rgba()

  ser.prefs.COLORS_RGB_INTEGER

    e.g. rgb(1.1, 55, 255), so range from 0-255 also for rgba()

  ser.prefs.COLORS_RGB_PERCENTAGE

    e.g. rgb(10%, 20%, 100%), so range from 0 to 100% also for rgba()

  ser.prefs.COLORS_FROM_SOURCE

    use colors as used in CSS Source

  additionally:
    ser.prefs.NAMED_COLORS

      e.g. white for #fff or rgb(100%, 100%, 100%)

- refactor: all preferences values should be constansts like above

### performance

prio: | 3

- Use of the XIST CSS-tokenizer

    TODO:

    - renaming of tokens
    - add of line and column information

- other bottlenecks

## new features

### Selector

prio: | 1

- CSS2XPath converter? -> lxml.cssselector!
- optimize selector parsing
- add query functionality

### serializer

prio: | 2

- prettyprint convinience serializer?
- XML serializer to be able to handle CSS with XSLT, schemas etc?
- different coding styles?

### rbga()

prio: | 3

implement rgba

- names colors:

      Black = #000000             Green = #008000
      Silver = #C0C0C0            Lime = #00FF00
      Gray = #808080              Olive = #808000
      White = #FFFFFF             Yellow = #FFFF00
      Maroon = #800000            Navy = #000080
      Red = #FF0000               Blue = #0000FF
      Purple = #800080            Teal = #008080
      Fuchsia = #FF00FF           Aqua = #00FFFF

- "transparent"

- rgba(R, G, B, opacity): opacity in range (0,1)

- hsl(), hsla() ?

- SVG colors?

- "currentColor"

- System Colors are DEPRECATED!

- "flavor"?

### Properties

prio: | 3

Set styledeclaration properties with dict or list of tuples?

### LinkStyle, DocumentStyle

prio: | 3

    // Introduced in DOM Level 2:
    interface LinkStyle {
      readonly attribute StyleSheet       sheet;
    };
    // Introduced in DOM Level 2:
    interface DocumentStyle {
      readonly attribute StyleSheetList   styleSheets;
    };