In a medium bowl, whisk together flour, baking soda, baking powder and salt.
In a large bowl, cream together butter and sugar until light and fluffy.
Beat in the egg and the vanilla extract.
With the mixer on low speed, gradually incorporate one third of the flour mixture followed by half of the buttermilk.
Add another third of the flour mixture, followed by the remaining buttermilk and the last of the flour.
Mix just until no streaks of dry ingredients remain.
Place just less than 1 cup of batter in each of 2 small bowls.
Add yellow food coloring to one, green to another and purple to the batter remaining in the mixing bowl.
Stir in food coloring until batters are uniformly dyed.
Divide yellow batter evenly into prepared muffin cups, then evenly divide the purple batter on top of that. Do not attempt to spread the purple batter, just drop a dollop on top of the yellow.
Evenly divide green batter on top of purple, again not spreading the green batter, just dropping it down.
Bake for 15-17 minutes, or until a toothpick inserted into the center of a cupcake comes out clean.
Turn cupcakes out onto a wire rack to cool completely before frosting.
For the frosting:
Cream butter with an electric mixer until soft.
Add vanilla and milk, then gradually blend in sugar until frosting reaches a fluffy, spreadable consistency.
Spread onto cupcakes then top with purple or gold sprinkles.