In a separate bowl mix together the flour, baking powder and salt then add it to the bowl with creamed butter. Use a spatula to gently fold it into the batter.
Fill a saucepan with a couple of inches of water and bring it to a simmer. Put the egg whites and sugar into the bowl of a stand mixer and set it over the simmering pan. Do not let the bottom of the bowl touch the water or the egg whites will scramble.
Use a handheld whisk to beat continuously for 4-5 minutes. The mixture will look frothy. Dip your finger into the mixture and feel it between your fingers. If you can feel any grain keep heating and mixing until you can feel the mixture is smooth and slippery.
Add the bowl to the stand mixer fitted with the whisk attachment. Whisk on a medium-high speed until the egg whites reach stiff peaks. This will take at least 10 minutes but sometimes longer.
When the egg whites are at stiff peaks feel the outside of the bowl. It should be cool by now but if it isn’t put the whole bowl into the fridge for 10 minutes.
When the outside of the bowl is cool, add the butter a tbsp at a time. Beat on high speed using the paddle attachment fully incorporating each addition of butter until all the butter has been added.
At this point the mixture will look split. Do no panic! Add the vanilla extract and keep the mixer running until the mixture comes together into a silky smooth Swiss meringue buttercream.
Add a drop of food coloring and briefly beat until the buttercream is a uniform color. Transfer the buttercream to a piping bag fitted with a star nozzle.
To add a speckled effect mix the cocoa powder and vanilla then dip a small paintbrush into the mixture and flick it on to the cupcakes using your finger.