Preheat your oven to 350°F and line 2 standard muffin tins with 24 cupcake liners. Beat together softened butter and granulated sugar until fluffy and light—this takes about 2 minutes. Add eggs one at a time, beating after each addition until the mixture looks creamy and pale. Stir in vanilla extract and mix until combined.
In a separate bowl, whisk together flour, baking powder, baking soda, and salt. Alternate adding the dry mixture and milk to the butter mixture, starting and ending with dry ingredients. Stir gently between additions until just combined (don't overmix or your cupcakes get dense and tough).
Divide the batter into 3 equal bowls. Leave one bowl plain for white cupcakes, add red gel coloring to the second bowl until you get a deep red shade, and add blue gel coloring to the third bowl for blue cupcakes. Stir each until the color looks even throughout.
Fill the cupcake liners about two-thirds full, alternating colors as you go around the pans. I put red on one side, white in the middle, and blue on the other to make assembly easier later. Bake for 16-18 minutes until a toothpick inserted in the center comes out clean—don't overbake or they'll be dry.
Remove cupcakes from the oven and let them cool in the pans for 5 minutes. Turn them out onto a wire rack and cool completely before frosting (this takes about 45 minutes). Don't panic if they look pale right after cooling—the colors deepen as they sit.
Once cooled, frost each cupcake with a generous swirl of buttercream. A small offset spatula makes frosting faster, but honestly, a regular knife or butter knife works fine if that's what you've got. I usually do this the night before so the frosting sets up and makes arranging less messy.
Arrange the frosted cupcakes into a circle or heart shape on a large platter, alternating red, white, and blue around the edges. Place white cupcakes in the center to create maximum patriotic pull apart cupcake cake impact. Chill until serving, and your 4th of July summer entertaining centerpiece is ready to impress.