I'm in learning phase. But according to me. For a good front-end user algorithms and data-structure is necessary. Designing is a plus point but not mandatory is you are working with a team. But if u r alone as a freelancer then you should have designing skill.