Learning to design well is like learning to code well: You do it a lot until you improve. Examine "good" designs, thoroughly. Keep notes of sites or apps you find attractive, and try to find out why. Emulate those things.
Also, read some actual design theory books. Theory is to design what algorithms are to code.
Also, read some actual design theory books. Theory is to design what algorithms are to code.