Preheat oven to 350°F (175°C).
Place paper liners in a standard 12-cup muffin tin.
Bring eggs and butter to room temperature. Zest and juice the oranges, keeping them separate.
In a medium bowl, whisk together flour, baking powder, baking soda, and salt.
In a large bowl, use an electric mixer to beat butter and sugar until light and fluffy (2-3 minutes).
Beat in eggs one at a time, mixing well after each addition.
Stir in orange zest and vanilla extract until combined.
In a measuring cup, combine orange juice and buttermilk.
Alternately add dry ingredients and buttermilk mixture to the butter mixture, starting and ending with dry ingredients. Mix on low until just combined.
Scrape down the bowl and give a final gentle mix.
Fill each cupcake liner about ⅔ full (about 3 tablespoon of batter).
Bake for 18-20 minutes until a toothpick inserted in the center comes out clean.
Let cupcakes cool in the pan for 5 minutes, then transfer to a wire rack to cool completely.
In a large bowl, beat softened butter until creamy (about 2 minutes).
Gradually add powdered sugar, one cup at a time, mixing on low.
Mix in orange juice, vanilla, salt, and zest until smooth. Adjust consistency with more sugar (thicker) or juice (thinner).
Add a few drops of orange food coloring if desired.
Fill a piping bag fitted with a star tip.
Pipe frosting onto cooled cupcakes in a spiral motion.
Optionally, top with orange zest, a thin orange slice, or sprinkles.
If serving in warm weather, chill cupcakes for 15 minutes to set the frosting.