This is not easy to answer as a lot will depend on the situation the phrase is used in and also on the person and/or age group.
I agree that Ich liebe dich/I love you would be the strongest, and I'd only use this in very close relationships, i.e. between couples or parents/(usually small) children.
Lieb haben/liebhaben would be somewhat weaker and could for instance be used from an aunt to a child. Also note the related phrase: Habt euch bitte wieder lieb. Which an adult could say to two fighting children for instance, or conversely a child say to his/her fighting parents.
Ich steh auf dich/I have a crush on you, to me feels not so much as an expression of affection, but rather as part of a pick-up line, basically to let the other know about your interest.
Ich mag dich is weaker than "liebhaben", and I could imagine this being said between close friends or at the start of a relationship or even between couples in situations where "ich liebe dich" would be too much.