Better gradients

with this, in the gradients we can use more than two colors, for example

```python
TextBox(text="test", foreground=["#ffffff", "#ffffff", "#cacaca", "#707070"])
```