Apple has their Human Interface Guide [1]. Even if you don't program using their elements, it's still an excellent first read to understand the thinking behind a number of the visual elements you often take for granted. Google and a number of others often publish their interface guides as well.
[1] https://developer.apple.com/library/mac/documentation/UserEx...