Preheat the oven to 350° and spay a muffin tin with pan spray before lining with cupcake liners. Set aside.
In a medium bowl, whisk together the flour, sugar, baking powder, baking soda, and salt.
Add the buttermilk, milk, vanilla, and oil to the dry ingredients and beat with the paddle attachment of a stand mixer or a hand mixer just until fully combined. In a separate bowl whip the egg whites until you get medium stiff peaks and gently fold into the batter. Separate the batter into 6 small bowls and color each bowl a different color, red, orange, yellow, green, blue, purple.
Scoop the colored batter into the cupcake liners by layering 1 teaspoon of each color until they are ⅔ of the way full. Bake for 20-25 minutes, until a toothpick comes out clean and the tops of the cupcakes bounce back when lightly pressed.
In the bowl of a mixer add the butter. Use the paddle attachment to beat the butter for 1-2 minutes until it is smooth and creamy.
Add the powdered sugar and mix on low until most of the sugar has been absorbed by the butter. You may need to scrape down the sides and bottom of the bowl a few times. Add the vanilla and salt and beat on medium high for 2-3 minutes.
Add the milk 1 tablespoon at a time on medium low. Scrape down the sides of the bowl and then beat on medium-high for 2 minutes, or until the frosting is looking quite white and fluffy.
Reserve about a cup of frosting in a small bowl to keep it white and use 1 or 2 drops of blue food coloring to tint the remaining frosting light blue.
Use a large round piping tip to frost the tops of the cupcakes. Cut the rainbow ribbon candy into 3-inch strips. Form the candy into a rainbow shape on top of the cupcakes. Use a small round piping tip to pipe the white frosting around the bottoms of the rainbow to be clouds.