I personally would prefer to see this divide: - Product developer - implements the functionality, from the database to the functional UI. Lives in Ruby/Python/PHP/etc. AND Javascript - UI designer - creates and implements visual designs. Lives in Photoshop and HTML/CSS - Dev Ops - maintains the infrastructure, optimizes resources, manages deployment. Lives on the command line Of course, all these rolls have crossover…
If find to write good JS view code, you need to be able to write html/css yourself. If you are implementing something like auto-suggest, a designer's html isn't likely to be much help. To write the view properly, you need to know how to position the suggest box relative to the input or cursor without interference from the rest of the DOM.
I don't think you can claim to be a good front end JS developer, and suck at HTML/CSS. I constantly find situations like: "how am I going to make this design work if the user name is 20 characters long?... Okay I'll float this, right text align this, overflow hide this, then a long-title plus a long username will automatically push the content down a bit". It is clearly a programming puzzle that needs to get solved by someone other than a designer.