add palette, support linear gradient