You can also do this with a custom node like so:
float3 Col; Col = lerp(C, B, UVGrad/Middle)*step(UVGrad,Middle); Col += lerp(B,A,((UVGrad-Middle)/(1-Middle)))*step(Middle,UVGrad); return Col;