JSFiddle - React, Tailwind, and code Playground
HTML
<div class="has-gradient">
</div>
CSS
div {
height: 7000px;
width: 500px;
}
JavaScript
const [red, green, blue] = [0, 200, 0];
const hasGradient = document.querySelector('.has-gradient');
window.addEventListener('scroll', () => {
let y = 1 - (window.scrollY || window.pageYOffset) / 150;
y = y < 1 ? 1 : y
const [r, g, b] = [red/y, green/y, blue/y].map(Math.round);
hasGradient.style.background = `linear-gradient(rgb(${r}, ${g}, ${b}), rgb(255,0,0))`;
console.log(`linear-gradient(rgb(${r}, ${g}, ${b}), rgb(255,0,0))`)
});