There are a lot of themes and CSS frameworks that make this so much easier than it used to be, but there's still a specialized skill around design. Developers that fail to understand this are doomed to build, at best, mediocre design.
Early in my career I built a couple sites/applications that I thought were pretty decent -- after all, I "knew" HTML and CSS and how to use Photoshop, etc. Then we had an actual graphic designer come in, do some relatively small tweaks -- spacing, sizing, borders/gradients/corners, etc type of thing -- and it was a radical improvement. After a couple times of that happening I learned I just don't have that skill.
If you're a programmer, think of this like the difference between "working code" and "working, elegant code". It's hard to get a jr developer to really understand the differences, because often the benefits aren't seen until you come back to the code months later to add something new. I'd consider code to be "elegant" when someone can rapidly understand it, and then easily modify it without breaking anything, and then do that again in another few months. The extreme opposite would be where it gets to "throw it out and start from scratch".
Early in my career I built a couple sites/applications that I thought were pretty decent -- after all, I "knew" HTML and CSS and how to use Photoshop, etc. Then we had an actual graphic designer come in, do some relatively small tweaks -- spacing, sizing, borders/gradients/corners, etc type of thing -- and it was a radical improvement. After a couple times of that happening I learned I just don't have that skill.
If you're a programmer, think of this like the difference between "working code" and "working, elegant code". It's hard to get a jr developer to really understand the differences, because often the benefits aren't seen until you come back to the code months later to add something new. I'd consider code to be "elegant" when someone can rapidly understand it, and then easily modify it without breaking anything, and then do that again in another few months. The extreme opposite would be where it gets to "throw it out and start from scratch".