Graphic.CrossFadeAlpha()changes the alpha of the CanvasRenderer attached to the same gameObject, not the alpha of the Image.color. If you wanna start your image completely transparent and then fade it in, you need to set the alpha of its CanvasRenderer to zero like this imageComponent.canvasRenderer.SetAlpha(0);.Don’t change the alpha of the Image.color.