Prep your pan and oven. Line a 12-cup muffin tin with cupcake liners.
Preheat the oven to 350°F (175°C). Set out eggs and milk to warm slightly if chilled.
Mix the dry ingredients. In a large bowl, whisk flour, sugar, baking powder, baking soda, and salt until combined and lump-free.
Combine the wet ingredients. In a separate bowl, whisk melted butter, eggs, vanilla, and milk until smooth. If using lemon zest, add it here.
Make the batter. Pour wet ingredients into dry and whisk or stir with a spatula until just combined. Do not overmix—a few small lumps are fine.
Color the batter. Divide batter evenly into three bowls.
Leave one bowl plain for white. Tint one bowl red and one blue using gel food coloring. Start with a small amount and build color gradually.
Layer or swirl. For layered cupcakes, add a spoonful of red batter, then white, then blue into each liner, filling each 2/3 full.
For a swirl effect, drop small dollops of each color and gently swirl with a toothpick—don’t overdo it.
Bake. Bake for 16–19 minutes, or until the centers spring back and a toothpick comes out clean. Rotate the pan at 12 minutes if your oven has hot spots.
Cool completely. Let cupcakes rest in the pan 5 minutes, then transfer to a wire rack to cool fully before frosting.
Make the frosting. Beat softened butter on medium-high until creamy and pale, about 2–3 minutes. Add powdered sugar in 2–3 additions, mixing on low at first.
Add vanilla, salt, and 2 tbsp cream. Beat 2 minutes until fluffy, adding more cream or sugar to reach a pipeable consistency.
Optional color swirl frosting. For a red-white-blue swirl, divide frosting into three bowls. Tint one red and one blue.
Fit a piping bag with a large star tip. Using a spatula, stripe the inside of the bag with lines of red and blue frosting, then fill the center with white frosting. Squeeze a little onto a plate to start the swirl.
Pipe and decorate. Pipe tall swirls onto cooled cupcakes.
Top with red, white, and blue sprinkles, blueberries, strawberry slices, or mini flags.
Set and serve. Let the frosting set for 15–20 minutes at room temp before transporting. Serve at room temperature for the best texture and flavor.