Grain on a Gradient: Two Surfaces
Two surfaces: a gradient, and a sheet of noise lying on it. The stack opens so you can see the sheet is nothing clever, only grey static, and compare lays the same gradient down twice with grain on one of them, which settles the argument faster than any amount of describing it. mix-blend-mode: overlay is what turns that static into tooth. It moves the gradient's lightness and leaves the hue alone, so the color survives and the plastic smoothness does not. The noise is an SVG of feTurbulence carried as a background image rather than a CSS filter, since the filter runs inside the SVG and CSS only loads the picture it makes. Each grain button is a different filter, not the same one turned up.