In a large bowl, mix 2 cups of flour with yeast, salt, and sugar.
Warm the milk and butter in a microwave-safe bowl for 30 seconds until just warm.
Add the warm milk and butter to the flour mixture, along with the egg. Beat at low speed, then gradually increase to high for about 2 minutes until well combined. Add 1 tbsp of food coloring or more, depending on your preference, and mix.
Scrape down the bowl and add 1 more cup of flour, beating until combined. Gradually add the remaining flour until the dough forms a ball and pulls away from the sides of the bowl.
Turn the dough onto a floured surface and knead for about 10 minutes until smooth and elastic.
Transfer the dough to an oiled bowl, cover, and let it rise in a warm place for 1 hour or until doubled in size.
While the dough rises, prepare the filling by combining sugar, cinnamon, and salt in a small bowl.
Roll out the risen dough into a rectangle, spread with butter, and sprinkle with the sugar mixture.
Roll the dough tightly into a log and slice into 12 equal pieces. Place in a parchment-lined 9 x 13 inch pan, cover, and let rise for another hour.
Bake the cinnamon rolls at 350°F for 30 minutes or until golden brown.
While the rolls cool, make the cream cheese frosting by combining cream cheese, butter, powdered sugar, milk, salt, food coloring and vanilla extract in a stand mixer. Beat until light and fluffy.
Spread the frosting evenly over the cooled cinnamon rolls and enjoy warm!