Hi @switch23723 ,
The problem is not the Linear Gradient Texture, that is perfectly linear.
The problem is the colors (or the way human eyes work); an RGB of (0.5, 0.5, 0.5) is half grey, but it is not visually half grey, but Adding two half greys (ie: RGB (0.5, 0.5, 0.5) in Blender gives a perfect white. Adding two visual half greys does not give a perfect white. Raising everything to the power of (about) 2.2 (or using a Gamma Node) will give give colors you’d expect, but you’d have to ‘gamma correct’ before and after each math operation done on colors (think Blend Modes, for instance).

This is a rabbit hole, tread carefully 😉