What are gradients in Canvas used for? What are their different types?