Preheat oven to 350°F (176°C) and prepare cupcake pan with liners.
Combine flour, baking powder, and salt in a medium bowl; set aside.
Cream butter, sugar, oil, and vanilla in a large mixer bowl until light and fluffy.
Add egg yolks one at a time, mixing well after each addition.
Alternate adding dry ingredients and milk to the batter, mixing until combined.
In a separate bowl, whip egg whites until soft peaks form.
Gently fold half of whipped egg whites into batter, then fold in remaining whites and sprinkles.
Fill cupcake liners 3/4 full and bake for 15-18 minutes.
Allow cupcakes to cool on a rack.
For frosting, beat butter until combined, then gradually add powdered sugar, vanilla, and water or cream until desired consistency. Pipe onto cooled cupcakes and decorate with sprinkles.