I was migrating old CSS styles to Launchpads YUI-based style sheet a few days ago. I became lost in the new style sheet, and I was confused by what appeared to be duplicate or contradictory styles. I spent my evening reordering the styles by selector types instead of by application uses
When I was done I discovered we have several table styles that do not look like the intended style of the site. There are more than 10 list styles that imply the transitions to sprites is incomplete.
I think the decision to have sections for applications was wrong. It encouraged developers to create styles that are not reusable. Developers should be updating the styles so that all Launchpad evolves. (I recommended the continuance of this rule when I created the YUI style sheet.) The YUI style sheet is ridiculously large now, and it is only 9 months old. This is a strong indication that there are many exceptions in the presentation that users must learn.
My next round of changes will be to normalise the sheet to remove the duplication. I added a CSS reformatter and validator to gedit-developer-plugins to help me do this. After that, I think I need to reduce the number of classes by half, which also means updating some old layouts. There is still an unresolved issue of application specific styles in the old and new style sheet. I think a lot of work is needed to remove the exceptions from the pages. Doing this has one great advantage–future redesigns will require CSS and base template changes instead of changes to every template.