The reason: your eye lids produce oil, which absorbs the shadow color.
The Solution:
Use an eye base before you apply eyeliner or eyeshadow. Eye base creates a dry surface on your eyelid, which gives something for the shadow powder to crab onto.
Use an eye base before you apply eyeliner or eyeshadow. Eye base creates a dry surface on your eyelid, which gives something for the shadow powder to crab onto.
Or you can use a concealer on your eye lids before applying the eyeshadow. This way you can cover your eye veins from showing and also create the dry base for the shadow powder to stay put.
Apply a soft pearl or natural shadow color all over your eye lids. (All the way to just below the eye brow). This will not only keep the eyeshadows on longer but also create a highlight on your eyes.