Question: what is the difference between good on you and good for you?
Answer: "Good for you" is a reference to something you have DONE (or said). In American English, "Good on you" is a reference to something that you are wearing. "That hat looks "GOOD ON YOU."