You might be better off getting him a gift card and letting him shop for himself. Not that the things you picked aren't nice, but if he doesn't particularly like the style or they don't quite fit, the gift can seem a little underwhelming or poorly thought out, even if it's not. And hey, this way, if you like the guy, you can shop for stuff WITH him.
A description of the friend in terms of hair color, skin color, height, body type etc will help :) These are good choices and since you are being specific to the choice best we know what he looks like :)
If he doesn't own a blazer, navy is the most classic and very versatile. The mid-dark grey is also very useful. White blazers aren't worn much where I live outside of maybe July and early August, even then not that many guys own them. But if you live somewhere very hot, it might be different.
For dress shirts, a darker dress shirt with jeans looks, to my eye, good. But it doesn't work nearly as well with blazers as you might think. With a blazer, you're better with the classics - white, light blue, pink.
As a guy, I honestly can't stand it when people buy me clothes.
If you can't make up your mind, you ought to just give him a gift card. Don't worry about coming off as impersonal. It is really the most practical gift. You won't have to worry about buying him something he doesn't like.