While building a Javascript-heavy web application, what is the best practice for naming CSS classes to keep the Javascript code and CSS stylesheets clean and the UI structur
Trying to deal with unique names can work well for small projects, but the larger you get the more likely you will have conflicts.
That is why I like the second approach.
However, to make it easier, you can use SASS, to pre process your css files. You can then do nesting like this:
#list {
.delete {
}
.items {
.item {
}
}
}
And you will get code similar to your second example, without having to write it all out.
As for the jQuery selectors, those would still need to be written out longhand if you wanted to do it that way, but having complex selectors like that is often considered a sign of a bad design.