Fading RGB with speed change

Look at the state change examples that come with the IDE.

Currently you have a fixed delay of 30 ms. Store that delay value in a variable and use that variable in the delay function.

Next use the detection of a state change to change the value stored in the above mentioned variable.

That will allow you to change the feeding speed and can be a first step to a solution of your project.