abstract gradient pattern