“Two steps forward, one step back” seems to have been this week’s mantra. I finished up the panel UI, implemented a few generic widgets, and began to integrate them into the UI.

The step back came when I began to implement and organize the CSS data I needed to continue moving forward. While I had implemented what appeared to be the best potential solution, the code to make the solution cross-browser began to detract from performance. This, as well as additional benchmark data and the fact that each browser’s representation of the data differs, led me to begin writing a CSS lexer/parser in PHP. (To be clear, this is something I’d already planned on doing, I just shifted the date in the timeline).

As a result, the latter half of my week has been devoted to researching and coding the lexer/parser. I’m happy to say that the lexer is complete and working, and if all goes well, the parser will soon follow.