Gaja, ĝoja and feliĉa are all happy in English. But I have gotten the impression that they are not synonyms. What is the difference between the three adjectives? When should I use each one?
Feliĉa is happy as in content. This is not the best translation but reflects the long-term nature of the status. You are feliĉa if you have a good life, a happy family, no troubles. You can largely influence this feeling by your life decisions, or the general feeling of luck. Actual luck (getting a good roll in dice) can also be described by feliĉo, but that's probably just an influence of the earlier languages.
Ĝoja describes the transient feeling of happiness of something that made you feel good. I think a close word in English is to rejoice (the base form ĝoj/i is also a verb). You can ĝoji for someone close's success, for example. It does not automatically make you feliĉa. But you probably are a feliĉa person (in general) if little things like seeing flowers (individual events) make you ĝoja.
Gaja is what English traditionally described as gay: cheerful, jolly, merry.
One can be gaja (cheerful) when dancing and laughing around at someone's wedding, while being ĝoja (rejoicing) for one's friends' big day, and feliĉa (happy) realizing how good it is to have friends and opportunities for a good time.
Another example is that one would probably not rejoice (ĝoji) in being poor, but could easily feel more feliĉa than someone rich but living under stress and fear of a sudden loss. On the other hand, one can be ĝoja for winning a lottery despite otherwise being malfeliĉa because other things haven't been going so well lately, or because of one's depressive mood.
Shooting from the hip here (i.e. without checking references)
Gaja has to do with frivolity, enthusiastic celebration, and levity. Ni gaje kantis.
ĝoja is related to the joyful emotion that you feel from within. Mi ĝojas pro via sukceso.
feliĉa can also describe an emotion, but often has to do with luck or good fortune. Feliĉe tio ne okazis.
I think it'll be hard to explain the difference using the English language, but let me try!😃
gaja refers to one's state, mood. It can be seen in the external signs: gestures, smile, laughter.
ĝoja refers to one's character or feeling of pleasure in one's heart, caused by perceived goodness (real or imaginary) around oneself.
feliĉa refers to one's fate, fortune, luck or good chance, feel of satisfaction with one's life and thus is much more long-term thing.
So scientists may study how feliĉaj are people, what qualities of life make them feel long-term satisfaction. Optimists are ĝojaj people, because their temperament makes them always look on the bright side of life. But from time to time everyone can be gaja, because of a good joke, or malgaja, because of sad news. It's a short-term state, independent from one's life satisfaction or natural tendencies for optimism or pessimism.