...
I think the other key design concept to keep in mind with class attributes is separation of concerns. It will make for much cleaner and more stable designs if by making sure classes are only used for one purpose. i.e. a class used for a Javascript action should not be used to apply a styling rule.
Only uses using classes avoids the cognitive load of having to choose whether to use a class or an id attribute.