Because of the way the coloured boxes were generated it was non-trivial to apply the user css

Let me clarify: the problem is that the CSS specifies the text colour (AKA foreground colour), while the boxes originally depended on setting the background colour. AFAIK there's no way to tell CSS "swap foreground and background colour". Hence, in a next phase, a completely filled block character was chosen, as quite a few people weren't happy with the spades. It seems an equally important section of our population feels that way about the blocks.

Couldn't you just have it generate two ranges of CSS classes? One for forground and one for background? They could even share the same name just one has a.nnt-Steaming { color : #0000EE; } and the back ground is td.nnt-Steaming { background-color : #0000EE; } ... forgive the css errors if there are any. That region of CSS looks automaticaly generated, if so its just a matter of finding where its generated and making a minor addition.

That is/was one of the possibilities, but required a better understanding of the code and would require a larger change that was more prone to errors. For example, the code would have to accommodate a user that supplied the css in a different order or that used different capitilisation. Think "parsing HTML" and processing user input ("when you make it fool proof, they make better fools").

It could have been done that way (still can), but the road looked bumpier.

Hehe. Sorry last time i looked RAT just had the color blend setting where the intermediate colors where generated automagicaly (i assume). Even now though users could just know that they need to supply a a. and a td. class for each color they wanted to set. I think that then CSS could even be used to insert the char into the table cell (i'm thinking the way some of use insert symbols in front of other users names in the CB).

I don't see any need to parse users input at all, if they are over ridding the actual CSS then they need to get all the tags, and if they are using the color blend then the site generates the needed CSS. Am I missing something painfully obvious? ;)