`Index </index.txt>`_

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

.. contents::


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;
    };
